2012-04-21 82 views
0

在我的老公司,我們有一個內部網站設置,只允許你查看它,如果你的網址末尾有密碼的話,我認爲是使用AJAX,但我不太確定,即使它是我的我不知道如何編碼。通過URL和AJAX內部密碼保護?

這個URL看起來像這樣:internal.mysite/secretpanel?pass = superman,如果你輸入了超人之外的任何東西,它會將你重定向到不正確的pass頁面。

我的問題是如何檢查URL的密碼並重定向到「密碼錯誤」頁面?

回答

1

你所描述的聽起來不像AJAX,也是一個可怕的不安全系統(甚至就內部系統而言)。

如果您使用的是PHP,您可能需要查看會話,而不是將URL作爲查詢字符串的一部分傳遞給密碼。一個簡單的實現就是有一個登錄頁面,用於檢查從表單發佈的值,然後將您重定向到包含祕密的頁面。

的login.php

session_start(); 
if (isset($_POST['username']) && isset($_POST['password'])) 
{ 
    // Check to see if the username and password is correct 
    if (user_is_valid_user($_POST['username'], $_POST['password']) 
    { 
     $_SESSION['logged_in'] = true; 

     // Redirect to your secret page 
     header("Location: http://mysite.com/secret.php"); 
    } 
} 
else 
{ 
    // Display the login form 
    echo "<form method=\"post\" action=\"login.php\">"; 
    echo " <input type=\"input\" name=\"username\" />"; 
    echo " <input type=\"password\" name=\"password\" />"; 
    echo " <input type=\"submit\" value=\"Login\" />"; 
    echo "</form>"; 
} 

secret.php

session_start(); 
if (!isset($_SESSION['logged_in'])) 
{ 
    // Redirect to the login page since user is not logged in 
    header("Location: http://mysite.com/login.php"); 
} 

// Display your secret content here 
+0

我很欣賞每個人對安全的關注,這很有幫助,但我對URL密碼的原始問題更感興趣,它不是爲了安全,而是爲了速度,最後是安全。 – 2012-04-22 08:15:14

+1

你可以使用if($ _GET ['password']!=「superman」){header(「Location:someotherpage.com」); } – 2012-04-22 08:19:35

+0

也就是說,我們推薦安全性更改的原因是,您現在的方案可能沒有安全性。 – 2012-04-22 08:20:50

1
  1. 我希望你沒有使用它來保證安全。 URL中的密碼而不是POST數據並不是最好的主意。
  2. 不,這不是AJAX。
  3. 你想要在服務器端而不是客戶端進行此操作。
+0

因此,如果我使用PHP,我會如何完成這樣的事情? – 2012-04-21 01:05:28

+0

對於任何安全的事情,我都不想保留一個工具,不要讓這個工具與本部門內部的人員混在一起。 – 2012-04-21 01:07:41

0

使用$ _GET [ '密碼'(或將要作爲 「密碼」 變量使用的任何名稱名稱)。將其分配給變量或直接與服務器保存的變量進行比較。如果你不關心安全性,也不需要清理它,儘管ceejayoz是正確的,如果你想要安全性,使用張貼變量,這樣沒有人可以「碰巧看下」並看到url密碼。