ASP密码保护改进

时间:2012-01-10 04:12:11

标签: asp-classic

我在这里偶然发现了一种简单但有用的密码保护方式: Pop up password protect

以下是代码:

<%

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>

两个问题: 1)如何改进这一点,当密码失败时,它会调用一个警告框&#34;登录失败&#34;并重置表格? 2)这有多不安全?是否有ASP方法来提高安全性?

一些注意事项: 不涉及数据库 - 这只是一个受全局密码保护的页面。 而且,如果你还不能说,我的ASP技能是不存在的。提前谢谢。

更新:(警告使用登录失败但仍然加载页面内容)

<%
needAuthentication = True
authenticationFailed = False

If Request.Form.Count > 0 Then 
    If Request.Form("password") <> "secret" Then
        authenticationFailed = True
    End If
    needAuthentication = False
End If

%>


<html>
<body>

<%
If needAuthentication Then

%>

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

<%
Else

%>

<p>Page content here</p>

<%
End If

%>

<%
If authenticationFailed Then

%>

<script type="text/javascript">
  alert("Invalid login");
</script>

<%
End If
%>

</body>
</html>

1 个答案:

答案 0 :(得分:0)

您可以这样做:

authenticationFailed = False

然后在语句的Else部分设置authenticationFailed = True

然后在您的页面上有类似的内容:

<%

If authenticationFailed Then

%>
<script type="text/javascript">
  alert("Invalid login");
</script>
<%

安全性有很多要素。假设您可以保密密码,并假设没有其他人可以获取此文件,那么只要您使用HTTPS访问该网站就应该没问题:) - 请注意那里有很多“ifs”。 / p>

如果您想了解更多有关安全性的信息,我建议使用Google搜索主题。安全性与您正在使用的技术直接相关 - 尽管不同的技术确实尝试以自己的方式使事情变得更容易。

哦,还有一件事 - 这种登录方法要求您每次要访问受保护的页面时都要登录。它不会像你期望的那样记住它。您需要调查会话 - 这本身就是一个主题:http://www.w3schools.com/ASP/asp_sessions.asp