Anti-XSS bibliothèques java
Je suis à la recherche d'une librairie java qui peut fournir une protection contre Les attaques XSS. Je suis en train d'écrire un serveur, et souhaite pour valider mon la saisie de l'utilisateur ne contient pas de code javascript malveillant.
La bibliothèque recommanderiez-vous?
double possible de Comment faire pour "Purifier" code HTML pour empêcher les attaques XSS en Java ou JSP ? et Meilleur regex pour attraper les attaques de type XSS (Cross-site Scripting) attaque (en Java)?
vrai.
vrai.
OriginalL'auteur |
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser AntiSamy. (C'est ce que j'ai fait)
XSS ne peut pas vraiment être détecté jusqu'à ce que son exécuté avec succès dans un contexte du navigateur. Cependant, antisamy ne générer une liste d'erreurs, de sorte que vous pouvez voir les raisons pour lesquelles un particulier DOM a été rejetée. À ce stade, cependant, antisamy n'a pas été touché depuis 2013, de sorte qu'il ne devrait probablement pas être utilisé de toute façon.
OriginalL'auteur
La grande poste comment empêcher les attaques XSS dans différentes situations est affiché dans la pile suivante: Éviter les attaques de type XSS et de permettre à des balises html avec JavaScript
si l'attaquant a déjà obtenu l'accès à la capacité de faire monkey patching, puis il peut, en gros, déjà juste faire tout ce qu'il serait capable de le faire par le biais de XSS.
mon point est qu'en tant que développeur web, l'extrémité avant est tout simplement le mal place pour mettre en œuvre aucun type de XSS, de la prévention, car le serveur n'a aucun contrôle sur ce qui se passe dans le navigateur. Le navigateur n'est pas fiable, tout le temps.
Il dépend de l'application. Si l'Application ne permet pas de rendre vos utilisateurs de contenu, et donc de l'exécuter comment l'attaquant d'exploiter cette vulnérabilité ?
la seule façon de garantir qu'une application ne permet pas de rendre le contenu de l'utilisateur, est à 1.) Ne jamais afficher la saisie de l'utilisateur dans un navigateur, 2.) Toujours échapper à l'utilisateur des données envoyées de nouveau pour le contexte approprié. La première s'applique à quelques applications, il peut très bien être jetés. La deuxième, stipule que l'échappement être fait sur le backend, avant que la page charge utile atteint l'utilisateur.
OriginalL'auteur
Si vous voulez les accepter le HTML de la part des utilisateurs, puis AntiSamy ou quelque chose comme jsoup de sens. Cependant, si vous voulez un bon jeu de évadés, vous pouvez utiliser une bibliothèque comme CSL
Nous avons une feuille de triche en ligne qui montre comment l'utiliser dans de nombreux HTML contextes (aka HTML constructions):
OriginalL'auteur
J'ai utilisé le OWASP nettoyage HTML de projet avec beaucoup de succès.
https://www.owasp.org/index.php/OWASP_Java_HTML_Sanitizer_Project
Politiques peuvent être définis (ou politiques prédéfinies peuvent être utilisés) qui vous permettent de contrôler quels types d'éléments HTML sont pas autorisés sur la Chaîne en cours de validation/désinfectés. Un auditeur peut être utilisé comme le HTML est désinfectés afin de déterminer quels éléments sont à se faire rejeter, vous donnant la flexibilité autour de la façon de les communiquer au client. Autre qu'une mise en œuvre simple, j'aime aussi cette bibliothèque, car il est produit et maintenu par l'OWASP, depuis longtemps une organisation dont le but est la sécurité du web.
OriginalL'auteur
J'ai écrit un post de blog sur la manière de désinfecter vos entrées à l'aide de l'OWASP de la bibliothèque, peut être peut être utile https://leantechblog.wordpress.com/2017/04/08/preventing-xss-sanitize-app-inputs/
OriginalL'auteur