php如何防止模擬請求

小云云
發布: 2023-03-22 14:16:02
原創
2129 人瀏覽過

本文主要和大家分享php如何防止模擬請求的方法,希望能幫助大家。

1.有些網站是採用偵測此IP位址登入的密集度,多次登入後需要輸入驗證碼,那麼這時CURL模擬的提交就需要去對驗證碼圖片進行分析,這樣就會花費大量時間,當然,這種是對於防止登入被爆破,用戶資料洩露的。

2.還有一種就是直接在session保存產生的隨機碼,然後放在input的隱藏域,這種比驗證碼那種差了許多。

3.注意javascipt本身是無法跨域提交的,不是因為不能做到,而是防止別人惡意偷取用戶信息,例如點擊打開他的網站,用iframe打開正規網頁,然後在另一個iframe中進行偷取。

要實現ajax跨域訪問,需要設定

header("Access-Control-Allow-Origin:*"); //跨域权限设置,允许所有
登入後複製

要防止ajax跨域訪問,需要設定

header("Access-Control-Allow-Origin:http://www.test.com"); //只允许test.com跨域提交数据
登入後複製

4.如果要防止php的模擬請求,例如post請求,那麼就可以設定必須為ajax請求才能處理。

//判断是否为ajax请求,防止别人利用curl的post抓取数据
if(isset($_SERVER["HTTP_X_REQUESTED_WITH"])&&strtolower($_SERVER["HTTP_X_REQUESTED_WITH"])=="xmlhttprequest"){ }
登入後複製

完整解決方案:

header("Access-Control-Allow-Origin:http://leshen.applinzi.com/cet"); //只允许本站提交数据,前端防ajax跨域,其实js本来就不能跨域 

//判断是否为ajax请求,后端防止别人利用curl的post抓取数据
if(isset($_SERVER["HTTP_X_REQUESTED_WITH"])&&strtolower($_SERVER["HTTP_X_REQUESTED_WITH"])=="xmlhttprequest"){ 
    //处理业务逻辑
}else{ 
    echo "we caught you! you have no access!";
};
登入後複製

以上是php如何防止模擬請求的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!