如何使用PHP在纯HTML中检测Javascript的存在?

时间:2017-12-22 19:34:52

标签: javascript php html xss

我有简单的HTML代码,里面没有Javascript代码。

如何检测HTML中是否注入了任何形式的Javascript?

应用程序生成HTML客户端。并且一旦它到达服务器就需要验证它。

目标不是删除Javascript,而只是检测它的存在。

2 个答案:

答案 0 :(得分:1)

这就是像HTML Purifier这样的工具。他们将输入分解为令牌,将其与白名单进行对比。

这比尝试找到将脚本插入HTML的特定方法更安全,因为有一些使用了格式错误的标签或非明显属性的技巧。例如,请参阅XSS Evasion Cheat Sheet

答案 1 :(得分:0)

删除可能比检测更容易 - 只需通过htmlspecialchars($string)转义所有HTML等。

好吧,这是一个非常有趣的挑战: 首先,检查所有脚本标签,包括大写和小写

<SCRIPT> <script> <sCrIPt>

然后,检查事件处理程序(onclick等)。

为此,我们使用DOM

$dom = new DOMDocument;
$dom->loadHTML($string);

你可以用DOM工作各种各样的魔法,我建议你阅读他们的文档。使用&#34; on&#34;检查任何属性。在他们中