begin process at 2012 02 15 08:44:45
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

Débutants

 > 

Filtre de contenu


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Filtre de contenu

dimanche 26 février 2006 à 22:46:25 | Filtre de contenu

Stormy

Je suis pas codeur PHP et j'ai besoin d'un avis. Dans un script PHP je considère un champ HTTP concernant X-Forwarded-for. Or, celui-ci peut être à l'origine d'une injection de code PHP. J'ai donc cherché des expressions afin de filtrer les caractères sensibles. Deux méthodes simples, sont-elles justes dans leur dev? Merci à tous et ++ // Exemple 1 : // Inscrit la chaîne de caractères envoyée en vérifiant le contenu. // Logique mais risque de planter le script (argument invalide) - if ($HTTP_X_FORWARDED_FOR) { # On ajoute un slash / à certain caractères (ruine le code malicieux) - # Caractères spéciaux : . \\ + * ? [ ^ ] $ ( ) { } = ! < > | $ip = preg_quote(getenv("HTTP_X_FORWARDED_FOR"), ("/"); $proxy = getenv("REMOTE_ADDR"); $host = gethostbyaddr($REMOTE_ADDR); } // Exemple 2 : // À partir de PHP 4.0b3 // On recherche une chaîne de caractères afin de filter les entrées - if ($HTTP_X_FORWARDED_FOR) { $pos = strrpos($ip, "PASSTHRU"); // Simple exemple !!! if ($pos === false){$ip = getenv("HTTP_X_FORWARDED_FOR");} else{$ip = ""}; // Chaîne nulle - };
dimanche 26 février 2006 à 23:09:16 | Re : Filtre de contenu

FhX

Tester la présence d'une variable => fonction isset();
getenv() est à remplacer avec la superglobale $_SERVER[].

Et des scripts pour récupérer une IP, y'en a des tonnes qui sont bien mieux que ton bout de code :) Une petite recherche te le confirmera.
dimanche 26 février 2006 à 23:18:52 | Re : Filtre de contenu

Stormy

Tu ne comprends pas. Je veux pas coder un code PHP. Je veux comprendre comment filtrer un contenu, en l'occurence $ip. A l'origine, celui-ci est simplement ainsi : $ip = getenv("HTTP_X_FORWARDED_FOR"); Or, l'injection PHP se fait par le biais de cette en-tête HTTP. Je veux juste savoir comment cette variable $ip peut être vérifier. Comment examiner les occurences éventuelles de caractères sensibles. Mon code est-il juste?
lundi 27 février 2006 à 00:01:31 | Re : Filtre de contenu

FhX

"Je veux pas coder un code PHP." Ah bah mauvais forum alors :/

"Je veux comprendre comment filtrer un contenu, en l'occurence $ip." Expression régulière.

"A l'origine, celui-ci est simplement ainsi :
$ip = getenv("HTTP_X_FORWARDED_FOR");" Oui, mais je te dis que tu dois changer getenv() par $_SERVER[]. Pas compliqué pourtant :o

De plus, HTTP_X_FORWARDED_FOR est utile dans le cas où ton visiteur passe par un proxy. Si ton visiteur veut bien entendu te le transmettre...

Maintenant, ce que tu veux, c'est l'ip de ton visiteur ==> comme je te l'ai déja dit, va voir des scripts de récupération d'IP, y'en a un paquet, c'est pas ca qui manque... !

"Or, l'injection PHP se fait par le biais de cette en-tête HTTP." Injection PHP... si t'arrives à te faire bouffer sur une en-tête HTTP, j'imagine le pire !

"Je veux juste savoir comment cette variable $ip peut être vérifier." Tu peux utiliser les expressions régulières... le masque est un peu comme ca :
[nombre 0-255] . [nombre 0-255] . [nombre 0-255] . [nombre 0-255]

Voila.

"Mon code est-il juste?" Non, c'est ce que je viens de te dire... mais t'as pas l'air de t'en soucier.


"if ($HTTP_X_FORWARDED_FOR)" Y'a rien de plus "bête" à écrire. La tu teste quoi ? La présence d'une variable ? Le fait qu'elle soit vide ? Qu'elle soit booléenne de type TRUE/FALSE ?
La on ne sait rien. Moi si je lis ca, c'est que $HTTP....FOR est un booléen et que tu teste si cette variable est à TRUE. Hors c'est faux, cette variable est une chaine de caractères.
Voila pourquoi je te dis que ton code est erroné et qu'il faut utiliser la fonction isset() pour déterminer la présence de laditte variable.

Maintenant, libre à toi de faire comme tu veux.
lundi 27 février 2006 à 00:02:48 | Re : Filtre de contenu

FhX

Ah okay, jviens de capter, je m'emballe un peu pour rien.

Expression régulière sur l'IP... tu trouves ca où tu veux sur le net.


Mais je maintiens quand même ce que je dis codifiant parlant.
lundi 27 février 2006 à 01:47:28 | Re : Filtre de contenu

Stormy

Je veux bien être patient (puisque tu l'es avec moi). Je reprend. PHP j'men tamponne royalement. J'me suis pas cassé la tête 8 ans à coder C++ et ASM pour brouter du script (rien contre au demeurant). Il existe un GuestBook (admbook)sur lequel il est possible d'injecter un code PHP par une requête cliente HTTP dont le champ X-Forwarded-For comporte l'evil code. La moitié des sites hébergeant ce Livre d'Or sont des passoires. Les admins prévenus, je pensais juste leur donner le moyen de corriger cette faille en 3 lignes. Note bien ça, FixMan, je vais pas coder en PHP comme si je partais de rien (j'men fous mais j'la déjà dit ça). Le truc, c'est juste de donner une idée sur les expressions à utiliser. Je résume : 1 Champs de données 1 comparaison avec les caractères interdits 1 retour True ou False pour inscription ou non. Alors t'emballe pas coco et relis le post. Merci pour l'info sur l'expression régulière sur IP Bye (jrisque pas de trainer ici moi. jretourne chez les grands)
lundi 27 février 2006 à 10:55:45 | Re : Filtre de contenu

malalam

Administrateur CodeS-SourceS
Réponse acceptée !

Hello,

prière de se calmer : inutile de se montrer condescendant ("(jrisque pas de trainer ici moi. jretourne chez les grands) "). Tu n'es sans doute pas le seul ici à savoir coder en asm et/ou en C++.
Ce qui m'intrigue dans tes questions/réponses, c'est que tu montres ne surtout pas vouloir coder en php. Or, si tu as un problème de sécurité, ce n'est pas en appliquant 3 lignes de code sans les comprendre que tu déjoueras des "hackers" qui, pour certains, connaissent justement php sur le bout des doigts. Et ce ne sont pas des compétences en C++ ou ASM qui t'aideront sur ce coup.
Bref, comme te le dit Fhx : si tu veux être sûr de toi, tu dois déjà passer par la variable $_SERVER['HTTP_X_FORWARDED_FOR'], car sinon, tu passes par les super globales des anciennes versions de PHP, tant décriées à cause, justement, des problèmes de sécurité qu'elles posent. (c'est valable pour REMOTE_ADDR et REMOTE_HOST).
Quant à une expression régulière pour parser une IP : [ Lien ]

Ces considérations mises à part, tes codes sont à peu près justes, oui.

lundi 27 février 2006 à 16:39:10 | Re : Filtre de contenu

Stormy

Je ne suis pas condescendant. je joue au même jeu que ton camarade FhX. Néanmoins, merci pour tes informations très claires.
samedi 18 mars 2006 à 13:38:03 | Re : Filtre de contenu

infoing



bonjour je vous cantaque pour m'aider faire un filtre de contenu des pages web esperont que vous pouver m'aider percque c'est le theme de mon projet de fin est  mon probleme c'est que j'ai pas trouver le langage le plus adapter a ce type de l'application est comme faire chercher par contenu dans une pages web

samedi 18 mars 2006 à 14:05:56 | Re : Filtre de contenu

FhX

Quand on veut faire de la sécurité, il faut savoir un minimum de choses sur le support à protéger.

En l'occurance, je rectifie tes erreurs quand non seulement elles sont dépréciées, mais en plus peuvent comporter un trou de sécurité ouvert.
Tu parles justement de sécurité mais tu ouvres toi même les portes pour ca.

Maintenant, que tu codes en ASM c'est super génial pour toi. Je respecte cela mais ici point n'est besoin de savoir coder en ASM pour faire du PHP.


Mais bon, Malalam t'as dit la même chose que moi mais à peu de choses près...


Cette discussion est classée dans : php, http, for, caractères, forwarded


Répondre à ce message

Sujets en rapport avec ce message

Différence entre HTTP_X_FORWARDED_FOR et REMOTE_ADDR [ par redpooka ] Quel est la différence entre $REMOTE_ADDR et $HTTP_X_FORWARDED_FOR ?Car selon les programmes j'ai les deux explications contraires.Comment connaître l condition php dans javascript [ par pyranhaz ] J'essai d'entrer une condition php dans une boîte d'alerte et ca ne fonctionne pas...tout ce que je désire c'Est afficher le $remote_addr si le $_SERV Serveur MYSQL lent [ par guidiap2 ] Bonjour à vous, J'ai codé pour ma boîte une petite interface de gestion en PHP/MYSQL. Il y a donc une base de données pour gérer le stock (des instru pb url rewritting [ par tex73 ] salut à tous! j'ai un site dont les urls sont de la forme: http://www.mondomaine.com/index.php?page=mapage&var1=A&var2=B&var3=C... et je souhaiterai o URL rewritting [ par tex73 ] salut à tous! j'ai un site dont les urls sont de la forme: http://www.mondomaine.com/index.php?page=mapage&var1=A&var2=B&var3=C... et je souhaiterai o envoyer eamil avec php [ par jolina87 ] Bonjour,je suis débutante en php et j'essay de faire queleque chose.Donc mon travail demandé est à partir d'un formulaire contenant adresse, sujet et Recup des caracs après un signe dans un txt plusieurs fois si necessaire [ par ludesert ] Bonjour,  J'ai crée le site http://megabypass.tk/ qui permet de débrider simplement le site bien connu de tous Mega******. Je souhaite évoluer dans comment intégrer la bib php_http.dll dans mon php [ par nwija ] Je viens de travailler avec la fonction http_parse_message() ce qui m'oblige a installer la bib php_http.dll ,mais après avoir l'installer j'ai eu un Générateur de cartes de visites [ par spectroman ] Bonjour, j'essaie de faire fonctionner le générateur de cartes de visites trouvé sur la page http://www.devinrolsen.com/realtime-image-typesetting-wit ATOS-SIPS pour serveur PHP mutualisé [ par NHenry ] Bonjour, Cela fait quelques heures que je cherches et me résoud à poser la question : Pour une boutique en ligne, on m'impose d'utiliser SIPS de ATOS


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,920 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales