Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1456 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Risque de sécurité ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Risque de sécurité ?

n°2083049
nisalon_ca​je
Posté le 18-06-2011 à 10:42:18  profilanswer
 

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
mood
Publicité
Posté le 18-06-2011 à 10:42:18  profilanswer
 

n°2083053
caribouuu
Posté le 18-06-2011 à 12:16:35  profilanswer
 

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


Message édité par caribouuu le 18-06-2011 à 12:22:39

---------------
Bla (blaa bbla)
n°2083056
nisalon_ca​je
Posté le 18-06-2011 à 12:34:43  profilanswer
 

tiens, voila le code que je lance :)
(et oui je compte enregistrer l'url dans la bdd)

Code :
  1. $txt = strip_tags($txt);
  2.     $txt = htmlentities($txt, ENT_QUOTES, "UTF-8" );
  3.     $txt = stripslashes($txt);
  4.     $search = array("\\", "\0", "\x1a", "'", '"');
  5.     $replace = array("\\\\", "\\0", "\Z", "\'", '\"');
  6.     $txt = str_replace($search, $replace, $txt);
  7.     $txt = addcslashes($txt, '%_');


---------------
http://nisalon.labrute.com/
n°2083154
caribouuu
Posté le 19-06-2011 à 13:14:55  profilanswer
 

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.


Message édité par caribouuu le 19-06-2011 à 13:22:06

---------------
Bla (blaa bbla)
n°2083157
nisalon_ca​je
Posté le 19-06-2011 à 13:30:03  profilanswer
 

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


---------------
http://nisalon.labrute.com/
n°2083159
caribouuu
Posté le 19-06-2011 à 13:52:44  profilanswer
 

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.


---------------
Bla (blaa bbla)
n°2085983
CyberDenix
Posté le 29-06-2011 à 23:38:58  profilanswer
 

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 :)


---------------
Directeur Technique (CTO)
n°2086029
skeye
Posté le 30-06-2011 à 10:12:09  profilanswer
 

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.


---------------
Can't buy what I want because it's free -
n°2086534
Fk01
Posté le 01-07-2011 à 17:59:34  profilanswer
 

@skeye +1
 
C'est une fonction php, rien de plus.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Risque de sécurité ?

 

Sujets relatifs
[resolved] PDO et la sécurité[PHP/MYSQL] Sécurité suffisante ?
Sécurité pour forcer le téléchargement d'une imageSécurité des MP sur forum phpBB ?
VBS Avancé // Récupérer la liste des groupes de sécurité[ACCESS] Sécurité Base de Données
sécurité formulaireEtudier les mécanismes de sécurité de Java
[Javascript] Site sensible - Sécurité et framework?[Résolu] Applet signée : pas d'avertissement de sécurité
Plus de sujets relatifs à : Risque de sécurité ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR