如何防止直接存取透過 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中文網其他相關文章!