Je travaille sur une interface publique qui utilise une base de données qui n'est pas fiable en raison de l'accès de plusieurs applications.XSS je le fais mal? CI/php
Je voudrais un moyen propre d'encoder toute ma sortie en UTF-8 avec htmlentities pour empêcher XSS. Codeigniter (CI) n'a rien intégré. Le filtre qui est là est destiné à l'entrée et ne filtre pas réellement toutes les attaques XSS.
Je préférerais une réparation de couverture, mais je ne pense pas qu'il y en ait une.
Ce que je suis vraiment après dans cette discussion est quelle est la meilleure façon de filtrer ma sortie? Et est-ce que la solution suivante est la meilleure/la plus concise? (Fonction encode est une enveloppe sur htmlentities avec UTF8 et ENT_COMPAT)
<?php
echo form_input(“start_date[”.encode($id).”]”, encode($action->start_date,true), class=“input input-date dateISO required” readonly=readonly title=“must set a date.”’);
?>
Comme vous pouvez le voir le code commence à chercher assez stupide aspergeant cette fonction encode partout. L'encodage au niveau du contrôleur n'est tout simplement pas une solution car CI n'utilise pas de modèle strict. L'encodage au niveau du modèle laisse d'autres possibilités ouvertes. L'encodage au moment de la sortie semble être le moyen le plus sûr/attraper tous les cas, je veux juste quelqu'un pour confirmer que je ne manque pas quelque chose d'évident et de plus agréable à regarder/maintenir
double possible de [htmlspecialchars vs htmlentities quand concernés par XSS] (http://stackoverflow.com/questions/3623236/htmlspecialchars-vs-htmlentities-when-concerned- avec-xss) –
Pourquoi devrais-je poser deux fois la même question? Ce n'est pas une dupe, si vous lisez l'une de mes questions et quelque chose de nouveau sur le sujet, vous savez qu'il n'y a pas de sujet connexe qui pose ces questions. Arrêtez de poster sur la merde que vous ne connaissez pas simplement pour les points. C'est ennuyant. – stuckinphp
Vous ne recevez aucun point dans les commentaires. Pour ne pas mentionner l'autre fil aurait pu être répondu en prenant le temps de parcourir d'autres sujets sur le même sujet, surtout compte tenu de cette question qui a exactement le même sujet: http://stackoverflow.com/questions/46483/htmlentities- vs-htmlspecialchars et explique la différence entre les deux. –