je ne comprends pas bien en quoi ça peut gener le programmeur les failles xss.
on m'a toujours dit de mettre es htmlspecialchars a l'affichage pour se proteger des failles xss.
par exemple si dans un formulaire une personne rentre en prenom :
<script>alert('hello world');</script>
ben a chaque fois qu'on va afficher le prenom il y aura une alert avec le message qui va s'afficher.
mais moi en tant que programmeur je m'en fou si l'utilisateur du site veut faire planter sa page web.
tant qu'il ne peut pas modifier ma bdd et donc ne derange pas les autres utilisateurs il peut faire ce qu'il veut... et faire planter ça page web s'il veut
Et la tu as mis une map google map et le mec as fais un script qui charge et décharge une map. Au bout de 24h je te dis pas le prix que tu va payer.
Et s'il mets ça comme prénom et que c'est un autre user qui affiche son profil c'est cet utilisateur qui sera embêter et voir pire si le hack arrive à prendre bien plus.
Ou carrément faire planter le pc en faisant des boucles style forkbomb.
si je stocke des infos en bdd, dans la base il y aura le texte brute.
il n'y pas moyen de proteger directement dans la bdd pour ne pas à avoir à le protéger à l'affichage ?
parce que si le prenom je l'affiche disons 100 fois sur le site je dois faire 100 htmlspecialchars alors que sinon j'aurais juste pu faire juste une protection en l'inserant dans la bdd
Mise à par le fait qu'un utilisateur fasse planter sa page, ou ajoutes des fonctionnalité payantes, la faille xss permet aussi d'usurper le compte de quelqu'un (voir d'un admin du site) et d'avoir accès à des fonctionnalités sensible (genre le back office du site par exemple). Ou même plus simplement, il pourrai rediriger les utilisateurs vers une copie de ton site ou les utilisateurs serai inviter à se reconnecter afin de récupérer leurs identifiants...
Pour moi, le mieux, si tu veux pas mettre htmlspecialchars() à chaque affichage , c'est encore de faire une fonction d'affichage faisant l'htmlspecialchars comme ça tu appels ta fonction et tu fais rien d'autre.
Oui utiliser htmlspecialchars directement. Car ce que tu fais est pire que ce qu'il veut. Lui il veut pas faire 100 foit un call à htmlspecialchars et toi tu propose de faire 100 fois un call à une fonction qui call htmlspecialchars donc au final tu call 100 fois htmlspecialchars quand même.
On se calme ... Essayez de vous comprendre ... et surtout merci d'éviter les posts inutilement narquois ...
coolswing propose une fonction d'affichage du type "sanitize", une fonction qui permet d'éviter de répéter un ensemble de fonction (ici 2 : htmlspecialchars et echo (même si echo n'est pas une fonction à proprement parler) mais ce pourrait être plus) lorsque l'on veut afficher une donnée de manière sécurisée ... Pour rappel de nombreux Framework PHP (ou autre langage) propose ce genre de fonctions ...
Le framework de WordPress, même s'il n'est pas exemplaire, propose deux fonctions pour la plupart des données : une pour l'afficher et une pour récupérer la valeur ( the_content et get_the_content par exemple ).
> Files SHOULD either declare symbols (classes, functions, constants, etc.)or cause side-effects (e.g. generate output, change .ini settings, etc.) but SHOULD NOT do both.
Et j'ai toujours apris comme ça perso même avant le php.
Edit: si je prends twig par exemple. La méthode render va renvoyer la chaîne et non faire de l'affichage. Pareil pour blade.
// An example wrapper to allow you to escape data to html
function escape_to_html($dirty){
echo htmlspecialchars($dirty, ENT_QUOTES, 'UTF-8');
}
Je trouve très pratique d'avoir une classe qui dispose de méthodes permettant de récupérer la valeur d'un attribut de l'objet ou d'afficher un HTML "sécurisé" ...
Sauf que escape_to_html n'indique même pas qu'elle va afficher quelque chose. Ni même the_content mais bon Wordpress quoi voilà.
De toute façon les short tags sont encore plus courts, et généralement le premier argument de htmlspecialchars suffit. Du coup ta fonction s'inline <?= htmlspecialchars($dirty) ?>
Pas de quoi créer un wrapper IMHO.
- Edité par Anonyme 20 septembre 2019 à 11:56:31
faille xss htmlspecialchars
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
My website : Mon serveur discord, Se demerder tout seul, Faille XSS et SQL
My website : Mon serveur discord, Se demerder tout seul, Faille XSS et SQL
N'oubliez pas d'activer les erreurs PDO.
Pas d'aide concernant le code par MP, le forum est là pour ça :)
N'oubliez pas d'activer les erreurs PDO.
My website : Mon serveur discord, Se demerder tout seul, Faille XSS et SQL
My website : Mon serveur discord, Se demerder tout seul, Faille XSS et SQL
My website : Mon serveur discord, Se demerder tout seul, Faille XSS et SQL
My website : Mon serveur discord, Se demerder tout seul, Faille XSS et SQL