Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PHP检测普通HTML中是否存在Javascript?_Javascript_Php_Html_Xss - Fatal编程技术网

如何使用PHP检测普通HTML中是否存在Javascript?

如何使用PHP检测普通HTML中是否存在Javascript?,javascript,php,html,xss,Javascript,Php,Html,Xss,我有简单的HTML代码,没有Javascript代码 如何检测HTML中是否注入了任何形式的Javascript 应用程序在客户端生成HTML。并且需要在它到达服务器后对其进行验证 我们的目标不是删除Javascript,而是简单地检测它的存在。删除可能比检测更容易-只需转义所有HTML等。您可以使用htmlspecialchars($string) 好的,这是一个非常有趣的挑战: 首先,检查所有脚本标记,包括大写和小写 <SCRIPT> <script> <sCr

我有简单的HTML代码,没有Javascript代码

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

应用程序在客户端生成HTML。并且需要在它到达服务器后对其进行验证


我们的目标不是删除Javascript,而是简单地检测它的存在。

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

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

<SCRIPT> <script> <sCrIPt>
您可以使用DOM实现各种各样的功能,我建议您阅读他们的文档。检查其中是否有“on”的属性

这就是类似工具的用途。他们将输入分解成令牌,并在白名单上运行它们


这比试图找到将脚本插入HTML的特定方法更安全,因为存在使用格式错误的标记或不明显属性的技巧。查看示例。

无论您的问题是什么,您能解释一下吗?从你对这个问题的措辞来看,无论你遇到什么问题,你都可能想错了。@trincot它怎么知道?任何人都可以在我的服务器上发布邪恶的HTML,不是吗?@trincot你可以伪造一个发布请求,并在$_POST['HTML']中登录邪恶的HTML。哦重要的细节HTML是由应用程序在客户端生成的。是的,但是在如何理解这里的问题上有所不同。如果应用程序应该是唯一一个将此消息发送到服务器的应用程序,或者该应用程序是否可以接受任何输入并发送它。在第一种情况下,答案很简单:不要使用HTML,而是使用一些关键字段,让服务器将其转换为HTML。我想客户机和服务器都知道他们在做什么。这个应用程序允许用户自定义HTML客户端。删除HTML会很好,但也会增加不可忽略的复杂性。我的目标是拒绝任何可疑的恶意注入代码。
$dom = new DOMDocument;
$dom->loadHTML($string);