代码之家  ›  专栏  ›  技术社区  ›  Steve

弹出密码保护

  •  0
  • Steve  · 技术社区  · 14 年前

    请不要让我完全明白这是个愚蠢的主意,但这不是我的主意。

    我们需要阻止人们访问我们网站上的某个页面。它是用asp写的,我不知道asp!有谁能告诉我,当人们访问url时,在哪里输入用户名/密码时,我如何加载弹出框。

    用户名/密码应存储在javascript中。

    (是的,我知道)

    唯一真正的要求是,只要页面加载并保持在该页面上,就会发生这种情况。

    所以页面是test.asp-javascript弹出,他们输入凭证,如果正确,则保留在test.asp上

    谢谢

    4 回复  |  直到 14 年前
        1
  •  1
  •   Jonathan    14 年前

    当你说asp的时候,我想你是指pre.net。如果是这样的话,我认为对页面中的vb/html进行一点小小的修改会更好。当然,这只是一个例子,并不是一个非常安全的例子-但它仍然比一个简单的js解决方案要好一点。

    示例-thenamepage.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>
    
        2
  •  1
  •   ig0774    14 年前

    可以使用javascript创建模式对话框。有很多合理的指导 here link text 以及包含模式对话框的现有库列表 here .

    用这样的东西 身份验证 是对所有神圣事物的侵犯。请指出,无论是谁要求这样做,颠覆这个计划是多么微不足道。

        3
  •  1
  •   Wolph    14 年前

    确实是非常错误的,但这应该是:

    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 在所有重要元素上,您可以使其仅在“登录”时显示内容

        4
  •  0
  •   alex    14 年前

    这当然是个愚蠢的主意。

    但是你有没有想过增加一层额外的安全措施…也就是说,您是否可以重定向到password+'.asp'?

    例如,下一页被调用 something.asp . 所以你可以设置密码 something 然后做一个

    window.location = userInput + '.asp';
    

    它是 轻微地 更加模糊。