【问题标题】:How to make secure ajax call using asp.net?如何使用 asp.net 进行安全的 ajax 调用?
【发布时间】:2018-10-04 22:01:30
【问题描述】:

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

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

Employee.aspx?userid=45

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

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

【问题讨论】:

  • 我想知道为什么我得到了反对票吗?

标签: asp.net ajax asp.net-ajax


【解决方案1】:

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

1.使用唯一的键/别名/ID

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

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

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

仍然有很多方法可以实现这一点,但这些都是可以考虑的方法;您完全无法确保所请求的 URL 的安全。

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-04
    • 2014-08-16
    • 1970-01-01
    • 2017-02-11
    • 1970-01-01
    • 1970-01-01
    • 2014-10-20
    相关资源
    最近更新 更多