2012-05-14 77 views
0

我想知道設置爲關注的最佳方式。將表單保存爲Ajax + JQuery + MySql + PHP

我有一個動態的形式,可以讓潛在很長一旦用戶完成添加他們的數據。我希望設置的是一個後臺進程,它可以將數據保存到數據庫中。

我有什麼設置是,如果一個問題是保存狀態,將檢查,如果不將它添加到的問題保存列表的SetTimer函數。然後它會觸發一個使用php發佈到我的數據庫的ajax調用。第一次發生這種情況時,ajax將返回提交的id,以便表單知道將這些內容發佈到哪裏。

第二次設置定時器功能運行時,它會傳遞此ID。

我最大的問題是我不希望用戶知道表ID。我只是在想,有人可能會混淆javascript,並很容易地將結果提交給其他ID。

我只是想知道是否有更好的方法來實現這一目標?甚至還有一些例子?

感謝

回答

2

一般來說,你應該保持ID在服務器端的$_SESSION變量,從來沒有讓它的客戶端附近的任何地方。或者,表格可能包含足夠可識別的信息,以便根據某些UNIQUE指數確定相關記錄。

但是,如果你願意,你也可以添加一些加密認證,證明ID沒有被用戶改變。例如,除了ID本身之外,還要向客戶端返回一個與某個祕密連接的ID的安全散列;當客戶端向服務器發回ID和哈希值時,您可以與哈希值的重新計算版本進行比較,以檢查只有知道該祕密的人(即您)才能爲該客戶端提供該ID。

爲了打敗更復雜的攻擊,你可能要加點鹽:

$salt = some_random_string(); 
$hash = md5(md5($secret) . md5($id) . md5($salt)) 

然後發送給客戶端的哈希,該ID 鹽;所有這三個將返回給你進行驗證。

+0

這是一個完美的主意!感謝那。我的另一個想法是相似的。使用瀏覽器指紋打印。感謝堆 – hooligan

+0

我可以只發回哈希並存儲ID和哈希服務器端?以這種方式識別用戶是否存在安全漏洞? – hooligan