Php htmlentities
<span class="mw-headline" id="Php_htmlentities« >Php htmlentities
Eviter la faute
En outre, il est également possible de protéger les vulnérabilités XSS en utilisant les réseaux des équipements dédiés tels que pare-feu d’application. Ils vous permettent de filtrer toutes les requêtes HTTP afin de détecter suspectes.
Protéger contre les attaques XSS
1. Filtrer tous les étrangers Le conseil le plus important est de filtrer toutes les données étrangères. Si vous découvrez une vulnérabilité dans l’un de vos applications, il devrait être due à une logique erronée filtre, pas une absence totale de la logique de la filtration.
2. Utilisez les fonctions existantes Laissez PHP vous aider. Des fonctions comme htmlentities (), strip_tags () et utf8_decode () peut vous aider à écrire votre logique de filtrage. La clé de la sécurité est d’utiliser le PHP intégrée que possible. Par exemple, si vous voulez vous assurer que les entités HTML sont correctement encodées, il est beaucoup plus sûr d’utiliser htmlentities () pour écrire votre propre fonction qui ne l’thing.Without même compte tenu de la performance (htmlentities () est plus rapide), la fonction- main clé a été certainement revu et testé par plus de personnes que votre code, et doit sûrement contenir moins d’erreurs qui conduisent à des vulnérabilités.
3.Autoriser uniquement les contenus validés lorsque vous écrivez votre logique de filtrage, de permettre que le contenu que vous sentir en sécurité plutôt que d’essayer d’exclure le contenu que vous un sentiment d’insécurité. Par exemple, si un utilisateur fournit un nom, vous pouvez commencer par ne permettant que l’AC-tères alphabétique et des espaces, ils sont assez sûr (bien sûr, vous voulez aussi faire en sorte que la longueur est réaliste). Donc, si des noms tels que Tim Berners-Lee et O’Reilly sont rejetées quand elles sont parfaitement valables, vous permettra de résoudre facilement ce problème. Un changement rapide dans la logique de votre filtre pour permettre également apostrophes et traits d’union est tout ce qu’il faut. Au fil du temps, vous pourrez améliorer votre sens de filtration, et d’éviter de tels problèmes.
L’approche correcte consiste à ne pas hésiter à mentionner un caractère valide dans la conception de votre filtre, plutôt que d’avoir recours à laxiste caractéristiques générales: il est bien pire pour permettre un caractère dangereux que de rejeter un cours. Aussi, quand vous avez tort de trop de prudence, une solution rapide corrige le problème et ceux qui ont connu le problème que vous connaissez. Si vous créez une vulnérabilité XSS, vous apprendrez la réalité à travers la plus difficile: on ne sait jamais jusqu’à ce qu’il soit trop tard, et que votre demande est déjà compromise.
4.Utilisez un stricteIl convention de nommage sont nombreuses conventions de nommage que les développeurs utilisent pour déterminer si une variable contient des données filtrées ou non filtrées. Choisissez celle qui semble la plus intuitive entre eux et l’utilisent régulièrement dans votre developments.Most de ces conventions de nommage utilisées termes descriptifs comme propre (clean), sale (dirty), se référant respectivement aux données filtrées et non filtrées (le processus de données filtrage est communément appelé le nettoyage ou le «nettoyage»). Certaines des données non filtrées sont pollués. Si vous utilisez une de ces conventions de nommage, il est plus facile pour vous de garder trace de vos données. Le plus important pour mettre en œuvre une convention de nommage est d’extraire uniquement les données filtrées et veiller à ce qu’aucune des données non filtrée est mal nommé.
5. Soyez créatif Armé d’une bonne compréhension du web et de votre propre application, vous êtes la personne la mieux qualifiée pour assurer la sécurité et protéger votre application et ses utilisateurs, les attaques. Il est important d’être créatif et essayer de ne pas faire des hypothèses sur la façon dont les utilisateurs interagissent avec votre site. Les données étrangères peuvent provenir de n’importe quoi, et vous verrez bientôt que même un utilisateur légitime peut être complice dans une attaque sans savoir it.Do aucune confiance aux données que vos données de filtrage n’a pas approuvé.
Cross-Site Request Forgeries Cross-Site Request Forgeries attaques de style (CSRF) sont en contraste avec XSS. Plutôt que d’exploiter le site de l’utilisateur, ils exploitent la con-fiance du site Internet fait ses utilisateurs. Dans le cas de XSS que nous venons de parler, l’utilisateur est la victime. Dans le cas de CSRF, l’utilisateur est inconsciemment complice.
Risques
Une vulnérabilité XSS est à l’origine de la propagation du virus Sammy sur MySpace en 2005 ainsi que Yamanner Yahoo! Mail en 2006.
Types de vulnérabilités XSS
Il n’ya pas de classification normalisée des failles cross-site scripting, mais peut facilement distinguer deux types principaux de XSS: non persistantes et persistantes. Il est également possible de séparer ces deux types en deux groupes: les XSS traditionnels (causé par une vulnérabilité dans le serveur-côté) et le XSS DOM-base (en raison de la vulnérabilité côté client)
Réfléchie XSS (ou non-permanent)
Il apparaît lorsque des données depuis un client Web est utilisé comme indiqué par le serveur de scripts pour produire une page de résultats. Si les données non vérifiées sont incluses dans la page de résultats sans entités HTML codage, ils peuvent être utilisés pour injecter du code dans la page dynamique est reçu par le navigateur du client.
Un exemple classique dans les moteurs de recherche et de sites web:si vous voulez une chaîne qui contient des caractères HTML spéciaux, souvent la chaîne de recherche seront affichés sur la page de résultats de rappeler ce qui a été demandée, ou dans une zone de texte pour la réédition de ce canal. Si la chaîne affichée n’est pas chiffré, il ya une faille XSS.
À première vue, ce n’est pas un problème grave, car l’utilisateur ne peut injecter du code dans leurs propres pages. Toutefois, avec un peu d’ingénierie sociale, un attaquant peut convaincre un utilisateur de suivre une bombe URL qui injecte du code dans la page de résultats, donnant le contrôle attaquant sur le contenu de cette ingénierie page.Social est nécessaire pour le fonctionnement de ce type de défaut (et précédentes), de nombreux programmeurs ont constaté que ces trous n’étaient pas très importants. Cette erreur est souvent généralisée à une vulnérabilité XSS en général.
XSS stockées (ou permanents)
Ce type de vulnérabilité, aussi appelé échec permanent ou du second ordre permet de puissantes attaques. Il se produit lorsque les données d’un utilisateur sont stockées sur un serveur (dans une base de données, fichiers ou autres), puis réaffichée sans caractères spéciaux HTML ont été inscrits.
Un exemple classique est le forum où les utilisateurs peuvent afficher du texte formaté avec des balises HTML.Ces questions sont plus importantes que d’autres types, car un attaquant peut simplement injecter un script, une fois atteint un grand nombre de victimes sans avoir recours à l’ingénierie sociale.
Il existe diverses méthodes d’injection, qui ne requiert pas nécessairement que l’attaquant utilise les données des applications Web itself.All reçu par l’application Web (par e-mail, journaux, etc.) Qui peuvent être envoyés par un attaquant doit être codées avant leur son
t présentés sur une page dynamique, sinon XSS existe.
DOM-fondé ou locales
Ce type de XSS est connu depuis longtemps. Un article écrit en 2005, définit ses caractéristiques. Dans ce cas, le problème est dans le script pour une page sur le côté client. Par exemple, si un morceau de JavaScript accède à un paramètre à une requête d’URL et utilise ces informations pour écrire sa propre page HTML, et cette information n’est pas codée comme des entités HTML, alors il ya probablement une vulnérabilité XSS. Les données écrites seront réinterprétées par le navigateur sous forme de code HTML, contenant éventuellement un script malveillant ajouté.
Dans la pratique, la façon d’exploiter une telle faille sera similaire aux types suivants, sauf dans une situation très importante.En raison de la façon dont Internet Explorer traite les scripts côté client dans des objets dans la «zone locale (par exemple le client local sur le disque dur), un défaut de ce type peut conduire à des vulnérabilités d’exécution à distance. Par exemple, si un attaquant héberge un site Web’ malveillants ‘avec un lien vers une page vulnérable sur le système local du client, un script peut être injecté et exécuter avec les privilèges du navigateur web de l’utilisateur sur ce système. Cette contourne complètement le«bac à sable ‘, non seulement les restrictions inter-domaines qui sont normalement contournées par XSS.
Références
Pierre Gardenat ‘XSS, la brise à l’ouragan», in Actes de la Conférence SSTIC 2009, en ligne: [1], consulté le Juin 26, 2009. ‘
‘