首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将HTML存储在数据库中,同时避免持久的xss/sql注入

将HTML存储在数据库中,同时避免持久的xss/sql注入
EN

Stack Overflow用户
提问于 2010-11-30 04:21:23
回答 4查看 2K关注 0票数 1

我正在用asp.net构建一个页面,它将使用微型mce在页面上提供一个富文本编辑器。小mce输出富文本为html,我想保存到一个数据库。稍后,我想从数据库中提取HTML并将其显示在页面中。

我担心允许恶意的html,js标签进入我的数据库,然后输出。

有人能告诉我在我的过程中,我应该在什么地方进行html编码/解码,以防止持续的xss攻击和/或sql注入攻击吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-11-30 04:27:04

我们使用Microsoft Web Protection Library在进入的过程中剔除任何潜在危险的超文本标记语言。我所说的“在进入的过程中”是什么意思-当页面被发送到服务器时,我们使用MS擦除HTML,并获得结果并将其放入数据库中。甚至不要让任何坏数据进入你的数据库,这样你就会更安全。至于编码,你不会想搞乱HTML编码/解码--只要把你的tinyMCE控件中的任何东西拿出来,擦除它,然后保存它。然后在你的显示页面上,只需要把它写出来,就像它存在于你的数据库中一样,写到一个文本控件或类似的东西中,你就应该很好了。

我相信Microsoft.Security.Application.Sanitizer.GetSafeHtmlFragment(input)会在这里做你想做的事情。

票数 2
EN

Stack Overflow用户

发布于 2010-11-30 04:26:11

这些管理员是使用RTE的吗?如果是这样,我就不会担心了。

如果不是,那么我不推荐使用像TinyMCE这样的所见即所得。你将不得不去寻找恶意的输入,并且很有可能,你的会遗漏一些。由于RTE输出的是纯HTML,我想这是您想要的,您不能只转换HTML实体。这将消除使用TinyMCE的全部意义。

停止SQL注入是在将数据插入数据库时在后端完成的。您可能希望使用参数化查询或转义输入(不知道在ASP.NET中如何操作,我是个PHP专家。)

票数 0
EN

Stack Overflow用户

发布于 2010-11-30 04:26:34

难道您不能在服务器上使用使用BBCode的富文本编辑器,转义所有需要转义的内容,然后将BBCode转换为HTML标记吗?

您还可以在服务器上将BBCode标记转换为BBCode,转义其余的HTML并将结果从BBCode转换回HTML,而不是在客户机上生成HTML。

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

https://stackoverflow.com/questions/4307723

复制
相关文章

相似问题

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