问题标签 [antisamy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
coldfusion - 如何清理表单值以允许纯文本
我知道如果用户需要提供 HTML 代码作为表单输入的一部分(例如在 textarea 中),那么我会使用 Anti-Samy 策略来过滤掉不允许的危险 HTML。
但是,我有一些文本字段和文本区域应该是纯文本的。根本不应该从这些字段将 HTML 代码插入到数据库中。
因此,我正在尝试清理输入,以便仅将原始文本插入数据库。我相信我可以通过两种方式做到这一点:
- 使用正则表达式过滤掉 HTML 代码,例如
#REReplaceNoCase(FORM.InputField, "[^a-zA-Z\d\s:]", "", "ALL")#
- 使用严格的纯文本 Anti-Samy 政策
哪个选项是从文本字段中删除任何用户输入的 HTML 代码的正确/良好实践方法。或者我还有其他选择吗?
java - Web 项目中 AntiSamy 策略文件的位置
我正在尝试使用AntiSamy来防止对我的网站进行 XSS 攻击。我下载了以下 jar 并将它们添加到“/WEB-INF/lib”
antisamy-1.5.3.jar
nekohtml.jar
xercesImpl-2.5.0.jar
以及“/WEB-INF”中的策略文件antisamy-slashdot-1.4.4.xml。
我试图通过web.xml实现过滤器。我正在使用的 servlet 的一个片段是
Policy policy = Policy.getInstance(url.getFile());后部署失败 . 这可能是因为策略文件的路径。
有人可以告诉我政策文件应该保存在哪里吗?
validation - AntiSamy 不允许我输入表单域
我有一个来自 CKEditor 的 RichTextArea。我最近做了一些修改来清理 HTML 输入。
正常情况正常,但任何表单字段,如复选框、文本区域、单选按钮等都会被删除。(我正在使用 getValidSafeHTML 来清理我的 HTML)。
我在这里尝试过像这个东西这样的不同策略文件,它应该允许一切 http://code.google.com/p/owaspantisamy/downloads/detail?name=antisamy-anythinggoes-1.4.4.xml
例如,
<form method="get" name="sampleform"><input name="radio" type="radio" /> </form>
变成
<form method="get" name="sampleform"> </form>
有人知道为什么会这样吗?
提前致谢
sanitization - 如何将 HTML5 标签添加到 AntiSamy 策略文件?
我的 AntiSamy 文件似乎不喜欢 HTML5<figure>
标记。它允许标签本身存在,但其中不包含任何内容。
所以这:
正在变成这样:
如何阻止反义词剥离<figure>
标签的内容?我希望它允许<figure>
标签及其所有属性和内容。
html - 为什么 OWASP AntiSamy 会去掉 figure 标签?
我的 AntiSamy 正在剥离<figure>
标签。
所以这:
正在变成这样:
我怎样才能阻止这种情况发生?
coldfusion - 为什么 getSafeHTML() 会抛出错误?
我似乎收到内容太长的错误,但我从未指定限制为 5000。无论如何,5000 太低了
...
org.owasp.validator.html.ScanException:输入太大。指定的输入为 6,989 字节,最大值为 5,000 字节。在 org.owasp.validator.html.scan.AntiSamyDOMScanner.scan(AntiSamyDOMScanner.java:101) 在 org.owasp.validator.html.AntiSamy.scan(AntiSamy.java:107) 在 Coldfusion.security.ESAPIUtils.getSafeHTML(ESAPIUtils .java:670) 在coldfusion.runtime.CFPage.GetSafeHTML(CFPage.java:10785) 在cfrow2ecfm1904818855.runPage(/Applications/ColdFusion11/cfusion/wwwroot/BS-4-CF/bootstrap/row.cfm:39)
java - OWASP AntiSamy 正在将换行符替换为 espaces (JAVA)
我在 JAVA 项目中使用 OWASP AntiSamy,但每次我尝试使用包含 \n 字符的字符串调用方法 getCleanHTML() 时,该方法都会替换为 espace“”。我已经尝试更改 XML 文件中的规则,但它仍在发生。我如何解决它?
java - 异常启动 AntiSamyFilter
我无法在装有 AntiSamy 过滤器的本地计算机上运行我的组的 Web 应用程序。该过滤器在我们的开发和生产服务器上的 WebSphere 上工作,并且在我同事的一台机器上运行良好,该机器应该与我的设置相同,使用 Tomcat。但是,在我的机器和其他几位同事的机器上,如果我们尝试使用 AntiSamy 过滤器启动我们的服务器,我们会收到以下错误:
2015 年 10 月 12 日晚上 11:06:32 org.apache.catalina.core.StandardContext filterStart 严重:异常启动过滤器 AntiSamyFilter java.lang.IllegalStateException: java.io.FileNotFoundException: C:\Users\myUsername\Documents\myWorkspaceDirectory.metadata .plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\mobile3\WEB-INF\classes\antisamy-default.xml(系统找不到指定的路径)
我查看了引用的目录,那里有一个“antisamy-default.xml”文件,所以我不确定从哪里开始找出导致错误的原因。
任何帮助都感激不尽!
java - AntiSamy 添加换行符“\n”
"\n"
清理脏输入后,Antisamy 在新行字符前面" "
加上"\n"
. 我正在使用 antisamy 1.5.3 jar。
例如:下面是清理 json 后的输出
这里
11:30\nAM
..这是11:30 AM
java - Tomcat 7 中的 NoClassDefFoundError
我们在生产中面临一个奇怪的问题。我们的是部署在 Tomcat 7 中的 Web 应用程序。我们使用 Antisamy-1.5.3.jar 来预防 XSS。每个用户请求都被一个过滤器拦截,该过滤器会扫描请求中的任何恶意内容。这个设置在 Tomcat 6 中运行了一年多。我们迁移到 Tomcat 7。用户在打开应用程序时打开和关闭 NoClassDefFoundError(不一致),但是当 Tomcat 重新启动时它工作正常。
下面是抛出异常的流程
用户请求被 AntiSamyFilter 拦截,并调用 owasp.validator.html.AntiSamy 类(AntiSamy 内部类)上的 scan 方法。
下面是扫描方法的代码
/li>当在上面的代码中引用 AnitSamyDOMScanner 类时,AntiSamyDOMScanner 超类的静态初始化块 - AbstractAntiSamyScanner 被调用,如下所示
/li>
这是引发异常的地方,因为由于某种原因,tomcat 无法加载资源包 - AntiSamy_en_US.properties 文件存在于根级别的 jar 文件中。由于这是静态块中的错误,因此抛出 ExceptionInInitializer 最终导致 NoClassDefFoundError。
下面是一起查看的两个异常 - 我们可以看到 NoClassDefFoundError 是由于 AbstractAntiSamyScanner 的静态 init 块中的异常引起的。
我们尝试在 Tomcat lib 和 WEB-INF/classes 下复制 Antisamy.properties,但没有成功。关于什么可能导致 AbstractAntiSamyScanner 在 jar 中找不到资源包的任何想法?