Je me demandais, quelle est la meilleure pratique sur l'exemple ci-dessous.Meilleure pratique pour la sortie PHP
<?php
if(isset($_POST['query'])){
$out = $_POST['query'];
}
?>
<div><?php echo $out; ?></div>
<input type="text" value="<?php echo $out; ?>" />
En utilisant le code ci-dessus serait-ce une menace pour le site Web. Ou aurais-je besoin de préparer la sortie avant de l'utiliser comme ci-dessus. Par préparer, je veux dire l'encoder ou échapper à des caractères spéciaux. Je suis conscient que vous avez besoin de l'échapper et de valider les entrées pour l'utilisation db, que diriez-vous de le sortir?
Bonne question. ces 2 exemples sont différents. Tout en utilisant htmlspecialchars pour le second devrait être inconditionnel, mais pour le premier il ne sera utilisé que pour les entrées non fiables (parce que ce serait imprudent si vous êtes administrateur du site et que vous voulez utiliser du HTML) –
OK je comprends mais tous les réponses ci-dessous dit Oui, aucun expliquer pourquoi, ou ce qui le rend si dangereux ou un exemple d'attaque? – Val
juste google pour XSS –