2012-11-19 28 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

相關問題