JavaScript peut être utilisé comme un outil pour les pirates pour attaquer les sites Web. L'injection de scripts malveillants de JS (JavaScript) est l'une des méthodes. Alors, apprenons à prévenir les attaques d'injection JS? Ce qui suit est une bonne déclaration, partagez avec vous:
Qu'est-ce qu'une attaque par injection JavaScript?
Chaque fois que vous acceptez les contributions de contenu d'un utilisateur et que vous la redigez, le site Web est vulnérable aux attaques d'injection JavaScript. Examinons une application spécifique vulnérable aux attaques d'injection JavaScript. Supposons qu'un site Web de commentaires des clients ait été créé. Les clients peuvent visiter le site Web et saisir des informations sur le produit. Lorsqu'un client soumet des commentaires, les informations de rétroaction sont redimensionnées sur la page de rétroaction.
Le site Web de commentaires des clients est un site Web simple. Malheureusement, ce site Web est vulnérable aux attaques d'injection JavaScript.
Supposons que le texte suivant soit entré dans le formulaire de rétroaction du client:
<Script> alert ("boo!") </cript>
Ce texte représente un script JavaScript qui affiche la zone de message d'avertissement. Après que quelqu'un ait soumis ce script au formulaire de rétroaction client, le message Boo! Affichera une attaque lorsque quiconque visitera le site Web des commentaires des clients à l'avenir. Vous pouvez également penser que d'autres ne pourront pas le détruire grâce à des attaques d'injection JavaScript.
Maintenant, votre première réaction aux attaques d'injection JavaScript peut être de les ignorer. Vous pourriez penser que les attaques d'injection JavaScript ne sont rien de plus que inoffensives, et malheureusement, les pirates sabotaient en injectant JavaScript dans leurs sites Web. Une attaque par injection JavaScript peut être utilisée pour effectuer des attaques de scripts inter-sites (XSS). Dans une attaque de script inter-sites, des informations condamnales d'utilisateur peuvent être volées et envoyées à un autre site Web.
Par exemple, les pirates peuvent utiliser des attaques d'injection JavaScript pour voler les valeurs des cookies aux navigateurs des autres utilisateurs. Si des informations sensibles (telles que les mots de passe, les comptes de cartes de crédit ou les numéros de sécurité sociale) sont enregistrés dans les cookies de navigateur, les pirates peuvent le voler à l'aide d'attaques d'injection JavaScript. Alternativement, si l'utilisateur entre dans les informations sensibles dans le champ de formulaire de la page et que la page est compromise par une attaque JavaScript, le pirate peut utiliser le JavaScript injecté pour obtenir les données du formulaire et les envoyer à un autre site Web.
Veuillez prêter une grande attention. Prenez au sérieux les attaques d'injection JavaScript et protégez les informations confidentielles des utilisateurs. Dans les deux sections suivantes, nous discuterons de deux techniques pour empêcher les applications ASP.NET MVC d'être attaquées par l'injection JavaScript.
Méthode 1: Encodage HTML dans la vue
Un moyen facile d'empêcher les attaques d'injection JavaScript consiste à coder les données saisies par n'importe quel utilisateur de site Web dans HTML lors de la rediffusion des données dans la vue.
Par exemple: <% = html.encode (feedback.message)%>
Quelle est la signification de l'utilisation de HTML pour coder une chaîne? Lors de l'utilisation de HTML pour coder des chaînes, des caractères dangereux tels que <et> sont remplacés par des entités HTML telles que <et>. Ainsi, lorsque la chaîne <cript> alert ("boo!") </cript> est codée à l'aide de html, il sera converti en <Script> alert ("boo!") </cript>. Le navigateur n'exécute plus les scripts JavaScript lors de l'analyse des chaînes codées. Au lieu de cela, il montre des pages inoffensives
Méthode 2: Encodage HTML avant d'écrire dans la base de données
En plus d'utiliser HTML pour coder des données lors de l'affichage des données dans une vue, vous pouvez également utiliser HTML pour coder des données avant de les soumettre à la base de données. La deuxième méthode est exactement le cas avec le contrôleur dans la liste 4 du programme.
comme:
public ActionResult Create (String Message) {// Ajouter FeedbackVar newFeedBack = new Feedback (); newFeedBack.Message = server.htmLencode (message); newFeedback.EntryDate = DateTime.Now; db.feedbacks.insertonsubmit (newfeedback); db.subMitchanges (); // redireturn redirectToaction ("index");}Notez que la valeur du message est HTML codée dans l'opération CREATE () avant de se soumettre à la base de données. Lorsqu'un message est revisité dans la vue, le message est codé HTML, donc aucun javascript injecté dans le message n'est effectué.
Résumer
Souvent, les gens préfèrent utiliser la première méthode discutée dans ce tutoriel et non la deuxième méthode. Le problème avec la deuxième approche est que les données codées par HTML seront finalement conservées dans la base de données. En d'autres termes, les données de la base de données contiendront des caractères étranges. Quel est l'inconvénient de cela? Si vous devez afficher les données de base de données sous un formulaire autre qu'une page Web, vous rencontrerez des problèmes. Par exemple, les données ne peuvent pas être affichées facilement dans les applications Windows Forms.
Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.