基本上,我有一个web-app,它目前容易受到XSS的攻击。根据我的研究,我发现AntiSamy是一个很好的开放的库。因此,我下载了库.jar文件antisamy-1.5.1.jar和策略文件antisamy-slashdot-1.4.4.xml,并将其导出到我的项目WEB-INF目录。
我对AntiSamy还很陌生,不知道如何在字符串上实现它来编码和保护它。
假设我有一个字符串:String XSSPossible = "<script>alert("It's vulnerable.");</script>";,现在我想把它编码成一个普通的文本,并从XSS中保护它。
致以深深的敬意。
发布于 2017-04-08 19:07:32
您可以使用以下代码
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
获得干净的超文本标记语言的所有规则都在antisamy*.xml文件中。有四个不同的策略文件。
根据您的要求,您可以使用任何策略文件,并根据您的要求添加规则。
https://stackoverflow.com/questions/43135291
复制相似问题