2011-06-02 17 views
5

我想在我的web應用程序中使用AntiXss庫函數。我有一個Web應用程序,其中包含代碼隱藏的JQuery代碼的asp.net頁面。整個asp.net頁面通過Jquery js頁面運行。我想將編碼函數應用於某些字段,但問題是如何應用以及應用編碼聯合體的位置 - (在jquery頁面中,設置值以顯示在服務器端的輸出窗口0r上,其中get data API called在CS文件)和功能在此情況下(的HTMLEncode,JavascriptEncode等),提前使用如何在我的項目中使用AntiXss?

感謝

回答

6

背後防止XSS攻擊的基本想法是,所有的輸入數據(來自用戶或者說外部應用程序)應該被視爲不可信/不安全,因此在輸出(html,js等)中進行再現時,必須在接受和/或編碼時進行驗證。

AFAIK,AntiXss是一個服務器端庫,所以你不能用它來在瀏覽器中編碼值。在將這些值發送給客戶端之前(例如,在aspx頁面中或在將數據發送到客戶端的asmx/SCF服務中,java腳本將要處理的內容),您必須在服務器端應用編碼(到html/html屬性/ JS等)數據爲html或腳本)。

看到這個article - 儘管它的過時,它仍然是一個很好的資源,開始與AntiXss lib和它也列出了使用下各種編碼方法的情況"Determining Encoding Method to Use"

+0

如果我們可以用編碼的領域輸入時間?保存API調用並將值插入數據庫中。這是什麼影響,而不是在輸出時間呢? – 2011-06-10 07:30:41

+0

@Girish,在典型的方法中,您可以驗證輸入(並在需要時拒絕)。是的,您可以選擇對其進行編碼,因此,您的所有代碼庫都必須假定數據庫中存在的值不是* raw *,而是編碼的。這有時很麻煩 - 例如,假設你接受數學表達式(比如'a> b'),現在將其顯示爲html文本,則需要對其進行編碼,但是需要對其進行解析或將其分配給文本框爲了編輯,你需要它。所以如果你的數據庫已經編碼了輸入,那麼你必須爲這些場景進行解碼。 – VinayC 2011-06-10 08:16:00

+0

@vinayc我有一個現有的應用程序在asp.net 4.0我已下載並安裝相同。我是否需要編碼每個請求和響應。或者我可以將其設置爲我的應用程序的默認編碼。 – 2012-06-15 12:35:30

相關問題