首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何剥离恶意HTML (XXS等)从内容提交?

如何剥离恶意HTML (XXS等)从内容提交?
EN

Stack Overflow用户
提问于 2011-01-22 14:54:15
回答 6查看 920关注 0票数 3

我有一个内容提交表单,其中包含多个输入字段,所有这些字段在提交时都直接输入到数据库中。当请求此内容时,将打印该内容。

我已经意识到这是一个安全问题。

如何在允许格式化标签(bi等)的同时,仅剥离恶意HTML (XSS)?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-01-23 13:00:30

@pst是correct...you需要显式地允许某些标签。但问题是,输入可能到处都是,因此您需要使用HTML Tidy (link to Source Forge Project)之类的库将其放入一个位置,然后可以对清理后的文档执行DOMDocument::loadHTML操作。

您应该使用HTML Tidy来清理您的输入,并将其置于投诉状态,这样您就可以显式地允许某些标记。在永久存储之前,所有其他内容都应该从清理过的内容中删除。(注意:出于性能原因,不要将BLOB存储在数据库中,将它们存储在文件系统中,并在安全位置使用文件路径链接到它们-该位置不在您的web根目录中)。

祝好运。

票数 2
EN

Stack Overflow用户

发布于 2011-01-22 16:10:41

首先对输入运行htmlspecialchars,然后对允许的标记撤消该操作(例如,将&lt;b&gt;替换为<b>)。

票数 1
EN

Stack Overflow用户

发布于 2011-01-22 15:01:56

使用mysql_stripslashes()、htmlspecialchars()和urldecode(),对于整数值,您可能只需进行int类型转换。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4766563

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档