2014-01-14 104 views
1

一位客戶指出我的WordPress頁面可能存在安全問題 - 他所做的是在請求標題中刪除由WordPress設置的Cookie,並查看他是否可以訪問保護區域。他可以。所以要複製這個問題,我做了一個理智的測試。PHP是否從頭文件讀取cookie?

我已經寫一些示例代碼,以測試在PHP cookie和請求頭之間的關係:

<?php 
echo '<pre>'.print_r($_COOKIE, true)."</pre>"; 
setcookie("test", 5); 
?> 

我搶請求頭從鉻:

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 
Accept-Encoding:gzip,deflate,sdch 
Accept-Language:en-US,en;q=0.8 
Cache-Control:max-age=0 
Connection:keep-alive 
Cookie:test=5 
Host:localhost:8888 
Referer:http://localhost:8888/testcookies/ 
User-Agent:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 

並採用DHC by Restlet,我使用Cookie刪除該行,並使用上面的腳本將其發送到頁面。不知何故,測試cookie的價值仍然設置?爲什麼,這是一個安全漏洞?

+1

如果你的設置可行,試着打印'getallheaders()'和'microtime()'的結果來檢查cookie頭是否真的被刪除,並且你沒有看到緩存版本的頁面。 – VolkerK

回答

4

您可能沒有明確地在Dev HTTP客戶端中設置Cookie,但Chrome會自動添加這些Cookie,因爲您向有Cookie的站點發出請求。

這不是一個安全漏洞。這只是使用圍繞瀏覽器構建的工具的結果。

您可能想嘗試在telnet客戶端中手動構建HTTP請求。