在 PHP 中安全偵測 AJAX 請求
檢查傳入請求是否為 AJAX 請求對於伺服器端處理至關重要。雖然 GET 參數或標頭等方法很容易被利用,但還有更安全的方法。
解決方案:HTTP_X_REQUESTED_WITH 標頭檢查
HTTP_X_REQUESTED_WITH 標頭是發送的標準標頭通過 AJAX 請求。此標頭通常設定為“XMLHttpRequest”或“xmlhttprequest”。檢查此標頭,您可以可靠地識別AJAX 請求:
<code class="php">if(strtolower($_SERVER['HTTP_X_REQUESTED_WITH'] ?? '') === 'xmlhttprequest') { // We can assume that the request was made with AJAX }</code>
範例用法
考慮PHP 腳本mypage.php:
<code class="php"><?php if(strtolower($_SERVER['HTTP_X_REQUESTED_WITH'] ?? '') === 'xmlhttprequest') { // Process AJAX request } else { // Not an AJAX request } ?></code>
此腳本檢查HTTP_X_REQUESTED_WITH 標頭是否存在並設定為「XMLHttpRequest」。如果是,則假定該請求是 AJAX 請求並繼續進行相應的處理。否則,它將將該請求作為非 AJAX 請求處理。
優點
此方法是安全的,因為 HTTP_X_REQUESTED_WITH 標頭是由瀏覽器針對 AJAX 請求自動發送的。攻擊者無法輕易偽造它。此外,大多數現代瀏覽器和伺服器平台都支援它。
以上是如何安全地識別 PHP 中的 AJAX 請求?的詳細內容。更多資訊請關注PHP中文網其他相關文章!