C#.Net浏览器未在首页/索引处发送邮件

时间:2018-07-12 15:52:35

标签: c# .net security browser web

刚遇到一个非常奇怪的错误,我以为我愿意与其他任何人遇到这个错误/找到解决方案的机会分享。

我们有一个以非常标准的流程设置的Web Portal产品:-

  • 到达站点时,会将用户定向到“登录”页面

  • 他们登录后,将进行检查以查看他们是否接受了条款和条件。如果没有,则将它们发送到“条款和条件”页面。

  • 如果他们接受了条款和条件,或在他们同意后,它们将被发送到网站的主页。

一切正常,或者至少从用户的角度来看是可行的。

但是,我们的一位客户希望将一些日志记录添加到系统中,以跟踪用户的操作。因此,我们在其中添加了以下内容:-

  • 登录后,记录“ LogOn”

  • 接受条款和条件之后,记录“ AcceptedTC”

  • 到达主页时,记录“ MainPage”

所有这些都在我们的开发环境中进行了本地测试,并且效果很好,例如:-

  • 用户进入“登录”页面:尚未记录

  • 用户登录并进入“条款和条件”页面:“登录”已记录

  • 用户拒绝了条款和条件,并被发送回开始:记录为“注销”

  • 用户再次登录,并进入“条款和条件”页面:“登录”已记录

  • 用户接受该条款和条件,并转到主页:记录了“ AcceptedTC”和“ MainPage”

一切顺利,完全符合我们的预期,因此我们将其推广到了客户站点。

然后,其中一位客户遇到了一个尴尬的用户,该用户拒绝接受条款和条件,因此他们进入日志以查看该用户尝试登录的频率。

他们每次尝试登录时,都会记录两个条目:“ LogOn”和“ MainPage”。尽管事实是他们坚持认为自己从未进入主页,并且仍被标记为从未接受过T&C。

因此,我们在本地对其进行了测试,无法对其进行复制。我们对其进行了测试,将他们的网站定向到我们的开发代码以跟踪所有内容,并且无法重新创建它。

但是,每次我们尝试登录其Live网站时,都会收到该错误。

  • 进入“登录”页面:尚未记录

  • 登录并进入“条款和条件”页面:“ LogOn”和“ MainPage”已记录

我们根本没有打过主页,但是正在运行添加该日志记录项的代码。我们在主页上注释掉了该行,并且不再对其进行记录;我们放回去,它又开始被再次记录。肯定会点击该页面,而不会点击该页面!

然后变得奇怪了!

如果我们使用Firefox登录:-

  • 进入“登录”页面:尚未记录

  • 登录并进入“条款和条件”页面:“ LogOn”和“ MainPage”已记录

如果我们使用Chrome登录:-

  • 进入“登录”页面:尚未记录

  • 登录并进入“条款和条件”页面:记录了“登录”,“ MainPage”和“ MainPage”

如果我们使用Edge登录:-

  • 进入“登录”页面:尚未记录

  • 登录并进入“条款与条件”页面:“登录”已记录

因此,Firefox以某种方式访问​​了未打开的页面。 Chrome浏览器以某种方式访问​​了不是两次的页面。 Edge,奇怪的是,浏览器似乎正常工作!

我们使用他们的Inspector跟踪了每个浏览器的网络流量,没有一个,他们正转到主页或试图加载它。

用户(他们或我们)从未看到过主页,而只有技术支持页面。

很奇怪!

我们很容易地解决了这一问题,方法是在主页上添加一个检查以查看用户是否接受了条款和条件,如果没有接受,则将其重定向到该页面。从视觉上看,此操作无济于事,因为用户无论如何都看不到主页,他们也不会越过“条款与条件”页面,但这仍然解决了该页面后台访问异常的问题。

但是我们永远无法弄清楚它为什么发生,或者为什么三种不同的浏览器都给出不同的结果。

我们想到的最佳理论是,主页方法是Home控制器上的Index(这是该站点的默认页面),而Firefox和Chrome在后台执行某些操作,也许是预先加载了该页面? / p>

当用户首次到达站点时,没有记录任何内容,因为主控制器具有检查用户是否已登录并将其重定向到“登录”页面的属性。大概后台进程正在尝试预加载页面,但是也被重定向了。

但是,它们现在已在“条款和条件”页面上登录,因此Home控制器属性不会重定向后台预加载过程。相反,添加“不接受的条款和条件”测试可以达到此目的,这就是解决方案起作用的原因。

那只是一个理论,但它与我们所观察到的结合在一起。

无论正确与否,Firefox和Chrome都在访问未告知他们访问的页面,这可能会带来安全问题,而不仅仅是我们的简单条款和条件/记录问题。

还有其他人遇到这个问题吗?任何人都可以证实我们的理论,或对发生的事情进行纠正吗?

花了一个小时尝试使用Google,但是这些词的使用过于通用,加上Google过于肿而无法获得令人满意的结果,这意味着我们一无所获。

0 个答案:

没有答案