首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何确定我网站流量的来源

如何确定我网站流量的来源
EN

Stack Overflow用户
提问于 2016-04-18 23:16:01
回答 3查看 46关注 0票数 2

我有一个ASP.NET站点,在这里我使用会话变量来跟踪管理员和业务成员的会话。我遇到了一个错误,如果管理员复制他们的URL并将其粘贴到电子邮件中,那么如果一个用户在单击它之前从未登录,他们将被重定向到作为管理员登录的站点。这是一个非常大的安全问题。如何判断用户是否已从域外被定向到站点,然后将其作为新成员重定向到站点?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-04-19 01:03:29

令我惊讶的是,ASP.NET允许将会话It作为URL的一部分进行传输。这是可怕的不安全。

正如您已经注意到的,当您将会话ID作为URL的一部分时,任何副本和粘贴的URL都将包含该会话数据。您可以尝试解决这一问题,并确定用户是否正在单击链接或实际遍历站点,但这些方法中的任何一种都可以被恶意用户反击。

您可能会试图争辩说,用户不会将其URL发送给恶意用户。首先,用户会做很多愚蠢的事情,他们肯定会复制并粘贴URL给其他人。第二,URL被记录在所有的地方,任何访问这些日志的人都可以使用URL。

在ASP.NET中处理会话的正确方法是通过会话状态cookie,它不会通过复制/粘贴或登录它们不应该在的地方传输。根据页面,ASP.NET应该默认使用cookies而不是基于URL的会话,因此您所做的事情似乎导致了它们的使用。

将应用程序配置为使用基于Cookie的会话,而不是试图围绕基于URL的会话进行黑客攻击。

票数 1
EN

Stack Overflow用户

发布于 2016-04-18 23:29:51

您能在会话变量和其创建者ip之间创建一个映射吗?如果是这样,您可以验证会话变量的每次使用都是由其创建者ip执行的。如果ips不同,则将其重定向为新成员。

票数 1
EN

Stack Overflow用户

发布于 2016-04-18 23:31:45

“您可以通过配置应用程序而不是回收会话标识符来减少会话数据共享的可能性。为此,请将sessionState配置元素的sessionState属性设置为true。如果使用过期的会话ID发出无炊具的会话请求,则会生成新的会话ID。”

https://msdn.microsoft.com/en-us/library/ms178581.aspx

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36705886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档