我有一个基本的登录(index.asp 发送一个表单到 login.asp 以验证凭据),我最近发现我可以从另一个域向我的 login.asp 发送 POST(带有经典 ASP 的 XMLHTTP)。
我想避免这种操作,我的问题是: 如果我在我的站点上安装 SSL 证书,我可以控制哪些域可以向我的域发送 POST 吗?
我可以用 .NET 表单解决我的问题吗?
感谢
最佳答案
SSL 不会改变谁可以将数据发布到您的表单(毕竟,您事先不知道将数据发布到您的网络服务器的计算机的身份,对吗?)
防止这种情况的典型方法是针对每个对 index.asp
的请求:
- 在服务器端生成一个随机整数,并存储在服务器端的Application状态。
- 将这个整数写入登录表单的
隐藏
表单域 - 拒绝任何没有为用户 session 正确设置此隐藏字段的
login.asp
请求
现在,这不会阻止远程主机以编程方式访问 login.asp
,但会强制他们每次都通过 index.asp
,就好像他们是一个真正的用户。
如果您担心远程主机可能会尝试暴力破解您的登录系统,您应该查看从给定主机对 login.asp
的访问速率限制,或者超时例如,5 次登录尝试失败后的用户 ID。
关于.net - Web应用的登录安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16596454/