如何验证 JavaScript 和 html 代码

How to validate javascript and html code?

本文关键字:JavaScript html 代码 验证 何验证      更新时间:2023-09-26

在我们的应用程序中,最终用户会提供一个文本框,他们可以在其中粘贴他们的html或javascript代码来创建广告,就像Google广告一样,所以我需要验证这些html和js源代码针对恶意代码以及正确的语法。那么Java中是否有任何API可以做同样的事情呢?

提前致谢阿里。

验证JS客户端只对你的好用户有用 - 因为恶意用户无论如何都可以绕过任何客户端验证代码(通过弄乱应该进行验证的JS)。

在一般意义上验证JS服务器端以查找"恶意"是不可能的,除非您有一个非常严格的白名单要检查。最好在沙盒中执行内容,以防止坏事,并完全避免验证(=在执行之前检查有效性)。

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

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

如果你搜索它,你可以在互联网上找到很多资源。以下是一些:Java Encoder Project和Java HTML Sanitizer。我从未使用过它们,但这是一个起点。如果你自己做研究,你可以学到很多东西。

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