在我们的应用程序中,最终用户被提供了一个文本框,他们可以粘贴他们的html或javascript代码来创建广告,就像Google广告一样,所以我需要验证这些html和js源代码,以防止恶意代码和正确的语法。 那么java中是否有可用的API来做同样的事情?
提前致谢 阿里。
答案 0 :(得分:0)
如果您搜索,可以在互联网上找到很多来源。以下是一些:Java Encoder Project和Java HTML Sanitizer。我从来没有使用它们,但这是一个起点。如果你自己做研究,你可以学到很多东西。
编辑:目前还不清楚您是在寻找Java API还是JavaScript API。他们是完全不同的。
答案 1 :(得分:0)
验证JS 客户端仅对您的好用户有用 - 因为恶意用户无论如何都可以绕过任何客户端验证代码(通过搞乱应该进行验证的JS)。
在一般意义上,验证JS 服务器端以查找“恶意”是不可能的,除非您有一个非常严格的白名单要检查。最好在沙盒中执行防止坏事的事情,并且完全避免验证(=在执行之前检查有效性)。
所以,JavaScript Sandboxes。最常用的可能是Google Caja - 也可以防止糟糕的html / css。沙盒并不容易 - 特别是,Caja需要服务器端部分来“哄骗”文件并保护主页;并且需要预先识别被调用div
之外的主页的任何部分。
另见另一个SO问题中的一些alternatives。请注意,其中许多不允许从受保护的代码访问DOM,因此对于实际必须在屏幕上显示内容的JS无用。