|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : Filtre de contenu [ Archives / Débutants ] (Stormy)
Informations & options pour cette discussion
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
|
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é 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
Uploader un Objet Image (Applet java) via Http et récuperer via php [ par Tonio_35 ]
Bonjour,J'ai déjà posté ce problème dans le forum JAVA mais vu qu'il touche les deux technologies, peut être que quelqu'un'un pourras m'éclairer ici..
Htaccess : Déplacement d'un forum à la racine vers un sous domaine [ par curumo ]
Bonjour,voilà depuis quelques années, j'utilise un nom de domaine avec pour seul "site" un forum. Ainsi lorsque l'on va sur "www.monsite.com" on arriv
[php] problème de programmation [ par neopreine ]
Bonjour à tous Enfin je me lance dans la création d'un thème pour une futur site perso
php-ext librairie -> panel + grid = listener problem [ par yannickiwi ]
Bonjour, Je dois créer une petite application web au moyen de la librairie php-ext, qui génère du ext-js. L'idée du projet, visible ici: http://immo
Problème pour récupérer l'url [ par Sub_Mat ]
Bonjour à tous,Je suis en train de créer un service de statistiques en ligne pour mesurer l'audience des sites internet .Je souhaiterais donc montrer
Problème affichage sur IE [ par toto33347 ]
Bonjour à tous!Voici mon problème: je suis en train de faire un site pour une association dont je suis membre et je n'arrive pas à le rendre 100% comp
Encore des questions sur la sécurité en PHP ... [ par shinnokamui ]
Bonjour,J'ai encore quelques question sur la sécurité en PHP.Jusqu'à présent, j'utilisais des variable sensibles (GET/POST/...) de type numériques, do
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version
|