在我的網站上,我有登錄區域,登錄用戶可以在其中更改存儲在數據庫中的文本。每個用戶都有一個(或2或3個)文本,每個文本都有特定的ID。以下是消息的數據庫外觀:驗證ajax發送的數據
| message_id | message_text | user_id | time |
Message_id和userid是三位或四位數字。
到現在爲止,我使用乾淨的PHP來保存/從基地獲取數據。但現在我想使用AJAX,這裏是我的電話看起來如何(當用戶完成編輯他的消息,並點擊提交):
var msg = $("#msg").val();
var usrid = $("usrid").val();
var msgid = $("#msgid").val();
$.ajax({
type: 'POST',
data: {
action: 'save_message',
message: msg,
user_id: usrid,
message_id: msgid
},
url: 'http://example.com/update.php',
success: function(data) {
$('#info').html('<b>Message saved!!!</b>');
}
})
但是,正如我們都知道的是,jQuery(JS)是客戶端語言,並且用戶可以輕鬆地更改usrid,msgid的值,並且在幾次嘗試後,他將更改其他某個用戶的消息。
什麼是正確的解決方案?爲了傳遞某種令牌,使id更復雜(10,20位數字)或其他解決方案?
看看這個:http://advosys.ca/papers/web/60-form-tampering.html – jeremyharris 2012-08-02 14:42:33