如何判断用户来自哪里?

Jos*_*ola 1 asp.net http-referer web-applications

有没有可靠的方法来确定用户在ASP.NET应用程序中的来源?我们有一个从两个不同位置链接的Web应用程序.这两个链接位于不同的域上,他们需要在此应用程序中指定某些用户权限.这是我到目前为止所尝试的...

  • 使用Request.UrlReferrer(这是Referer HTTP标头).这总是返回一个空字符串.我相信这是因为超链接使用Javascript来启动弹出窗口.根据我的研究,用户代理在标准超链接上提供此HTTP标头.Javascript弹出窗口是一个不同的故事(显然).

  • 一个简单的查询字符串,用于指示引用者.这不是一个真正的选择,因为我们需要一些不容易绕过的东西(更安全).

有任何想法吗?据我所知,在宏伟的计划中,这可能会有更好的整体设计/结构.请不要发布答案,建议我重新设计所有内容,因为这不是一个选项.

Dar*_*rov 5

没有一种可靠的方法可以告诉用户来自哪里,这不仅是一个ASP.NET限制,而且是一般的所有Web应用程序.网址引用者很容易被欺骗,因此不可靠.我认为最好的选择可能是一些加密的url参数,如果你愿意,可以是cookie.

所以两个页面都应该就共同的私钥达成一致.

  1. Page1将使用密钥加密其地址并将其传递给Page2
  2. Page2将检查是否存在此参数,并尝试使用用于加密的相同私钥对其进行解密
  3. 如果这成功,则意味着Page2将能够确定谁调用它,如果没有,则表示数据已被篡改