亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

根據 php 中的引用 URL 做一些事情

根據 php 中的引用 URL 做一些事情

PHP
飲歌長嘯 2022-07-09 09:53:11
我有這個代碼,它運行良好<?phpif(strstr($_SERVER['HTTP_REFERER'], 'example.com')){  echo 'yes';   } else {    echo 'no';  }?>問題是如果訪問也來自 example2.com,我如何獲得肯定我試過了,但它不工作<?php    if(strstr($_SERVER['HTTP_REFERER'], 'example.com' or 'example2.com')){      echo 'yes';       } else {        echo 'no';      }    ?>有解決辦法嗎?
查看完整描述

1 回答

?
藍山帝景

TA貢獻1843條經驗 獲得超7個贊

一種簡單的方法是創建一個允許值的數組,并使用循環。創建一個布爾值,說明用戶是否來自允許的站點,將其默認設置為 false。在遍歷允許的站點時,如果引用者匹配任何允許的站點,則將此布爾值更改為 true。


$allowed_sites = ['example.com', 'example2.com'];


$referrer_is_allowed = false;


foreach($allowed_sites as $url) {

    if(strstr($_SERVER['HTTP_REFERER'], $url)) {

        $referrer_is_allowed = true;

    }

}


echo $referrer_is_allowed ? 'yes' : 'no';

請記住,這并不能保證任何特定用戶實際上來自HTTP_REFERER您正在檢查的用戶,原因有幾個。


$_SERVER['HTTP_REFERER']很容易被欺騙,并且不能真正信任安全性。

諸如此類的引用者site_not_allowed.com/example.com仍會通過此檢查。

您至少可以通過檢查引薦來源網站是否以允許的網站開頭來保護自己免受第二個問題的影響,如下所示:


foreach($allowed_sites as $url) {

    $referrer = str_replace(['http://', 'https://'], ['',''], $_SERVER['HTTP_REFERER']);

    if(substr($referrer, 0, strlen($url)) === $url) {

        $referrer_is_allowed = true;

    }

}


查看完整回答
反對 回復 2022-07-09
  • 1 回答
  • 0 關注
  • 113 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號