Dans ce chapitre, nous allons examiner quelques attaques courantes, et comment l'exemple de site de tableau d'affichage est vulnérable, et comment y remédier pour ces attaques. La première vulnérabilité que nous allons examiner est le script intersite. N'oubliez pas que les scripts intersites sont une vulnérabilité cela se produit lorsque nous prenons l'entrée d'un utilisateur et l'afficher à un autre utilisateur. Pourquoi est-ce une vulnérabilité ? N'oubliez pas que ce que le serveur envoie à l'utilisateur s'affiche sous la forme d'une page HTML. La page HTML peut inclure JavaScript qui est le code qui s'exécute sur le navigateur. Nous ne voulons pas que les pirates mettent du code sur notre site qui s'exécute dans les navigateurs d'autres utilisateurs. Le site du babillard a deux endroits où nous prenons l'entrée d'un utilisateur et l'afficher aux autres utilisateurs. L'un est dans les profils d'utilisateurs, et l'autre est dans les messages du babillard. Nous allons regarder spécifiquement les profils d'utilisateurs. Donc ici, quand nous avons des messages récents, nous pouvons cliquer sur le profil d'un utilisateur, sur le nom de l'utilisateur pour voir leur profil. Et là, nous voyons le profil de John. Maintenant, si John veut modifier son profil, Je suis actuellement connecté en tant que John, Je peux cliquer sur Modifier le profil. Et ensuite, ils peuvent changer leur texte À propos et changer leur photo de profil. Pour tester pour voir si un champ particulier est vulnérable aux scripts intersites, nous n'avons qu'à y entrer du HTML. Ainsi par exemple, rendons ce dernier peu audacieux, si nous sommes vulnérables aux scripts intersites. Si nous ne sommes pas vulnérables aux scripts intersites, puis nous verrons la balise réelle, strong. Nous y retournerons et nous verrons le profil de John. Nous pouvons donc voir que cette phrase est en fait en gras. Nous ne voyons pas les balises. Les balises sont interprétées comme HTML. Cela signifie que ce domaine particulier est vulnérable aux scripts intersites. Prenons un autre exemple. N'oubliez pas que HTML peut inclure JavaScript. Étant donné qu'il est vulnérable aux scripts intersites, ce script s'exécutera lorsqu'un utilisateur consultera le profil de John. Ce script s'est donc exécuté et a affiché une alerte. Maintenant, une alerte est assez bénigne, mais n'importe quel JavaScript aurait pu être là, et il aurait été exécuté. Ainsi, les scripts intersites permettent aux pirates de mettre du code dans votre site qui s'exécutera sur les navigateurs des autres utilisateurs. Comment résoudre ce problème ? Eh bien, l'idée de base est que nous devons traiter la sortie et remplacer certains caractères clés par des équivalents HTML. Par example, nous remplaçons le signe moins que par un <. Nous remplaçons le signe supérieur à par un signe similaire Entité HTML. Maintenant, nous devons le faire avec chaque personnage qui est spécial au HTML. Cela doit être fait avec n'importe quelle sortie que nous envoyons au navigateur de l'utilisateur qui inclut l'entrée d'un autre utilisateur. Et c'est vraiment facile de rater des endroits. Donc, la meilleure façon de résoudre ce problème est d'utiliser un système de modèles. Le système de modèles est essentiellement un mini-langage que nous utilisons pour créer nos pages Web. Laissez-moi vous montrer le système de modèles que ce site particulier utilise. Nous utilisons donc le système de modèles Twig. Vous pouvez voir que, par exemple, nous avons un titre qui dit Profil pour, puis entre doubles accolades, c'est person.name. Cela prend le contenu d'une variable appelée personne, en prenant un champ appelé nom, puis de le sortir sur le navigateur Web. Les systèmes de modèles par défaut vous protégeront à partir de scripts intersites. En fait, je devais dire spécifiquement à ce système de modèles pour ne pas me protéger afin que nous puissions voir la vulnérabilité. Nous regardons vers le bas où nous affichons le texte À propos. J'ai ajouté dans le drapeau brut là-bas pour dire au système de modèles, ne me protège pas des scripts intersites. Alors laissez-moi supprimer ce drapeau brut, sauf que puis actualisez ce profil. Alors maintenant tu peux voir que je vois le JavaScript réel qu'ils ont entré. Il ne s'exécute pas. Un système de modèles est de loin votre meilleur moyen pour se protéger contre les scripts intersites, puisqu'il vous protégera automatiquement à chaque fois que vous affichez quelque chose sur le navigateur Web. Vous n'avez pas à vous soucier de manquer quelque chose dans votre filtre. Il existe une autre vulnérabilité de script intersite sur le site du babillard. Souviens-toi de ce dont nous avons parlé quand nous avons parlé d'entrée et de sortie et quelles actions pourraient être vulnérables. Je vais vous le laisser comme exercice pour trouver celui-là et le réparer. Merci d'avoir regardé. Dans la leçon suivante, nous verrons la manipulation d'URL, astuce très courante que les pirates utilisent pour accéder à des zones ils ne devraient pas pouvoir y accéder.