簡體   English   中英

如何通過輸入 URL 避免在我的網頁中繞過登錄

[英]How to avoid a login bypass in my webpage by entering URL

我正在嘗試在家里建立一個安全的網頁。 我用 HTML 和 PHP 創建了一個登錄頁面,當用戶嘗試http://example.com時它實際上可以工作。 但是我注意到,如果用戶輸入 URL http://example.com/documents.html (其中documents.html是我網站中的一個頁面),它無需先登錄即可訪問頁面內容。

幾個星期以來,我一直在尋找解決方案,但沒有成功。 我嘗試使用 Apache 的 .htaccess 功能但沒有成功(得到與上面相同的結果)。 因此,如果有人能指導我如何避免這種情況,那就太好了。

這個問題非常廣泛。 有許多可能的解決方案。 給出最佳答案將是非常困難的。

我個人的選擇是從網站的公共區域刪除 HTML 頁面,然后創建一個 PHP 頁面,根據請求的頁面檢查權限。 如果沒問題,那么 PHP 頁面將讀取非公共 HTML 頁面並簡單地回顯內容。

這將保護 HTML 頁面,而無需以任何方式重命名或更改它們。 這通常會更好,因為通常有一個原因是您擁有 HTML 頁面而不是 PHP 頁面。 如果它們是在其他地方生成的,那么也很難保持這些更改的更新。 它還允許您在顯示之前添加或修改代碼中的輸出。

可以為每個 HTML 頁面創建一個 PHP 文件,或者您可以對所有頁面使用一個 PHP 文件,並使用請求變量來選擇要授權和顯示的 HTML 頁面。 那取決於你。

作為獎勵,這種類型的系統還可以用於您想要保護但仍然可以(似乎是)直接訪問的任何其他類型的文件。 為此,只需將 mystaticfile.html 替換為 mystaticfile.zip(或其他)並確保發送正確的標頭。

對我來說,我在網頁的開頭添加了這段代碼,只有登錄才能訪問。

<?php
if(isset($_SESSION["username"])) {
    //Code to run if logged in

} else {
    //This will return the user to login page if the user is not logged in
    header("Location: login.php");
}
?>

即使 url 是手動輸入的,這也將保護用戶頁面的專有頁面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM