Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.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
使用str_replace防止在上传的HTML内容中注入php_Php_Code Injection_Str Replace - Fatal编程技术网

使用str_replace防止在上传的HTML内容中注入php

使用str_replace防止在上传的HTML内容中注入php,php,code-injection,str-replace,Php,Code Injection,Str Replace,当客户端将HTML内容上传到服务器时,我将检查并删除PHP标记以防止PHP注入。我读了一些帖子,他们几乎说我应该使用preg\u replace(regx),或者更好地说,我应该将html解析为DOMDocument对象。然而,我认为这种方法将需要服务器做的时间 正如我所知,普通用户(不是恶意用户)永远不会使用php标记(丢失,所有内容都转换为注释)。然而,这是恶意用户的内容 这样有什么问题吗?我觉得这么简单吗?除非你真的知道自己在做什么,否则不要构建自己的反注入脚本实现 如果可能,请阻止任何用

当客户端将HTML内容上传到服务器时,我将检查并删除PHP标记以防止PHP注入。我读了一些帖子,他们几乎说我应该使用
preg\u replace(regx)
,或者更好地说,我应该将html解析为
DOMDocument
对象。然而,我认为这种方法将需要服务器做的时间

正如我所知,普通用户(不是恶意用户)永远不会使用php标记
丢失,所有内容都转换为注释)。然而,这是恶意用户的内容


这样有什么问题吗?我觉得这么简单吗?

除非你真的知道自己在做什么,否则不要构建自己的反注入脚本实现


如果可能,请阻止任何用户基于HTML的内容。如果没有,请使用现有的解决方案,例如。

我更愿意研究如何使用用户提供的内容来删除php标记。这段代码永远不应该被执行
$htmlStr = str_replace("?php", "<!--?php", htmlStr);
$htmlStr = str_replace("?>", "?-->", htmlStr);