2009-12-02 66 views

回答

2

要求驗證。 (和授權 - 如下評論!)

10x @Just Somebody!

+3

+1,除了它的授權 – 2009-12-02 10:37:06

+2

一般來說 - 這是兩者兼而有之。您不想授權未經身份驗證的用戶:) – Quentin 2009-12-02 11:11:46

1

我會嘗試把這些答案放在一起給你,這取決於你的網站設置。

如果它是一個更簡單的網站,並且您沒有進行任何用戶處理或管理身份驗證,那麼您的主要選擇是根據igorp說的並根據.htaccess文件進行限制。 您會看到一個彈出窗口,詢問預定義的用戶名和密碼,然後才能訪問該特定頁面。

再次,這是一個更簡單的網站好。

如果它更復雜並且允許用戶登錄到您的站點,則可以根據用戶訪問級別設置對各種頁面的訪問權限。

例如,在您的管理頁面中,您將檢查用戶的訪問級別以查看是否應允許他/她訪問該頁面。如果他沒有,則重定向到拒絕訪問類型頁面。否則,讓他們進來。

使用這兩種方法,用戶可以直接瀏覽到管理頁面,並且需要通過某種驗證。無論哪種方式,您的管理頁面將受到保護。

7

你不應該公開管理部分。你不能依賴默默無聞,授權是一條路。您可以使用.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> 
1

您可以阻止所有IP的管理面板可去,除了你的管理員的IP 寫是這樣的:如果你有cPanel的(或類似的

order allow,deny 
deny from all 
allow from {your IP} 
allow from {your other admin's IP} 

這應該是工作

0

控制面板)訪問,您也可以輕鬆創建密碼保護的目錄。此方法使用htpasswd和htaccess文件。如果以這種方式進行設置,任何試圖訪問受保護目錄的人都必須輸入用戶名/密碼。唯一不利的一面是你的管理文件需要放在他們自己的目錄中。

0

如果我需要快速驗證我使用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!