Je crois avoir lu tous les sujets qui me sont apparus lorsque j'écrivais le titre. En résumé, j'ai utilisé presque TOUTES les fonctions PHP pour désinfecter l'entrée de l'utilisateur, mais je n'arrive toujours pas à arrêter un simple test XSS à exécuter.Comment prévenir XSS sur mon site?
Le code que je suis en train de sécuriser est la suivante:
$keyword = $_POST['biz'];
$keyword = strip_tags($keyword); //this
$keyword = addslashes(str_replace("||sp_rp_and||", "&", $keyword));
$keyword = addslashes(str_replace("<", "HELLO", $keyword)); //this
$myFilter = new InputFilter(); //this
$keyword = $myFilter->process($_POST['biz']); //this
if($keyword=="")
$query="select * from `business` order by business_id DESC LIMIT 0,20";
else
Cependant, non des fonctions fait ce qu'il est censé faire sur le mot-clé variable de de $
Deux possibilités : * Je n'ai pas ce que je fais. * Le test XSS échoue, mais cela ne signifie pas qu'une personne peut l'utiliser pour nuire !!
Le test que j'ai utilisé est simple (dans le champ de recherche de la page): `"> alert (document.cookie); " ou via l'URL, même résultat dans les deux, une popup avec les spectacles de cookies.
Qu'est-ce que je fais de mal, été dans ce depuis quelques jours.
P.S. Même installé Mod_security2 sur le serveur et il n'a pas fait le travail (Ou je n'ai pas configuré correctement) !!
Essayez de everithing de sortie qui vient de l'utilisateur 'htmlentities()' – cristian
Ce serait un bon début. – RobertPitt
duplication possible de [Prévention des scripts côté serveur, XSS] (http://stackoverflow.com/questions/2965430/preventing-server-side-scripting-xss) – ajreal