2012-12-06 20 views
1

我第一次在數據庫中插入html,所以我需要一些建議我是否正確和安全。
我有類物業:
如何安全地插入並顯示來自數據庫的HTML文本

[AllowHtml] public property Description {get;set} 

在查看我有一個tinyMCE的(文本區域),用戶輸入自己的數據。
當我後來顯示HTML我使用:

@Html.Raw(Model.Description) 

我不知道我應該做別的事情,以防止對網站的某些攻擊。
我曾嘗試輸入:

<script>alert('attack');</script> 

,但什麼也沒有發生在它的數據庫和顯示將其保存爲一個普通的文本之後。
另外我想知道如果用戶留下一些標籤沒有封閉,他會不知何故破壞我的佈局。
在處理這種情況時,什麼是智能步驟?

回答

1

應該發生的事情是,html應該在寫入數據庫之前進行編碼。如果您在數據庫中查找,你應該看到這樣的事情(或者至少,如果事情是安全的,你應該):

&lt;script&gt;alert(&#39;attack&#39;);&lt;/script&gt; 

現在,當這是由HTML原始寫入頁面時,它出現在屏幕上,因爲它沒有當它提交時,但如果你檢查頁面,你仍然會看到相同的東西。

ASP.Net實際上很難編寫代碼來打開您的網站濫用,所以你通常應該沒問題。值得圍繞這個話題做更多的閱讀,因爲如果要指導其他人,尤其要注意這些東西。

一些鏈接:

Preventing Javascript and XSS attacks

http://msdn.microsoft.com/en-us/library/ff649310.aspx

相關問題