2012-02-15 73 views
2

我有一個客戶端/服務器應用程序(asp.net),它有一個用戶在html elements + text中輸入的textarea。保存html的最佳實踐決定?

從客戶端發送到服務器的數據是通過jQuery ajax POST。 (以ashx

可以說在客戶端類型:

<b> Hello </b> 

所以我:

1)encodeUriComponent的全部文本。

2)Html Encode特殊字符(如&gt; &lt;

3)發送這個到服務器

4)保存在DB中。

問:

什麼是分貝節能的首選方式是什麼?

With &gt; &lt;?或者我應該解碼它,然後保存它?

(數據應該呈現給用戶,在未來的一段時間......)

+4

嗯...只是將其保存在數據庫原始。您不需要進行URL編碼或HTML編碼以將其保存到數據庫。您需要的唯一保護是針對SQL注入,只需簡單地參數化所有查詢即可輕鬆實現。 – BoltClock 2012-02-15 20:04:02

+0

@BoltClock是的,但我不能發送它的服務器像標籤<>因爲它會引起異常 – 2012-02-15 20:04:44

+0

@ subt13你的事情StackOverlFlow做什麼?當你寫代碼? – 2012-02-15 20:05:14

回答

0
  1. POST原始HTML輸入到您想要的動作
  2. 使用你的模型中所需領域[AllowHtml]屬性。
  3. 使用Microsoft's Anti-XSS庫刪除任何JavaScript等(除非意圖)。
  4. 將原始HTML保存到數據庫,但一定要使用參數化查詢來防止注入攻擊。
  5. 停止HTML編碼所有內容。它看起來很可怕。
+0

我不使用MVC。我只是注意到你的答案是關於mvc的。 Asp.net不會讓我_POST原始的HTML_ - 如果我發送'<'它會給出錯誤 – 2012-08-05 15:41:42