AntiSamy防御 主要思路为:对用户输入的脚本,提交的数据进行转义,编码。 AntiSamy提供了对恶意指令的过滤,各个标签、属性的处理方法。主要通过定义策略文件来达到防御的效果。 1、导入jar <dependency> <groupId>org.owasp.antisamy</groupId> <artifactId>antisamy</artifactId> <version -- css处理规则 --> <css-rules> </css-rules> </anti-samy-rules> AntiSamy的策略文件类型有如下: **antisamy-anythinggoes.xml **antisamy-tinymce.xml:**只允许文本格式通过。 **antisamy.xml:**默认规则,允许大部分html通过。 antiSamy = new AntiSamy(); try { log.info("raw value before xssClean: " + paramValue
builder.Services.AddXssFilter(opt => opt.DefaultSchemeName = "DefaultPolicy") .AddScheme<AntisamyPolicy>("antisamy ", () => File.ReadAllTextAsync(Path.Combine(ContentRootPath, "resources/antisamy.xml"))) .AddScheme AddScheme<AntisamyPolicy>("ebay", () => File.ReadAllTextAsync(Path.Combine(ContentRootPath, "resources/antisamy-ebay.xml AddScheme<AntisamyPolicy>("test", () => File.ReadAllTextAsync(Path.Combine(ContentRootPath, "resources/antisamy-test.xml new AntisamyPolicy();//json格式用JsonFilterPolicy类 policy.Init(File.ReadAllText("c:/www/resources/antisamy-ebay.xml
漏洞预防策略最佳实践 9.1 输入环节 页面限制输入长度、特殊字符限制,后端代码限制输入长度、处理特殊字符 Filter 过滤器统一处理(自定义处理规则、使用 Apache Text、使用 Owasp AntiSamy --防止XSS攻击的antiSamy--> <dependency> <groupId>org.owasp.antisamy</groupId> <artifactId>antisamy private String xssClean(String html) { String cleanHTML = ""; try { AntiSamy antiSamy = new AntiSamy(); CleanResults scan = antiSamy.scan(html, policy); String[len]; for (int i = 0; i < len; i++) { // 过滤前的数据 log.info("使用AntiSamy
那问题就回到我们XSS漏洞修复的实现方式:AntiSamy(见参考链接)。 value = value.replace(keyFilterStr, "‘"); } } AntiSamy antiSamy = new AntiSamy(); try { final CleanResults cr = antiSamy.scan(value, policy scan error", e); } catch (PolicyException e) { log.error("antiSamy policy error" , e); } return value; } } 可以看到了我们项目组最终采用的策略配置文件是:antisamy-tinymce.xml,这种策略只允许传送纯文本到后台
res.setHeader("Location", redirectUrl); } } 三、关键交易防重技术 (看不清时,点击查看大图) 四、XSS过滤器 可以利用OWASP的一个开源项目:AntiSamy AntiSamy是可以确保前端输入的HTML、CSS、JavaScript符合规范的API。
Plugin:nodelabelparameter, Plugin:external-monitor-job, Plugin:mailer, Plugin:jquery, Plugin:antisamy-markup-formatter
对 AntiSamy 升级到了 1.7.0,并支持了 AntiSamy 自定义的 AntiSamy-sapi.xml 文件。 从上一个版本开始,此版本仅支持 Java 8 或更高版本。
src/main/resources/antisamy-ebay.xml (73104 B)... OK. src/main/resources/antisamy-empty.xml (2371 B)... OK.
pipeline-stage-tags-metadata Pipeline: Stage Tags Metadata 1.6.0 antisamy-markup-formatter
pipeline-rest-api.jpi ssh-slaves workflow-cps-global-lib 6 antisamy-markup-formatter pipeline-stage-step ssh-slaves.jpi workflow-cps-global-lib.jpi 7 antisamy-markup-formatter.jpi
OWASP Markup Formatter Plugin 当前版本:2.7 插件地址:https://plugins.jenkins.io/antisamy-markup-formatter/ 作用
private String xssClean(String value) { //ClassLoaderUtils.getResourceAsStream("classpath:antisamy-slashdot.xml
l 避免反斜杠转义(\” 或 \’ 或\\) HTML HTML Body
提交铭感数据的时候是否有防止csrf的token、refer、验证码等 3、sql注入 1)Statement和preparestatement 2)mybitas框架 #和$ 4、XSS 我们用的antisamy