基本上我有一个web应用程序,它目前易受XSS攻击。根据我的研究,我发现一个好的开放式图书馆可以帮助反艾米。所以我下载了library.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中保护它。
非常感谢。

最佳答案

你可以使用下面的代码

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文件中。有四个不同的策略文件。
根据您的要求,您可以使用任何策略文件,并根据您的要求添加规则。
Here is the more details about antisamy

07-27 23:05