代码之家  ›  专栏  ›  技术社区  ›  Liam neesan

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

  •  -1
  • Liam neesan  · 技术社区  · 6 年前

    我对ajax很陌生,在我的网站上,我调用ajax,它将传递参数,并根据参数从数据库中检索记录。

    但是我可以在Inspect元素的network选项卡上看到完整的url链接,如下所示

    Employee.aspx?userid=45
    

    我检查这个堆栈溢出 link

    在一些网站上他们提到我们可以帮助你 令牌,验证用户,使用cookies

    1 回复  |  直到 6 年前
        1
  •  2
  •   Zaki Mohammed    6 年前

    这个问题的答案并不是基于你所采用的方法来确定的。您提供的堆栈溢出链接指出了与您现在遇到的链接问题相同的问题。以下是一些可能的方法,你可以遵循,以防止你的网址可见性最终用户

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

    为了防止表的主键直接从devtools显示给最终用户,您可以在用户表中设置一个user key列,每个用户有一些随机的4-6位唯一代码,以便标识每个用户,并使用这些键通过URL或服务调用而不是主键本身进行通信。这同样适用于任何表。有些人更喜欢URL中使用的用户名别名,比如雇员姓名“John Marshal”,也可以使用类似employee.aspx?username=John Marshal的URL

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

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

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