我正在使用GET方法通過jQuery AJAX調用來使用WCF服務。WCF中的安全問題jQuery AJAX通過GET方法調用
因爲我無法通過使用POST方法工作的jQuery AJAX獲得WCF調用,所以我使用GET方法。通過GET方法,WCF方法的URL通過JavaScript公開。因此,應該採用加密或其他方法來保護前端和後端之間的通信。
因此,我構建了一個驗證字符串。認證字符串可以定義爲在前端(JavaScript)加密並在後端(WCF)進行認證的唯一數據集。身份驗證字符串可以包含用戶名,密碼,WCF服務名稱,WCF方法名稱和時間戳等信息。
示例:加密唯一數據組合:admin_admin_member_getmemberbyid_201305171604,它將是816dd1f8cd17256fc343948df5ffdf3b(使用MD5)併發送到發送到後端的數據之外。
使用MD5加密,在前端可以加密一些有關操作信息的組合;而在後端,相同的信息組合必須加密並對其進行驗證。由於MD5無法解密,因此無法加密數據。任何知道用於構建要加密的字符串的組合都將能夠生成MD5哈希並使用。
與MD5不同,共享密鑰加密可用於加密數據,以便在後端可以通過使用預共享密鑰進行解密來檢索原始數據。但是,預共享密鑰可以在前端源代碼中看到。因此,加密變得毫無用處。
在公鑰加密中,安全性是必須對兩個因素進行猜測或黑客入侵。一個是數據或參數模式,另一個是驗證字符串。但是,如果您在瀏覽器上進行調試,仍然可以從JavaScript中讀取它。
注意:由於網絡延遲等任何延遲,在實踐中使用MD5字符串或預共享密鑰中的時間戳可能會失敗。
有沒有一種方法可以保護通過REST使用GET公開的WCF服務?