首頁  >  文章  >  後端開發  >  如何防止直接存取透過 AJAX 存取的文件?

如何防止直接存取透過 AJAX 存取的文件?

DDD
DDD原創
2024-11-18 00:19:02902瀏覽

How to Prevent Direct Access to Files Accessed via AJAX?

如何防止直接存取透過 AJAX 存取的文件

建構 AJAX 請求時,保證資料的安全至關重要正在轉移。如果請求方法是GET,則可以透過檢查請求標頭輕鬆查看資料。雖然上述重複問題中提供的解決方案似乎無法解決問題,但有一種替代方法可以有效防止直接存取目標檔案。

解決方案:

要選擇性地授予對 AJAX 請求的訪問權限,同時拒絕對文件的直接訪問,您可以利用 HTTP_X_REQUESTED_WITH 伺服器變數。大多數 AJAX 框架和函式庫都將此變數設為 XMLHttpRequest。使用此變量,您可以在PHP 檔案(例如func.php)中實現以下檢查:

if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && ($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest')) {
    // Allow access since this is an AJAX request
} else {
    // Deny access since this is a direct request
}

整合標頭:

以確保您的AJAX請求包含X-Requested-With 標頭,請在發送之前將以下行加入您的JavaScript 程式碼中請求:

xhr.setRequestHeader("X-Requested-With", "XMLHttpRequest");

有效性:

有效性:透過實施此解決方案,您可以有效限制對目標檔案的直接訪問,同時允許來自授權來源的AJAX 請求。這有助於防止潛在的資料濫用或安全漏洞。

以上是如何防止直接存取透過 AJAX 存取的文件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn