J'essaie d'empêcher l'injection de xss. Alors avant de soumettre un formulaire, une fonction javascript est appeléeChaîne javascript remplacer l'équivalent sur PHP?
function validatefield(id) {
var description = document.getElementById(id).value;
description = description.replace(/[\"\'][\s]*javascript:(.*)[\"\']/gi, "");
description = description.replace(/script(.*)/gi, "");
description = description.replace(/eval\((.*)\)/gi, "");
document.getElementById(id).value=description;
}
Je suis wonderng s'il y a un moyen de faire la même chose en php avant de l'insérer dans le mysql? s'ils se déplacent de la fonction validatefield.
Merci
Portage de ce code javascript en php n'est pas une bonne stratégie pour empêcher XSS. Il existe des moyens d'injecter du javascript en html qui ne sont pas couverts par votre logique, par exemple. l'attribut 'onclick'. Le bon moyen (et beaucoup plus simple!) D'aller est d'envelopper vos données soumises par l'utilisateur dans 'htmlspecialchars()' juste avant de sortir dans n'importe quel contexte html. – Asaph
Mais htmlspecialchars n'est pas suffisant si vous voulez autoriser du HTML. –
@Matthew Flaschen: Certainement vrai. Bien que je n'ai pas eu l'impression que l'affiche collectait du HTML spécifiquement à travers son formulaire. Cela ne figure nulle part dans la question. Dans le cas de la collecte de données HTML, j'adopterais une approche de liste blanche et je supprimerais tous les attributs et balises non approuvés. – Asaph