2011-03-19 47 views
0

我只是想知道你如何去防止人們試圖欺騙你的腳本& POST'ing從遠程站點類似的形式..說例如嘗試&把額外的價值進入你所沒有的選擇領域或某種性質的東西。防止從遠程站點POST'ing

+0

即使限制只從服務器發佈數據,您也無法防止發生這種情況,人們可以使用JS和插件(如firebug)來修改頁面的html並提交修改後的數據。請記住,您絕對不能信任用戶輸入,並始終驗證服務器端的所有內容。事實上,如果一個人想要提交他們的修改信息,他們會以某種方式或另一種方式。最好的保護措施就像上述的令牌和引用者檢查一樣,但引用者可能被欺騙,並且可以在發佈之前從您的站點檢索令牌。 – 2011-03-19 22:34:10

+0

唯一的絕對解決方案將基於IP .htaccess限制,您將腳本完全分開處理表單,然後只允許您的服務器的IP訪問該腳本。即使如此,如上所述,javascript等可用於修改表單,並且您需要驗證。 – 2011-03-19 22:37:32

回答

1

最好的辦法是創建一個由用戶代理,ip和時間幀生成的md5密鑰。然後將其存儲在數據庫中並將其填充到隱藏文本字段中,以便提交時可以重新驗證值。

您也可以使用$ _SERVER ['HTTP_REFERER']來獲取請求來自並根據您網站的URL進行驗證。請記住,這是由用戶Web瀏覽器設置的,因此可能會被欺騙。這裏是可用的$ _SERVER變量及其描述的列表。 http://www.php.net/manual/en/reserved.variables.server.php

+0

請注意,REFERER很容易被僞造。 – 2011-03-19 18:25:18

+0

是的,我知道這一點,但我避免使用它的原因。它可能被欺騙,有時也可能是空白的。 – Brett 2011-03-19 18:28:12

+0

@Brett @Pete由於HTTP_REFERER問題,我添加到了我的答案中。老實說,我永遠不會只實現HTTP_REFEFER。這是爲了增加安全性,而不是基本安全性 – William 2011-03-19 19:20:45