使用str_replace防止在上传的HTML内容中注入php
当客户端将HTML内容上传到服务器时,我将检查并删除PHP标记以防止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标记(丢失,所有内容都转换为注释)。然而,这是恶意用户的内容 这样有什么问题吗?我觉得这么简单吗?除非你真的知道自己在做什么,否则不要构建自己的反注入脚本实现 如果可能,请阻止任何用
preg\u replace(regx)
,或者更好地说,我应该将html解析为DOMDocument
对象。然而,我认为这种方法将需要服务器做的时间
正如我所知,普通用户(不是恶意用户)永远不会使用php标记(
丢失,所有内容都转换为注释)。然而,这是恶意用户的内容
这样有什么问题吗?我觉得这么简单吗?除非你真的知道自己在做什么,否则不要构建自己的反注入脚本实现
如果可能,请阻止任何用户基于HTML的内容。如果没有,请使用现有的解决方案,例如。我更愿意研究如何使用用户提供的内容来删除php标记。这段代码永远不应该被执行
$htmlStr = str_replace("?php", "<!--?php", htmlStr);
$htmlStr = str_replace("?>", "?-->", htmlStr);