91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php怎么實現禁止跨域訪問

發布時間:2021-06-11 10:09:36 來源:億速云 閱讀:305 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關php怎么實現禁止跨域訪問的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

php實現禁止跨域訪問的方法是,判斷HTTP Referer,如果沒有Referer或者Referer是在非本地訪問的,那么就禁止訪問。

本文操作環境:windows10系統、php 7.3、thinkpad t480電腦。

我們可以通過如下兩種方式來實現禁止跨域訪問。

方法一:判斷 HTTP Referer

HTTP Referer是header的一部分,當瀏覽器向web服務器發送請求的時候,一般會帶上Referer,告訴服務器我是從哪個頁面鏈接過來的,服務器以此可以獲得一些信息用于處理。

在 post 請求 “文件” 或 “函數” 的最開始地方加入判斷 HTTP Referer:以下為 php 代碼,不語言做法相同。

  • 沒有 Referer ,屬于直接訪問連接。如 http://www.a.com/ajax.php 返回 error

  • 有 Referer ,但不是本站訪問,Referer 不包含 a.com domain。返回 error

// 如果(沒有 Referer 或者 Referer 非本地訪問的)return 'error' 或 die() 程序結束
if(!isset($_SERVER['HTTP_REFERER']) || !strstr($_SERVER['HTTP_REFERER'], 'http://www.a.com/')){
    echo "error";
    die();
}

方法二:服務器端禁止跨域訪問

Nginx禁止跨域訪問某個PHP文件

location ~ \.php$ {
    ...

    #新增代碼 start -------------------------------------

    # 假設 ajax.php 文件路徑是 /includes/ajax.php 和網站域名是 www.a.com

    # 新增一個變量 $nolocal 值為 1
    set $nolocal 1;

    #下面開始判斷,不是 POST 或者請求路徑不是 ajax.php 的路徑或者請求來源屬于本站域名時,都設為 0

    #因為 nginx 不支持多條件判斷,這里用三個 if ~
    if ($request_method != POST) {
        set $nolocal 0;
    }
    if ($request_uri != /includes/ajax.php) {
        set $nolocal 0;
    }
    if ($http_referer ~* "www.a.com") {
        set $nolocal 0;
    }

    #經過上面的篩選,值是 1 的,也就是本站外來源POST ajax.php 數據過來,直接返回 403 拒絕處理
    #這樣,其他來源的請求就浪費不了你的PHP進程了。
    if ($nolocal) {
        return 403;
    }

    #新增代碼 end -------------------------------------

    ...
}

感謝各位的閱讀!關于“php怎么實現禁止跨域訪問”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

浪卡子县| 盐城市| 商河县| 柏乡县| 南城县| 信阳市| 连云港市| 澳门| 新竹市| 甘肃省| 宝应县| 壤塘县| 宜州市| 阳高县| 泰安市| 呼玛县| 郯城县| 吉安县| 渑池县| 舞阳县| 苏尼特左旗| 宁夏| 台前县| 徐州市| 海城市| 怀仁县| 黄骅市| 锡林浩特市| 方山县| 麦盖提县| 山西省| 洪雅县| 都昌县| 旅游| 广安市| 河津市| 烟台市| 云龙县| 甘南县| 东明县| 璧山县|