2010-04-07 143 views
0

請不要我完全明白這是一個愚蠢的屁股想法,但它不是我的想法。彈出密碼保護

我們需要阻止訪問我們網站上某個頁面的人。它是用ASP編寫的,我不知道ASP!任何人都可以告訴我,如何訪問URL時人們必須輸入用戶名/密碼才能彈出框加載。

用戶名/密碼應存儲在JavaScript中。

(是的,我知道)

唯一的真正的要求是,發生這種情況隨時加載頁面時,它停留在該網頁上。

所以頁面TEST.ASP - JavaScript的彈出他們輸入憑據,如果正確的留在TEST.ASP

感謝的確

+0

你在頁面上有沒有JS框架?如果是這樣,你可以使這個很容易(非常非常錯誤,但容易和漂亮) – 2010-04-07 23:59:13

+0

當你說「用戶名/密碼應存儲在JavaScript中」時,請告訴我你的意思是「他們鍵入的密碼」,而不是他們需要驗證的密碼。 – ig0774 2010-04-08 00:03:13

+0

我希望你知道人們可以查看源代碼並查看憑據,或者只需在瀏覽器上關閉JavaScript,然後他們就不必輸入任何內容。你應該向有此想法的人展示這一點。 – 2010-04-08 00:04:15

回答

1

當你說ASP時,我假設你的意思是.NET。如果是這樣,那麼我認爲對頁面中的VB/HTML進行一些小改動會更好。當然這只是一個例子,並不是一個非常安全的例子 - 但它仍然比普通的JS解決方案好一點。

實施例 - thenameofthepage.asp

<% 

needAuthentication = True 

If Request.Form.Count > 0 Then 
    If Request.Form("username") <> "jon" Or Request.Form("password") <> "secret" Then 
     ' Redirect to another URI 
     Response.Redirect("/") 
     Response.End 
    End If 
    needAuthentication = False 
End If 

%> 
<html> 
<body> 
<% 

If needAuthentication Then 

%> 
<form method="post" action="thenameofthepage.asp"> 
    <div>Username: <input type="text" name="username" /></div> 
    <div>Password: <input type="text" name="password" /></div> 
    <div><input type="submit" value="Submit" /></div> 
</form> 
<% 

Else 

%> 
<p>Page content here</p> 
<% 

End If 

%> 
</body> 
</html> 
+0

我真的很愛你 – Steve 2010-04-08 08:36:46

1

非常非常錯誤的,但這應該做到:

var passwords = new Object; 
passwords['some user'] = 'some password'; 

function check_password(tries){ 
    var username = prompt('Please enter your username'); 
    var password = prompt('Please enter your password'); 
    if(passwords[username] != password){ 
     if(tries == 3){ 
      window.location = 'http://www.google.com/'; 
     }else{ 
      check_password(tries + 1); 
     } 
    } 
} 
check_password(1); 

要確保某人無法馬上獲得密碼,可以使用一些散列算法。並且,如果您將display:none放在所有重要元素上,則可以僅在「登錄」時顯示內容

+2

數組只有數字索引,我想你想要一個對象。 – deceze 2010-04-08 00:12:08

+0

@deceze:其實,都是工作;) 查看此鏈接的示例:http://www.mojavelinux.com/articles/javascript_hashes。 html – Wolph 2010-04-08 00:19:11

+0

嗯,是的,因爲一個數組也是一個對象(因爲一切都是JS中的一個對象),所以你正在做的是將自定義屬性附加到數組對象。所以你實際上並沒有使用Array作爲數組。如果你想要一個字典(哈希/地圖),你應該使用對象。 – deceze 2010-04-08 00:29:47

1

可能使用Javascript創建模態對話框。有關於這樣做的合理教程herelink text以及涵蓋模態對話框here的預先存在的庫的列表。

認證使用類似這樣的認證是違反所有聖潔的。請指出誰要求這是多麼微不足道的顛覆這個計劃。

0

當然這是一個愚蠢的想法。

但是您是否想過要添加一個額外的安全薄層?即不是彈出JavaScript模式(或除此之外),您可以重定向到密碼+'.asp'嗎?

例如,下一頁叫做something.asp。所以,你可以使密碼something,然後做一個

window.location = userInput + '.asp'; 

這是更加混淆。