2016-03-02 87 views
-2

在我们的应用程序中,最终用户提供了一个文本框,他们可以粘贴html或javascript代码来创建非常像Google广告的广告,所以我需要验证这些html和js源代码是否符合恶意代码以及正确的语法。 那么在java中有没有可用的API来做同样的事情?如何验证JavaScript和HTML代码?

在此先感谢 阿里。

+2

确实没有任何确定的方法来验证原始HTML/Javascript。 – Marie

+1

显示您的研究。 – moffeltje

+0

对于html代码验证Jtidy可以使用,但对于Javascript代码验证和恶意代码我无法找到任何东西。 –

回答

0

验证JS 客户端仅对您的好用户有用 - 因为无论如何恶意用户可以绕过任何客户端验证代码(通过与应该进行验证的JS进行混淆)。

验证JS 服务器端寻找“恶意”在一般意义上是不可能的,除非你有一个非常严格的白名单来检查。最好在沙盒中执行防止坏事的东西,并避免验证(=在执行前检查有效性)。

所以,JavaScript沙盒。最常用的可能是Google Caja - 也可以防止错误的html/css。沙盒并不容易 - 特别是,Caja需要一个服务器端部分来“哄骗”文件并保护主页;并且需要在预先标识的地方标识div之外的主页的任何部分。

另请参见另一个SO问题的一些alternatives。请注意,他们中的许多人不允许从受保护的代码访问DOM,因此对于实际上必须在屏幕上显示内容的JS没有用处。

0

如果您搜索它,您可以在Internet上找到很多来源。这里有几个:Java Encoder ProjectJava HTML Sanitizer。我从来没有使用过它们,但这是一个起点。如果你自己做研究,你可以学到很多东西。

编辑:目前还不清楚您是否在寻找Java API或JavaScript API。他们完全不同。