Risque de sécurité ? - PHP - Programmation
Marsh Posté le 18-06-2011 à 12:16:35
je pense que si t'as bien fait tout ce que tu dis avoir fait ça devrait être bon, après en regardant le bout de code qui fait tout ça peut-être qu'il y aurait à redire... on sait jamais.
PS: si tu n'enregistres pas l'url en base de donnée, le traitement contre les injections sql est inutile
Marsh Posté le 18-06-2011 à 12:34:43
tiens, voila le code que je lance
(et oui je compte enregistrer l'url dans la bdd)
Code :
|
Marsh Posté le 19-06-2011 à 13:14:55
Je pense pas qu'il y ait de vulnérabilité évidente là... sinon on m'a souvent conseillé d'utiliser la fonction mysql_escape_real_string pour protéger les variables qui seront contenues dans la requête SQL, a la limite cette seule fonction serait suffisante, ton image tu la renommes au moment de la sauvegarder, du coup pas de problème de tags html and co... je laisse quelqu'un confirmer, un peu peur de te dire une connerie.
Citation : mysql_real_escape_string() protège les caractères spéciaux de la chaîne unescaped_string, en prenant en compte le jeu de caractères courant de la connexion link_identifier. Le résultat peut être utilisé sans problème avec la fonction mysql_query(). Si des données binaires doivent être insérées, cette fonction doit être utilisée. mysql_real_escape_string() appelle la fonction mysql_escape_string() de la bibliothèque MySQL qui ajoute un slash aux caractères suivants : NULL, \x00, \n, \r, \, ', " et \x1a. Cette fonction doit toujours (avec quelques exceptions) être utilisée pour protéger vos données avant d'envoyer la requête à MySQL. |
http://php.net/manual/fr/function. [...] string.php
EDIT: ah je viens de me rappeler que tu veux pas sauvegarder l'image mais juste lla linker avec l'url, dans ce cas oui tes différents traitements sont judicieux, mea culpa, reste l'utilisation de mysql_escape_real_string qui est considérée comme très sécurisée.
Marsh Posté le 19-06-2011 à 13:30:03
j'évite la fonction mysql_escape_string() en fait car, il me semble qu'elle nécessite une connexion à la bdd, et quand je fais le traitement générique écrit ci-dessus, je ne l'ai pas nécessairement. C'est pour ca que j'ai un str_replace qui fait la mm chose
Marsh Posté le 19-06-2011 à 13:52:44
ben rien t'empêche d'ouvrir la connection mysql, de faire ton traitement et d'enregistrer tout de suite. Enfin cela dit tu peux aussi faire comme tu as fait je pense pas que ça pose de problème.
Marsh Posté le 29-06-2011 à 23:38:58
Dès que tu affiches une url sur ton site, il y a une vulnérabilité potentielle. Le mec peut très bien afficher un gif 1x1, faire croire à un mime type image et écrire du code JS evil ou je ne sais quelle merde.
La seule parade qui me vient à l'esprit, c'est d'ouvrir l'image avec l'extension GD2, la redimensionner si nécessaire, l'enregistrer (donc proprement et seulement avec les bits d'image) en local et utiliser cette image. Comme l'image est sur ton domaine, tu gagneras en plus en SEO. Que du bénef
Marsh Posté le 30-06-2011 à 10:12:09
nisalon_caje a écrit : j'évite la fonction mysql_escape_string() en fait car, il me semble qu'elle nécessite une connexion à la bdd |
Non.
Marsh Posté le 18-06-2011 à 10:42:18
Bonjour,
J'ai une petite question concernant la sécurité de mon site :
J'ai un formulaire invitant l'utilisateur à rentrer l'url d'une image.
Cette url est traitée (suppression des balises html, transformation des guillemets en caractères html, traitement anti-injection sql) puis j'affiche le résultat dans un <img src="$resultat" max-width="50" max-height="50"/>
Y a-t-il une vulnérabilité ?
Merci d'avance !
Message édité par nisalon_caje le 18-06-2011 à 10:42:47