假設我正在構建網站。我希望用戶只能訪問index.php文件。我還有其他文件,如www.mydomain.com/aboutus.php文件,如果用戶在地址欄中輸入這些文件,用戶可以訪問它們。我希望用戶只能訪問www.mydomain.com。確保請求來自服務器
這些安全功能是如何構建的?
假設我正在構建網站。我希望用戶只能訪問index.php文件。我還有其他文件,如www.mydomain.com/aboutus.php文件,如果用戶在地址欄中輸入這些文件,用戶可以訪問它們。我希望用戶只能訪問www.mydomain.com。確保請求來自服務器
這些安全功能是如何構建的?
如果我正確理解您希望允許他們只能訪問您的索引/根文檔(www.mydomain.com/index.php等),並且無法輸入:www.mydomain。 com/aboutus.php使用HTTP引用來確保它們來自的頁面是正確的頁面非常簡單:
重要注意事項(編輯):$ _SERVER類型變量容易被客戶端僞造從cURL甚至telnet之類的東西,可以成爲CSRF類型攻擊的基礎,所以這絕不是一個安全的實現,比如會話標記化。
aboutus.php在最高層:
<?php
// Put the url they came from
$ref = $_SERVER['HTTP_REFERER'];
if($ref !== 'http://mydomain.com/index.php') {
die("Must come here from index");
// uncomment below to redirect them automatically
// header('location: index.php');
}
// Otherwise they came from index so show the page.
echo "Displaying about page:";
echo $content;
?>
感謝您的回答。 – user2178841
雖然這並非真正安全。引用者可以在客戶端自由欺騙。 –
@皮卡웃 - 我明白你的關注。你可以編輯/修改或發佈一個新的答案,包含類似上面的內容,但是在這個用例中有一個基於$ _SESSION令牌的策略?我做了一些四處張望試圖編輯我的答案,以納入這一點,但我不完全有信心。 – cerd
你正在尋找一個登錄令牌或只是會話/許可的cookie(?)。 – mario
你在問什麼?大聲笑 –
@mario我不知道登錄令牌或會話權限的細節。我猜只是會話/權限cookie。但我會欣賞這兩個描述。 (我猜通過登錄令牌你的意思是用戶權限,等等。) – user2178841