繁体   English   中英

检查HTML是否包含PHP中的JavaScript

[英]Check if HTML contains JavaScript in PHP

我需要检查用户提交的HTML是否包含任何JavaScript。 我正在使用PHP进行验证。

如果您想保护自己免受跨站点脚本(XSS)的攻击,那么您最好使用白名单而不是黑名单 因为在寻找XSS攻击时需要考虑太多方面

只需列出您要允许的所有HTML标记和属性,然后删除/转义所有其他标记/属性。 对于那些可用于XSS攻击的属性,请验证值以仅允许无害值。

采用不同的方法并使用HTML Purifier之类的东西来过滤掉你不想要的任何东西可能会更好。 我认为在没有正确解析HTML的情况下安全地删除javascript的任何可能性是非常困难的。

好吧,让我们不要在这里天真:

<script> "<!-- </script> -->"; document.write("hello world"); </script> <script> "<!-- </script> -->"; document.write("hello world"); </script> (应该通过regexadvice建议的过滤器)

过滤掉javascript是一个安全问题,这意味着你需要彻底和正确地完成它,而不是一些快速入侵。

您可以使用正则表达式删除Pawka声明的脚本标记。 我在这里发现了一个帖子。

基本上它是:

$list=preg_replace('#<script[^>]*>.*?</script>#is','',$list);

代码来自该页面,不是我写的。

您需要扫描<script>标签,但您还需要扫描像onclick=""onmouseover=""等属性...可以使用javascript而不需要脚本标记。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM