2009-04-17 75 views
3

服務器端我們可以驗證用戶,但我希望Ajax或JQuery發送數據時的數據安全性。就像在客戶端一樣,有人只能以加密格式查看任何呼叫的參數。 那麼我該如何做到這一點。我在這個網站上看到了這種情況。如何在使用ajax和JQuery時加密發佈數據?

編輯

我們絕對不能忽視,當談到表格服務器對數據進行加密。 但至少在發送時它是必需的。 請參閱首選設置此通知的複選框。 可以在Mozilla Firefox中使用Firebug插件來觀看請求。

回答

6

你不能。

如果瀏覽器(即JavaScript)應該讀取/使用這些值,則它們必須是明文。由於JavaScript本身必須能夠解密/解密數據,因此您可能想出的任何加密/加擾方案都將遭到內在破壞,因此具有中等數量智慧的任何人都可以訪問源代碼將能夠弄清楚。

您可以執行SSL請求來加密服務器連接,從第三方隱藏數據。

+0

使用SSL是最好的選擇,但可以完成加密,但它增加了複雜性,可能不值得冒這個風險,尤其是因爲Ajax可以隱藏很多正在發生的事情。 – 2009-04-17 13:11:57

3

您可以使用某些庫(如http://home.versatel.nl/MAvanEverdingen/Code/)對數據進行加密,但正如上面提到的,可以通過某人使用調試器來查看密鑰來對其進行反向設計。

爲了安全地做到這一點,您需要爲服務器設置一個公鑰,並使用它從服務器獲取對稱密鑰,並使用私鑰對密鑰進行加密。

javascript然後用公鑰解密對稱密鑰。

現在,這個對稱密鑰被用來加密數據。

如果數據足夠小,那麼您可以使用公鑰來加密數據,但是根據公鑰的大小存在大小限制。

所以,是的,你可以做到這一點,但它可以反向工程。

2

如果您的問題只是加密用戶發送的數據,請在服務器上使用SSL,以便加密連接。你的AJAX網址是https://myserver.com/Ajax/Endpoint或其他什麼。

相關問題