2012-01-16 41 views
1

我正在創建一個web應用程序,它將使用大量的ajax調用。該應用程序將保存用戶的個人數據。在阿賈克斯調用變量使用像Id,profile_id,message_id等..完成操作,如添加到配置文件,獲取連接等操作。我應該加密哪些數據以創建安全的ajax調用?

我想打電話,所以安全爲posible。我已在$.post調用中實施了crsf。我必須/應該加密哪些ajax調用的varibales,哪些不是?一個AJAX調用(簡化的)的

實施例:

function post_msg(profile_id, msg) { 
     var json_data = new Object(); 

     json_data.profile_id = profile_id; 
     json_data.msg = msg; 

     var data_str = JSON.stringify(json_data); 

     $.post("/ajax/get_posts", { data: data_str, csrf_key: "950egg22b771xxxxxxxxxxxxxxxx1a"}, func_that_does_something_with_ret_data); 
} 

//Some where else in the front-end 
$('#button').click(function() { 
    var msg = $('#input').value(); 

    post_msg(1, msg); //should I encrypt the id? 
}); 
+2

無法保護您的數據。您用JavaScript編寫的任何內容都可以輕鬆顛倒。 – 2012-01-16 11:35:02

+1

@RobW - 在JS中實現公鑰加密是可能的,如果沒有私鑰就不可能實現公鑰加密,但是有太多的其他攻擊向量,這樣做並不是很有用。 – Quentin 2012-01-16 11:36:12

+2

您是否通過HTTP或HTTPS連接到主機?如果您使用HTTPS,那麼我認爲您不需要任何其他形式的加密。 HTTPS應該沒問題。如果您只使用HTTP,那麼可能首先嚐試切換到HTTPS?這會給你比任何其他形式的自定義加密更多。 – Zuljin 2012-01-16 11:37:18

回答

4

不要考慮數據的各個比特進行加密。如果安全性很重要,請通過HTTPS運行整個事務。

+0

該應用程序將在Https中。 https是客戶端和主機之間的單個安全連接,但是'惡意'用戶仍然可以更改調用的ID以檢索數據或將數據從數據庫中移出,對吧? – 2012-01-16 11:59:38

+0

@Sven - 你說你擔心保護用戶的個人數據。這是他們的數據,所以你不需要保護它們。 – Quentin 2012-01-16 12:03:05

+3

@Sven - 如果您想阻止用戶訪問其他用戶的數據,那麼加密不是解決方案。你需要認證+授權。無論他們要求什麼都不重要,只是不給他們不允許看到的數據。 – Quentin 2012-01-16 12:03:55

相關問題