J'ai une fonction de journal sur mon panneau d'administration qui vérifie que l'entrée de l'utilisateur est correcte et, si elle n'est pas correcte, l'écrit dans un fichier journal. Ce fichier journal est écrit à l'administrateur lorsqu'il est connecté.XSS PHP Log Filter?
Je testais mon site à la recherche de vulnérabilités et j'ai réussi à exploiter pleinement mon serveur à l'aide d'un trou XSS. J'ai essayé de filtrer l'entrée journalisés en vérifiant l'entrée par cette fonction:
function isXSS($in){
return preg_match("[<>(%[0-9a-fA-F]{2}+)]", $in) == 1;
}
mais que tout soit marque serait paranoidly comme un ver détestée XSS, ou d'ignorer les injections XSS communes. Je pense que le problème est le quantificateur +, mais j'ai entendu dire que d'autres regex PHP le permettent.