如果有人知道我的管理頁面的網址,例如www.example.com/admin.php,那麼他們將通過直接訪問該網址輕鬆訪問該頁面。如何限制這一點。請幫助如何通過知道管理頁面url來防止管理頁面的訪問?
回答
要求驗證。 (和授權 - 如下評論!)
10x @Just Somebody!
如果您使用apache web服務器,您可以使用.htaccess p.s.限制訪問。看看這裏:htaccess tutorial
我會嘗試把這些答案放在一起給你,這取決於你的網站設置。
如果它是一個更簡單的網站,並且您沒有進行任何用戶處理或管理身份驗證,那麼您的主要選擇是根據igorp說的並根據.htaccess文件進行限制。 您會看到一個彈出窗口,詢問預定義的用戶名和密碼,然後才能訪問該特定頁面。
再次,這是一個更簡單的網站好。
如果它更復雜並且允許用戶登錄到您的站點,則可以根據用戶訪問級別設置對各種頁面的訪問權限。
例如,在您的管理頁面中,您將檢查用戶的訪問級別以查看是否應允許他/她訪問該頁面。如果他沒有,則重定向到拒絕訪問類型頁面。否則,讓他們進來。
使用這兩種方法,用戶可以直接瀏覽到管理頁面,並且需要通過某種驗證。無論哪種方式,您的管理頁面將受到保護。
你不應該公開管理部分。你不能依賴默默無聞,授權是一條路。您可以使用.htacces,as described here或依靠PHP來做到這一點。下面是一個粗略的例子。
下面是一個簡單的登錄實現。如果密碼正確,它將允許用戶轉到admin.php。不過,您應該在會話上閱讀the PHP manual,因爲會話標題應該出現在登錄頁面後面的每個頁面上。密碼處理也可以更安全地處理。
<?php
session_name('MyAdminSession');
session_start();
if (isset($_POST['userid']) && isset($_POST['password'])) {
$userid = $_POST['userid'];
$password = md5($_POST['password']);
if ($userid == 'myusername' && $password == md5('mypassword')) {
$_SESSION['logged_in'] = true;
header('location: admin.php');
exit;
}
}
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="nl">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>My login page</title>
</head>
<body>
<form action="index.php" method="post">
<label for="userid">Username: </label><br />
<input name="userid" type="text" id="userid" /><br />
<label for="password">Password: </label><br />
<input name="password" type="password" id="password" /><br />
<p><input type="submit" name="submit" class="button" value="Log In" /></p>
</form>
</body>
</html>
您可以阻止所有IP的管理面板可去,除了你的管理員的IP 寫是這樣的:如果你有cPanel的(或類似的
order allow,deny
deny from all
allow from {your IP}
allow from {your other admin's IP}
這應該是工作
控制面板)訪問,您也可以輕鬆創建密碼保護的目錄。此方法使用htpasswd和htaccess文件。如果以這種方式進行設置,任何試圖訪問受保護目錄的人都必須輸入用戶名/密碼。唯一不利的一面是你的管理文件需要放在他們自己的目錄中。
如果我需要快速驗證我使用HTTP認證,這是非常簡單的假設您使用的是Apache網絡服務器:
$USERS = array('foo' => 'bar');
$user = (isset($_SERVER['PHP_AUTH_USER'])) ? $_SERVER['PHP_AUTH_USER'] : '';
$pass = (isset($_SERVER['PHP_AUTH_PW'])) ? $_SERVER['PHP_AUTH_PW'] : '';
if(!$user || !isset($USERS[$user]) || $USERS[$user] != $pass) {
header('WWW-Authenticate: Basic realm="My Realm"');
header('HTTP/1.0 401 Unauthorized');
print '<h1>Error</h1>Authentication failed!';
exit;
}
// if we made it this far the user logged in successfully!
- 1. 防止用戶訪問管理頁面
- 2. 如何防止訪客用戶訪問管理頁面
- 3. 無法訪問Facebook的管理頁面
- 4. 如何防止從jsp頁面的url直接訪問頁面
- 5. 用戶管理和頁面訪問
- 6. 管理Facebook頁面
- 7. Asp.net頁面管理
- 8. ASP.NET網頁管理頁面
- 9. 防止未經授權的用戶訪問laravel中的管理頁面5
- 10. 如何從頁面管理員獲取頁面訪問令牌,無腳本
- 11. 管理Backbone.js的頁面過渡
- 12. 如何到達Drupal的管理頁面
- 13. 管理區域內「管理客戶」頁面上的Magento問題
- 14. Facebook Linter - 頁面管理URI
- 15. django-nonrel和管理頁面
- 16. 管理頁面煩惱
- 17. 替代Django管理頁面
- 18. 管理許多「頁面」
- 19. Django管理頁面錯誤
- 20. 管理員頁面登錄
- 21. 簡單管理頁面:Symfony2
- 22. 管理頁面序列
- 23. 內容管理頁面
- 24. 創建views.py管理頁面
- 25. Magento空白管理頁面
- 26. 如何訪問只有管理員登錄頁面?
- 27. 如何訪問管理頁面 - 網站像按鈕
- 28. 過濾器在Django管理頁面
- 29. 防止活動管理資源加載到非active_admin頁面上
- 30. 如何重寫Django管理頁面?
+1,除了它的授權 – 2009-12-02 10:37:06
一般來說 - 這是兩者兼而有之。您不想授權未經身份驗證的用戶:) – Quentin 2009-12-02 11:11:46