2010-04-07 145 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'; 

这是更加混淆。