2010-07-16 61 views
1

我正在使用jquery數據表和MS XSS庫。關於Html編碼的問題

我這樣做

AntiXss.HtmlEncode(MyDate.ToString("MM/dd/yyyy h:mm tt")))); 

這使得這個

07/22/2010 4:04 PM 

所以其所有的編碼。現在無論出於何種原因,這可能會破壞數據表。它無法弄清楚如何排序了。

那麼爲什麼它編碼的斜槓和點?他們有什麼不好?當它顯示在瀏覽器看起來像07 2010年4月:下午4點

所以我猜測數據表只需要在編碼版本和亙古不變的知道該怎麼做。

我應該怎麼做。我想編碼的數據,但如果它搞砸了我的排序這不太好。我應該使用安全的html片段嗎?

回答

0

說實話,我並不知道涉及斜槓和點的XSS攻擊。然而,很多字符都具有等效性,並且正在進行此轉換,但我不認爲這是由於安全問題。

在安全方面討厭的字符是這些4:'"<>。另一件事,方法AntiXss.HtmlEncode()應該用於用戶輸入,以防止XSS。在不受攻擊者影響的日期運行此功能沒有多大意義...(除非您對時間旅行者進行防禦)

+0

那麼日期是由用戶設置的。我想如果試圖進入數據庫就會死掉(因爲它不會是日期時間)。在一個側面說明是更好的編碼輸入到數據庫或讓所有的一切,並編碼輸出給用戶。或者兩個都做? – chobo2 2010-07-16 21:36:21

+0

如何將數字存儲爲整數?他們可以用int的方式糾正它們,他們可以用十六進制編寫它嗎? – chobo2 2010-07-16 21:37:03

+0

現在我想起來了,你的權利在日期上可能沒有意義。我猜我的想法很好,用戶可以改變它到任何東西(因爲它變成了一個字符串),但我想這是很難做一個字符串時,日期是存儲在數據庫中的日期時間,這就是我得到它。所以我猜測這與int的位,位等是一樣的嗎? – chobo2 2010-07-16 21:41:02

0

而不是編碼日期只是做一個理智檢查日期字符串的格式。只要它形成的日期不存在腳本注入或其他惡作劇的危險。