.net - Web应用的登录安全

标签 .net security ssl

我有一个基本的登录(index.asp 发送一个表单到 login.asp 以验证凭据),我最近发现我可以从另一个域向我的 login.asp 发送 POST(带有经典 ASP 的 XMLHTTP)。

我想避免这种操作,我的问题是: 如果我在我的站点上安装 SSL 证书,我可以控制哪些域可以向我的域发送 POST 吗?

我可以用 .NET 表单解决我的问题吗?

感谢

最佳答案

SSL 不会改变谁可以将数据发布到您的表单(毕竟,您事先不知道将数据发布到您的网络服务器的计算机的身份,对吗?)

防止这种情况的典型方法是针对每个对 index.asp 的请求:

  1. 在服务器端生成一个随机整数,并存储在服务器端的Application状态。
  2. 将这个整数写入登录表单的隐藏表单域
  3. 拒绝任何没有为用户 session 正确设置此隐藏字段的 login.asp 请求

现在,这不会阻止远程主机以编程方式访问 login.asp,但会强制他们每次都通过 index.asp,就好像他们是一个真正的用户。

如果您担心远程主机可能会尝试暴力破解您的登录系统,您应该查看从给定主机对 login.asp 的访问速率限制,或者超时例如,5 次登录尝试失败后的用户 ID。

关于.net - Web应用的登录安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16596454/

相关文章:

c# - 将文件上传到 FTPS 服务器

ssl - 通过 DNS 对多个子域和 IP 地址使用 autocert

c# - 从列表中删除子列表

c# - 应用程序无法写入注册表,即使用户具有管理权限

.net - .NET 中的多部分表单需要良好的设计

c# - 如何抑制在 C# 中打开 word 文档时显示的 VIsual Basic "Macros are Disabled"对话框

php - 如何防止PHP中的SQL注入(inject)?

php - session 劫持和 PHP

asp.net - 用于 Rest API 的 SSL

c - 检测 C 中的算术溢出