Page 1 sur 2
Cacher URL sur survole de bouton
Posté : 28 juin 2010, 15:35
par pepyte
Bonjour à tous,
J'aimerai savoir si il est possible de cacher l'url qui s'affiche en bas à gauche dans la barre grise lorsque je survole le bouton qui appel justement sur cette page?
Faut-il écrire quelque chose dans le fichier ou autre?
Voyez vous ce que je veux faire?
Re: Cacher URL sur survole de bouton
Posté : 28 juin 2010, 16:47
par dev3
Bonjour,
tu peux ajouter un onclick="this.href='<ton autre url>'" dans la balise a
exemple
Code : Tout sélectionner
<a onclick="this.href='http://www.google.fr'" href="http://www.test.com" target="_blank">test</a>
Re: Cacher URL sur survole de bouton
Posté : 28 juin 2010, 19:41
par jojolapine
On peut savoir pourquoi?
Re: Cacher URL sur survole de bouton
Posté : 28 juin 2010, 19:45
par AB
On peut savoir pourquoi?

J'ai dans l'idée que c'est pas par souci de clarté

Re: Cacher URL sur survole de bouton
Posté : 29 juin 2010, 10:15
par pepyte
C'est juste pour pas qu'on sache quelle page j'appelle, car j'ai peur des injections sql
Re: Cacher URL sur survole de bouton
Posté : 29 juin 2010, 10:22
par jojolapine
Et bien concentre toi d'abord sur la protection au sein de tes scripts...
Tout ce que tu arriveras à faire c'est cacher l'url pour des néophytes mais toute personne un tant soit peu au courant pourra très simplement savoir quelle page a été appelée...
Re: Cacher URL sur survole de bouton
Posté : 29 juin 2010, 10:27
par pepyte
Par exemple j'appelle "mapage.php" (dans laquelle il y a une connexion a ma base, et un simple select, qui retourne une valeur et ensuite je fait une redirection) quels sont les risques? Quelqu'un peut-il accéder à ça "$link = mysqli_connect("serveur", "login", "mdp", "DB");"
Re: Cacher URL sur survole de bouton
Posté : 29 juin 2010, 14:12
par dev3
Ce n'est clairement pas en "cachant" les url avec ce type d'astuce que tu te protegeras des sql-injection.
(Ne confonds tu pas cacher les url par l'url rewitting ?)
Comme dit "jojolapine" : "concentre toi d'abord sur la protection au sein de tes scripts"
Concernant ta page mapage.php, si ta requête est construite à partir de donnée extérieurs (exple post ou get) et quelles ne sont pas traitées il y a des risques.
Et dans ton fichier à moins d'ouvrir les droits des fichiers (exple 777) on ne pourra accéder à "$link = mysqli_connect("serveur", "login", "mdp", "DB");"
Re: Cacher URL sur survole de bouton
Posté : 29 juin 2010, 14:15
par pepyte
J'ai mis mon fichier en 705 ... c'est bon? Et comment les traiter avant les données?
Re: Cacher URL sur survole de bouton
Posté : 29 juin 2010, 16:16
par AB
1 / Dans tes requêtes prend l'habitude de systématiquement utiliser mysqli_real_escape_string ou passes par des requêtes préparées mais la première solution est déjà efficace.
2 / Ensuite évites de trimbaler tes logins et mots de passe dans toutes les pages. Fait plutôt un include ou un require vers un répertoire/fichier où tu auras tes identifiants de connexion. ça évite de les voir dans tous tes scripts et moins on les voit moins tu as de chances que quelqu'un les regarde quand par exemple tu es entrain de coder.
Sinon niveau sécurité on ne peut pas télécharger le contenu d'une page php (je veux dire le script) à moins d'un piratage du serveur et dans ce cas cela regarde l'admin système, ou d'un trou de sécurité dans un de tes scripts :
3 / Evidemment si tu proposes des fichiers en téléchargement il faut impérativement contrôler la liste de fichiers autorisés au téléchargement.
4 / Pour les includes ou require idem, mais souvent on peut écrire le lien en dur donc pas de souci dans ce cas.
5 / Et puis à chaque fois que tu fais afficher du code dans la page (echo...) protèges la chaine à afficher par htmlspecialchars ou htmlentities
6 / Concernant des fichiers qui n'ont pas besoin d'être appelés depuis l'extérieur (fichier de connexion à la bdd par exemple) mets les dans un répertoire protégé par un fichier .htaccess avec la simple mention : deny from all
Voilà si tu respectes déjà tous ces points tu es sur la bonne voix

Re: Cacher URL sur survole de bouton
Posté : 29 juin 2010, 16:40
par pepyte
Merci beaucoup c'est très gentil de ta part.
Alors pour le première solution j'ai déjà un soucis. Comme dans ma requête select je fais déjà une vérification avec une variable qui peut contenir "/", et quand il y a ça, je ne trouve pas mon produit...
Re: Cacher URL sur survole de bouton
Posté : 29 juin 2010, 17:12
par AB
Ben c'est parce que ton code n'est pas bon ailleurs. Par exemple il faut utiliser mysqli_real_escape_string à la place d'un addslashes mais pas en plus (donc vires le addslashes et utilises mysqli_real_escape_string).
Si c'est pas ça, montres ta requête.
Re: Cacher URL sur survole de bouton
Posté : 29 juin 2010, 17:23
par pepyte
$prod_sku = mysql_real_escape_string($_GET["var"])
$link = mysqli_connect("", "", "", "");
$req = "SELECT product_id FROM jos_vm_product WHERE product_sku ='".$prod_sku."';";
$id = mysqli_query($link , $req)or die (mysqli_error($link));
$id_prod = mysqli_fetch_array($id);
$url = "http://wayofgamer.com/index.php?page=shop.product_details&flypage=flypage.tpl&product_id=".$id_prod[0]."&option=com_virtuemart";
header('Location:'.$url);
Re: Cacher URL sur survole de bouton
Posté : 29 juin 2010, 17:42
par AB
$prod_sku = mysql_real_escape_string($_GET["var"])
$link = mysqli_connect("", "", "", "");
$req = "SELECT product_id FROM jos_vm_product WHERE product_sku ='".$prod_sku."';";
$id = mysqli_query($link , $req)or die (mysqli_error($link));
$id_prod = mysqli_fetch_array($id);
$url = "http://wayofgamer.com/index.php?page=shop.product_details&flypage=flypage.tpl&product_id=".$id_prod[0]."&option=com_virtuemart";
header('Location:'.$url);
Bon, c'est que ton serveur doit être configuré "à l'ancienne" c'est à dire avec magic_quote activé. Donc essaies d'utiliser cette fonction qui retourne la bonne valeur quelque soit la configuration du serveur :
function Verif_magicquotes ($chaine)
{
if (get_magic_quotes_gpc()) $chaine = stripslashes($chaine);
return $chaine;
}
$prod_sku = Verif_magicquotes($_GET["var"]);
$link = mysqli_connect("", "", "", "");
$prod_sku = mysqli_real_escape_string($link, $prod_sku);
//etc..
Voilà la première étape devrait être franchie
(Faits attention d'utiliser mysqli_real_escape_string avec l'identifiant de connexion)
Re: Cacher URL sur survole de bouton
Posté : 29 juin 2010, 17:55
par pepyte
Merci beaucoup je finis avec ça :
include('conf.php');
$cfg = new Conf();
$prod_sku = Verif_magicquotes($_GET["var"]);
$link = mysqli_connect($cfg->host, $cfg->user, $cfg->password, $cfg->db);
$prod_sku = mysqli_real_escape_string($link, $prod_sku);
$req = "SELECT product_id FROM jos_vm_product WHERE product_sku ='".$prod_sku."';";
$id = mysqli_query($link , $req)or die (mysqli_error($link));
$id_prod = mysqli_fetch_array($id);
$url = "http://wayofgamer.com/index.php?page=shop.product_details&flypage=flypage.tpl&product_id=".$id_prod[0]."&option=com_virtuemart";
header('Location:'.$url);
function Verif_magicquotes ($chaine)
{
if (get_magic_quotes_gpc())
$chaine = stripslashes($chaine);
return $chaine;
}
Et pourquoi il faut mettre l'identifiant de connexion avec "mysqli_real_escape_string"?
En tout cas ça fonctionne ^^ merci beaucoup