我是Owasp的新用户,它是HTML清理程序,并且发现使用我使用的任何策略,它都会将一些实体转移回字符.
例如这个字符串:
@ test !
变成了这个:
@ test !
我想尽可能“按现状”离开实体.我甚至可以理解它是否逃避它们,而不是取消它们.
这可能与消毒剂有关吗?无论我尝试使用什么政策,它似乎都会这样做.
这是我为简单测试运行的代码:
package com.my.company.test;
import org.junit.Test;
import org.owasp.html.PolicyFactory;
import org.owasp.html.Sanitizers;
import junit.framework.TestCase;
public class OwaspSanitizerTest extends TestCase {
public static final PolicyFactory POLICY = Sanitizers.IMAGES;
@Test
public static final void testTextFilter() throws Exception {
String data = "@ test !";
String result = POLICY.sanitize(data);
System.out.println(result);
assertEquals("@ test !", result);
}
}
编辑:我问的原因是我希望我的用户输入尽可能匹配我们输出的内容.我知道在某些情况下这是不可能的,但是预计会出现这种情况.
解决方法:
清理程序对文本节点进行解码,然后对它们进行重新编码以阻止编码级别的攻击,从而确保输出尽可能接近HTML和XML的交集,以最大限度地减少天真的后处理器重新生成的可能性.引入漏洞.