2014-06-06 34 views
1

我想在ajax參數中發送電子郵件值。我正在使用下面的代碼,它工作正常,但我想保證它的安全。沒有用戶可以通過查詢字符串或任何其他方式調用此操作來檢查或傳遞無效值。我如何確保安全?使ajax參數安全

$.ajax({ 
     url: '/Application/UserInfo/', 
     type: 'POST', 
     data:{email:emailid}, 
     success: function (result) { 
     var json = eval(result);    
     } 
}); 
+1

安全抵抗什麼?在運輸途中還是被用戶參數篡改? – SilverlightFox

+0

從用戶安全。任何可以訪問java腳本代碼 – aemie

+0

你不能 - 用戶可以修改任何客戶端。 – SilverlightFox

回答

0

如果您不希望任何人能夠看到電子郵件參數的值,則應考慮使用HTTPS。

但傳遞無效值,你應該做一些驗證服務器端在使用這個值

+0

值是電子郵件,任何人都可以發送任何電子郵件。我可以在發送電子郵件之前驗證電子郵件的格式 – aemie

+0

我們從Google加上使用Java腳本登錄並使用Java腳本之後,如果成功,我們會將此電子郵件發送給操作,但任何人都可以跳過Google-Plus登錄過程,並且可以將電子郵件傳遞給該行動,我該怎麼辦? – aemie

-1

它可以幫助,如果你在所有有兩個步驟做:

首先,你可以檢查電子郵件具有正確格式的正則表達式:

/^\w[\w|\.\-\_][email protected]\w[\w\.\-äöüÄÖÜ]+\.[a-zA-Z]{2,18}$/.test(email); 

然後,您可以隱藏郵件,然後您可以安全地發送郵件。 我正在使用河豚。在頁面加載時,我生成一個設置爲我的頁面的JavaScript的鍵。 javascript和php都有一個blowfish控制器,可以隱藏和解密任何值。我正在加載javascript的值並將其發送到服務器。 在那裏我解密它,並用正則表達式再次檢查它。密鑰不會再次發送到服務器,它存儲在會話的某個位置左右。

爲了確保電子郵件正確無誤,您可以通過curl等方式檢查域是否可到達,但我更願意向地址發送確認郵件,並等待接受生成的唯一標記。

如果你只是想確保用戶使用谷歌加帳戶登錄,你可能會使用谷歌加API,並檢查用戶是否登錄。如果不是,你不接受它。

+0

用戶可以檢查java中的加密方法,並使其值也加密併發送後調用 – aemie

+0

這是真實的,但原因你必須在php端檢查它並驗證它。 javascript總是易受攻擊...... – DaKirsche

+0

您不應該使用JavaScript進行加密,因爲它在此實例中不安全,並且正則表達式不是驗證電子郵件地址的好方法。 – SilverlightFox