2010-05-22 100 views
3

我想知道如何通過AJAX開發一個安全的表單發佈。安全ajax表單POST

例如,我有:

我的HTML表單。

我的JavaScript處理提交。

的提交網址是 「post_data.php」

張貼的數據是:

ID = 8 &名=丹尼斯

的PHP驗證是否變量ID和姓名張貼及其數據類型。如果這是好的,那就繼續在數據庫上做一些事情。

我的問題是,我該如何防止某人在我的網站之外創建自己的html表單,或者其他方法,並將錯誤的數據發佈到我的PHP腳本中?

想象一下,數據真的存在於我的數據庫中,這可能是不好的。

感謝

回答

7

一種非常常見的方式做,這是你的服務器上有包含在窗體上的<hidden>場某種象徵,同樣一個保存在一個會話變量(或其他地方) 。提交帖子後,您檢查該令牌是否有效。

其他人仍然可以僞造一個令牌,但他們不能(以任何簡單的方式,至少)迫使您在服務器上保存相同的令牌,所以不會接受其他任何形式的接受。

例如,這是如何在ASP.NET MVC中對此進行內置支持的。

1

令牌方法可能是最有效的方法。有了這些說法,即使有了這些其他安全措施,也不應該假定數據來自您自己的表單。驗證數據總是很重要。