我有简单的HTML代码,里面没有Javascript代码。
如何检测HTML中是否注入了任何形式的Javascript?
应用程序生成HTML客户端。并且一旦它到达服务器就需要验证它。
目标不是删除Javascript,而只是检测它的存在。
答案 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;检查任何属性。在他们中