我有一份新闻提交表格。我希望它是安全的,从XSS和类似的剥离所有的html标签。然后,我将使用此格式转换所有其他标记
[tagname attributes][/closetagname]到这个
<tagname attributes></closetagname>。问题是如何将标签转换为这种格式。
发布于 2011-02-25 05:10:42
仅仅通过“剥离所有的html标签”和“转换所有其他的标签”,你将不会受到XSS的保护。对抗XSS只能通过将一些已知标签列入白名单(以及将一些已知属性列入白名单)来工作,而黑名单总是会失败。这是一个more complete explanation。
在PHP中清理HTML代码的一个很好的解决方案是使用HTML Purifier。
发布于 2011-02-24 17:37:09
如果您正在使用PHP,我认为内置的strip_tags()和PHP扩展bbcode的组合应该可以满足您的需求。
发布于 2011-02-24 17:05:41
<?php
$string = '<tagname attributes></closetagname>';
$clean = str_replace(array('<','>'),array('[',']'), $string);
echo $clean; //[tagname attributes][/closetagname]
?>当然,这将替换<和>的所有实例。
https://stackoverflow.com/questions/5102353
复制相似问题