溢出堆栈,
我有一个 Java 网络应用程序 (tomcat),我允许用户通过表单上传 HTML 代码。
现在,由于我在 tomcat 上运行并且我实际上显示了用户上传的 HTML,我不希望用户对 JSP 标签/scriptlet/EL 进行恶意编码并在服务器上执行这些代码。我想过滤掉任何 JSP/非 HTML 内容。
自己编写解析器似乎过于繁重 - 除了必须处理的许多细微之处(注释、脚本的字节表示等)。
你知道有什么 API/库可以为我做这件事吗?我知道 Caja 过滤,但我正在寻找专门针对 JSP 的东西。
非常感谢, JP,马耳他。
最佳答案
使用库进行内容清理比尝试自己做更好,例如正则表达式。
尝试开放 Web 应用程序安全项目的 Antisamy。
http://www.owasp.org/index.php/Antisamy
我(还)没有用过,但似乎很合适。 JSP 内容应由 HTML 规范化自动删除/转义。
编辑,刚找到这些:
Best Practice: User generated HTML cleaning
RegEx match open tags except XHTML self-contained tags
关于java - 如何从用户提交的页面中过滤(删除)JSP 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3447289/