0

我正在使用 php strip_tags() 函数从我的文本区域输入中删除 html 标签,并删除 < script > 标签以帮助防范脚本攻击。

无论如何,用户经常需要输入事先不知道的 XML 标签。但是,我的 strip_tags 函数也删除了这些良性 xml 标记,这是不可接受的。

另外,我有时会放 filename.< date>.png (必须在此处添加一个空格,因为 StackOverflow 也将其删除了哈哈)来指示文件名或路径的可变部分。在这种情况下,我最终得到的是运行 strip_tags 后的 filename..png 。

任何帮助将不胜感激。

4

3 回答 3

0

不可能strip_tags不删除未知标签。您可能希望查看DOMDocument以寻找可行的替代方案。

于 2012-05-03T17:50:48.837 回答
0

strip_tags()被定义为删除所有 HTML/XML 标记(第二个参数中指定的单个标记除外)。这两种类型的标签之间没有区别,也没有区别并<date>用作占位符——这三种标签看起来都像strip_tags(),因此将它们删除。

于 2012-05-03T18:00:40.360 回答
0
$s = preg_replace("/<\?xml(.*?)\?>/i", "<xmlDeclaration$1>", $s);
$s = strip_tags($s, '<xmlDeclaration><' . implode('><', $allowedTags) . '>');
$s = preg_replace("/<xmlDeclaration(.*?)>/i", "<?xml$1?>", $s);
于 2019-03-20T19:38:29.617 回答