我想阻止非瀏覽器客戶端訪問某些頁面/成功發出請求。如何阻止非瀏覽器客戶端提交請求?
網站內容被提供給認證用戶。會發生什麼是我們的用戶將他的憑據提交給我們的網站給第三方 - 它可以是另一個網站或移動應用程序 - 代表他執行請求。
說有用戶填寫併發送消息的表單。我可以保護此表單,以便處理提交的服務器可以判斷用戶是否直接從瀏覽器提交它?
我不想爲了可用性的原因使用CAPTCHA。我可以用一些JavaScript來做到嗎?
我想阻止非瀏覽器客戶端訪問某些頁面/成功發出請求。如何阻止非瀏覽器客戶端提交請求?
網站內容被提供給認證用戶。會發生什麼是我們的用戶將他的憑據提交給我們的網站給第三方 - 它可以是另一個網站或移動應用程序 - 代表他執行請求。
說有用戶填寫併發送消息的表單。我可以保護此表單,以便處理提交的服務器可以判斷用戶是否直接從瀏覽器提交它?
我不想爲了可用性的原因使用CAPTCHA。我可以用一些JavaScript來做到嗎?
您可以使用javascript來提升欄,但是任何瀏覽器都可以使用自動化系統。在最糟糕的情況下,他們可以自動化瀏覽器,但幾乎肯定會有一些更簡單的方法來模擬操作。
在任何情況下,他們都可以記錄瀏覽器使用代理髮送的請求,並計算出JavaScript所做的任何技巧。
在什麼彈簧想到條件(提高標準)(使用javascript):
另一個可用性問題是,任何禁用JavaScript的人都將無法使用該服務。這可能比驗證碼更能影響可用性。
這就是我害怕聽到 - 但謝謝 – 2010-03-19 14:48:29
只有一種方法可以做到這一點,分析供應商字符串尋找被承認的瀏覽器,但如果有人僞造供應商字符串,他們沒有辦法避免提交。 - 你會打破形式
var isMoz = window.navigator.userAgent.match(/^Mozilla/)?true:false;
用PHP,你可以嘗試的本地函數get_browser
有檢測HTTP代理沒有可靠的方法:
要如果導航儀是基於JavaScript的Mozilla瀏覽器知道任何情況下的某些瀏覽器 - 除非您可以強制用戶使用非常有限的一組瀏覽器(但這可能會被再次欺騙)。
IMO,試圖限制可以用來訪問表單的軟件,你應該確保有一個真正的人類控制該軟件。不幸的是,除非所有客戶都能訪問生物識別掃描儀,否則沒有比驗證碼更好的方法。
你爲什麼要防止這種情況? – Kimvais 2010-03-19 10:29:48
也許這是一個基於瀏覽器的遊戲,他想防止漫遊器? – 2010-03-19 10:34:22
或「發送反饋」表單來獲取垃圾郵件......在這兩種情況下,都有一些強制更改密碼的whitleblower應用程序會更好。 – Kimvais 2010-03-19 10:40:06