2010-04-27 77 views
0

我已經發布了一個與此密切相關的問題。我與P. Haacked和S. Hanselman一起觀看了Mix10視頻。即時創建DOM元素 - 檢查數據是否有害

我正在建立一個AJAX驅動的網站,其輸入表單是在飛行中創建的。

所有完成此操作的代碼都是在腳本標記或JavaScript文件中完成的。例如,下面的DOM元素在頁面加載時被創建並被包裝到視圖中定義的現有div中:

$('#myform')。append('); $('#myform')。append('');

當我點擊提交按鈕時,我需要獲得輸入表單的值爲'Name': $(「#Name」)。val()然後返回一個Json對象:{Name:名稱 };

對於這種場景,無法在客戶端使用Html.Encode()或AntiXss.HtmlEncode()。檢查輸入是否有害的唯一方法是在服務器端完成(通過服務層)。

這似乎是一個限制。當且僅當一個視圖有一組預定義的輸入時,所有情況都沒有問題。當它是即時創建它們的時候,情況就不同了。

你有沒有想過這種情況傢伙?

感謝您對此的關注。

羅蘭 布魯塞爾,比利時

回答

0

我不知道我完全理解你的問題,但必須指出的是,客戶端檢查輸入的危害性是毫無價值無論如何 - 任何人想要提交有害輸入只會刪除安全檢查。這可能是爲什麼沒有客戶端API來檢查它們。

因此,爲什麼要打擾他們的客戶端,因爲你將不得不在服務器端重新執行它們?關於客戶端檢查唯一有用的性質是在用戶提交之前警告他們意外地包含有害代碼。這真的是你的用戶經常發生的事情嗎?

+0

我更瞭解你的觀點。我天真地認爲Html.Encode()可用於我的目的。 我的應用程序是AJAX驅動的,並且必須在服務器端進行強大的安全檢查 - 唯一可以放心使用的地方。 我可以關閉該主題,再次感謝。 R. – roland 2010-04-27 18:20:11