3

基本上我有一个网络应用程序,它目前容易受到 XSS 的攻击。根据我的研究,我发现一个可以提供帮助的优秀且开放的图书馆是 AntiSamy。所以我下载了库 .jar 文件antisamy-1.5.1.jar和策略文件antisamy-slashdot-1.4.4.xml并将其导出到我的项目 WEB-INF 目录。

我对 AntiSamy 非常陌生,并且真的不知道如何在字符串上实现它以对其进行编码和保护它免受 XSS 攻击。

假设我有一串:String XSSPossible = "<script>alert("It's vulnerable.");</script>";现在我想将它编码为普通文本并保护它免受 XSS 攻击。

非常问候。

4

1 回答 1

1

您可以使用以下代码

public class AntisamySample 
{
     public static AntiSamy antiSamy; 
     public static Policy policy; 
     public static CleanResults cleanResults; 
     static String policyFileName = "antisamy-slashdot-1.4.4.xml"; 

     private Policy gtePolicyFile()
     {
         try
         {
             policy = policy.getInstance(this.getClass().getResourceAsStream(policyFileName));
         }
         catch (PolicyException e) 
         {
            e.printStackTrace();
         }
         return policy;
     }

     public static void main(String[] args) 
     {
         String XSSPossible = "<script>alert('It's vulnerable.');</script>";
         String cleanResult = "";
         try
         { 
             AntisamySample  antisamy = new AntisamySample();
             antiSamy = new AntiSamy();
             policy = antisamy.gtePolicyFile();
             cleanResults = antiSamy.scan(XSSPossible, policy); 

             cleanResult = cleanResults.getCleanHTML(); 
         } 
         catch(PolicyException e) 
         { 
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
         catch (ScanException e)
         {
             // TODO Auto-generated catch block
             e.printStackTrace();
         } 
     }
}

这将为您返回干净的 HTML

获得干净 HTML 的所有规则都在antisamy*.xml文件中。有四个不同的策略文件。

根据您的要求,您可以使用任何策略文件并根据您的要求添加规则。

这是有关反反义词的更多详细信息

于 2017-04-08T11:07:32.153 回答