Internet Explorer(11)返回不同的用户代理

时间:2014-07-02 07:42:33

标签: php security paypal

我正在实施一个支付系统,通过卡片详细信息发布到网关页面,该页面透明地将用户重定向回我的网站。 我的会话验证用户代理以确保它们在每个请求中都相同。 这在Chrome和FF中都可以正常工作,但在IE中,用户代理发送在透明重定向上是不同的。

请求1.设置付款数据的Ajax请求。用户代理是 Mozilla / 5.0(Windows NT 6.1; WOW64; Trident / 7.0; rv:11.0),如Gecko

请求2.从gatway回来的透明重定向。 (GET请求)代理是 Mozilla / 5.0(兼容; MSIE 10.0; Windows NT 6.2; Trident / 6.0)

这基本上打破了我的会话,因为它已被视为新会话,因为代理已更改。 我可以轻松关闭用户代理检查,但我想保留它。 知道发生了什么吗?

2 个答案:

答案 0 :(得分:2)

我建议不要使用用户代理检查。在我自己的项目中,我们通常生成一个令牌,我们将其存储在会话中并将其包含在重定向URL中。当您的用户回来时,您可以将其与会话中存储的内容进行比较。

答案 1 :(得分:0)

确保您强制用户在paypal建议的相同模式下使用IE。

我从类似问题的回答:

TokenMismatch ONLY Certain Browsers - Laravel 5 Fresh/Production

"问题的根源可能是IE的兼容模式以及使用这些模式的不同会话。

你可以尝试在get和post页面上添加这一行:

标题(" X-UA兼容:IE = Edge");"