如何使用 asp.net 进行安全的 ajax 调用?

How to make secure ajax call using asp.net?

我是 ajax 的新手,在我的网站上,我正在调用 Ajax,它将传递参数并根据参数从数据库中检索记录。

但我可以在 Inspect Element 的网络选项卡上看到完整的 url link,如下所示

Employee.aspx?userid=45

我检查了这个堆栈溢出 link。没搞清楚。

在某些网站上,他们提到我们可以 令牌,验证用户身份,使用 cookie。但我不明白如何在我的 ajax 代码中使用这些东西

这个问题的答案不是固定的,它取决于您采用的方法。您提供的堆栈溢出 link 指出了与您现在遇到的 link 问题相同的事情。以下任何方法都是您可以遵循的一些可能方法,以防止您的 URL 对最终用户可见

1.利用独特的 keys/alias/ids

为了防止你的 table 的主键直接从 devtools 显示给最终用户,你可以在你的用户 table 中有一个用户键列,其中有一些随机的 4每个用户 -6 位唯一代码,以便识别每个用户并使用这些密钥通过 URL 或服务调用而不是主键本身进行通信。同样可以应用于任何 tables。有些人更喜欢在 URL 中使用的用户名别名,例如员工姓名 "John Marshal" 可以有 URL,例如 Employee.aspx?username=john-marshal

2。基于身份验证的令牌或 Cookies

这是需要学习的地方。它背后的基本思想是基于 URL 调用的服务将仅提供给在用户端已经存在令牌或 cookie 的真实用户。因此,通过这种方式,调用不会泄露任何数据,它只会 return“403 Forbidden”或“401 Unauthorized”HTTP 响应。而这样的 URL 只会存在于真实用户可以访问的页面上。这意味着除非用户登录,否则他们无法从 URL 中获取数据。

仍然有很多方法可以实现这一点,但这些都是可以考虑的方法;你完全不能保护所请求的 URL 它可以的方法。

希望对您有所帮助