2012-11-19 27 views
0

我有一个网站,我的客户可以使用它来允许他们的客户在线注册(这是用于日托注册)。因此,我提供此在线注册表格,并允许我的客户定制注册完成后显示的“谢谢”消息。安全地允许用户将HTML保存到数据库?

让我的客户使用HTML格式化他们的感谢信息是否安全?我知道这会让他们也生成JavaScript,但我应该关心它吗?

+0

是的,如果您不想将用户暴露于[跨站点脚本](http://en.wikipedia.org/wiki/Cross-site_scripting)漏洞,您绝对应该关心。 – cdhowie

+0

你应该绝对照顾。询问OWASP为什么和如何。此外,它很容易防止,同时允许人们使用尖括号而不会逃脱它们(非技术用户不会,我承诺)......只要您有一定的纪律,并且正在使用技术这有助于它。 – delnan

回答

1

是的,它是安全的 - 只要你在一定程度上消毒。一个很好的例子是使用strip_tags,并且只允许诸如<h1>,<h2>,<b>,<u>等标签,但是避免<script>,<object>和其他危险标签。

我知道我在引用PHP方法,但很多语言都有这种功能来清除用户输入。以面值为准,而不是将其作为PHP特定的答案。

+3

'strip_tags'提供了一个黑名单,他需要一个白名单。你可以用黑名单来做,但这不是最佳的。 –

+0

@MadaraUchiha:确实。我用它作为例如不作为安全基准。但的确,实施一种白名单明确标签的方法,如果你自己开发了解决方案,**测试彻底**。 –

3

是的,你当然应该在意。

<img src="http://evil.com/evilScript.js"> 

他们感谢您的留言,我将离开可能是在evilScript.js你的想象力的东西。


我的建议是,使用Markdown作为格式,并在需要时将其解析为HTML(在视图中)。

+0

+1我只是写这个东西。我会使用Markdown的简化版本,它不支持嵌入HTML,否则你会遇到同样的问题,只能使用更好的语法。 – tjameson

相关问题