JeuWeb - Crée ton jeu par navigateur
Autoriser un lien distant vers une image: danger ? - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Autoriser un lien distant vers une image: danger ? (/showthread.php?tid=4673)

Pages : 1 2


Autoriser un lien distant vers une image: danger ? - php_addict - 26-03-2010

bonjour,

je me pose la question suivante concernant la sécurité des liens distant vers une image (url)

imaginons que j'autorise mes (futurs) joueurs à faire un lien HTML vers une images distante (url d'un avatar par exemple).

ok c'est fun, mais:

imaginons qu'un petit malin joues avec les header php et fasse un lien vers -http:www.sonsite.com/image.jpg et qu'en réalité ce ne soit pas une image mais un script php ---> ca craind du boudin !

comment y remédier?

- à l'affichage de l'image: vérifier l'entête du fichier selon le type de fichier (pour un .jpg: JPEG SOI marker (FFD8 hex)) ???


et si on autorise le téléchargement de l'image:


- même problème?
- sans parler de l'espace disque...


à moins de n'autoriser que du "ascii_art", sutout en utf-8 c'est sympa, mais tout le monde n'est pas un artiste...

c'est bien ce que l'on appelle la faille XSS, non ?

qu'en pensez vous?

merci de m'avoir lu une fois de plus

à plus Wink


RE: Autoriser un lien distant vers une image: danger ? - Zamentur - 26-03-2010

Non ca c'est la faille qui concerne l'upload.
Pour y remedier tu dois verifier chaque ficher uploader sur le serveur, mais pas seulement avec les extensions.
Tu dois verifier le mime type, mais faut savoir que le mime type via la variable $_FILE peut etre falsifie...
Cependant il y a une autre methode pour verifier le mime type veritable du fichier, et c'est souvent celle ci qui est oublie

Je pense que des framework comme symfony repondent a cette problematique.
Si tu ne souhaites pas les utiliser tu peux toujours aller voir ce qu'ils ont mis en place.


RE: Autoriser un lien distant vers une image: danger ? - Sephi-Chan - 26-03-2010

Quel est le problème si l'attaquant met l'URL d'un script PHP à la place d'une image ?

Petite note qui fait le lien entre ce sujet et l'autre : si l'attaquant met l'URL lambda.tld/admin/delete_user.php?id=23 en source de l'image, ça va marcher : l'user 23 sera bien détruit.


Sephi-Chan


RE: Autoriser un lien distant vers une image: danger ? - php_addict - 26-03-2010

donc il n'y a pas de danger ?


RE: Autoriser un lien distant vers une image: danger ? - My Hotel - 26-03-2010

Ben comme l'a dit Sephi, si le mec met un lien permettant de supprimer un membre, et que toit tu affiche la page en étant connecté en tant qu'admin, ton navigateur va demander la page de suppression, et l'action sera effectuée. C'est le principe d'une faille CSRF.

Sinon, si le mec met par exemple un lien vers un de ses scripts hébergés sur son serveurs, son script ne sera pas inclus comme un "include" par ton serveur, mais bien appelé par le visiteur et donc exécuté par SON serveur avant d'être rendu. Nuance, donc si le mec link un script, ça sera plutôt du JS (vol de cookie etc...) ou alors du PHP pour récupérer l'ip du visiteur par exemple.

Bye


RE: Autoriser un lien distant vers une image: danger ? - php_addict - 26-03-2010

ok...

donc pour le linkage ou l'upload faut vérifier l'entête hexadecimal du fichier? (les premiers octets du fichier) ?


RE: Autoriser un lien distant vers une image: danger ? - My Hotel - 26-03-2010

Ben si tu parles de la manière de se protéger des CSRF, il faut mettre en place des tokens (cf. http://www.siteduzero.com/tutoriel-3-157576-securisation-des-failles-csrf.html ou google).


RE: Autoriser un lien distant vers une image: danger ? - php_addict - 26-03-2010

dernière petite question: faut il mettre un jeton sur chaque formulaire?

merci pour vos réponses


RE: Autoriser un lien distant vers une image: danger ? - Sephi-Chan - 27-03-2010

Non, ce n'est pas nécessaire puisque la seule chose qui t'importe est de savoir si l'utilisateur est passé par la page du formulaire.


Sephi-Chan


RE: Autoriser un lien distant vers une image: danger ? - keke - 29-03-2010

Je sais pas ce qu'en pense les autres, mais perso, je préfère héberger les images des avatars de mes joueurs. Ils peuvent uploader l'image (un controle de ma part pour valider l'image) et hop, l'image s'affiche;

Plusieurs avantages en mon sens :
- Le joueur ne peut pas changer son avatar sans mon consentement ...
- Je conserve l'image quelque part. Tant que le jeu tourne, l'avatar sera là.

inconvénient :
- du temps d'administration supplémentaire
- espace disque consommé supplémentaire

Bonne journée,

kéké