我在这里偶然发现了一种简单但有用的密码保护方式: 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>
答案 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。