草庐IT

php - 移动网络上的 Cookie 损坏

coder 2024-04-06 原文

我在我的一个最新网站上使用 Codeigniter 2.1,当通过 3g 访问时,cookie 变得损坏...

当对最初读取 cookie 的位置进行一些调试时,我可以看到它明显被截断了,这是一个示例:

a:14:{ 

应该是

a:14:{s:10:"session_id";s:32:"ef171f95db26ad51986.......

只有在连接到移动网络的设备上读取 cookie 时才会发生这种情况,到目前为止我只能测试三个,令我惊讶的是,一个有效:

  • 华硕笔记本电脑 w/Vodafone Dongle (x)
  • 带 Vodafone Dongle 的 Macbook Air (x)
  • Orange UK 网络上的 iPhone 3 (x)
  • Samsung Galaxy SII on Three(已用)

我猜它是基于网络的,并且 header 在途中某处被破坏了。 (可能是代理?)

这整个星期都在困扰着我,所以任何信息都会很棒。

编辑:请注意,该站点有很多 cookie,但大小并不大。我们有 Google Analytics、Sharethis、Uservoice 和 Facebook。

最佳答案

虽然我不知道是什么原因造成的,但我有一些想法可以帮助您找到应该可以帮助您解决的问题。 我首先要做的是尝试使错误一致,只尝试使用上面示例中的一个提供者。

  • cookie 是否始终等于 a:14:{
  • 您能否创建一个只有一个与该 cookie 同名的 cookie 的 2 行 PHP 页面,在第 1 行打印 cookie 并在第 2 行设置 cookie。然后更改 cookie 的值以查看什么样的更改当页面上没有其他变量时,您可以制作。 (您可以将 cookie 设置为 a:14:{} 吗?a:1a:14:xxx:{xxxx}?我们正在寻找一种可能始终切断字符串的模式。
  • 如果 2 行页面没有代码切割问题,则复制您遇到实际问题的页面,并开始删除页面上的所有内容,直到您只有两行(该行设置 cookie 和打印它的行)问题出在您的代码中。
  • 如果 2 行页面确实有问题,那么可能确实是移动网络(根据我的经验,我没有看到这一点,但是他们可能有某种正在清理 cookie 的代理)。我会开始尝试通过 cookie 发送不同的代码,直到您在提供商网络上找到没有问题的东西。 (比如 uuencode 或 base64_encode cookie 中的数据)。
  • 如果事实证明提供商阻止了所有内容,或许可以考虑下载一个程序,例如 fiddler,它允许您在非常低的级别上分析来回发送的 header 。

希望这些故障排除步骤有所帮助。

关于php - 移动网络上的 Cookie 损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10335128/

有关php - 移动网络上的 Cookie 损坏的更多相关文章

  1. ruby - 多次弹出/移动 ruby​​ 数组 - 2

    我的代码目前看起来像这样numbers=[1,2,3,4,5]defpop_threepop=[]3.times{pop有没有办法在一行中完成pop_three方法中的内容?我基本上想做类似numbers.slice(0,3)的事情,但要删除切片中的数组项。嗯...嗯,我想我刚刚意识到我可以试试slice! 最佳答案 是numbers.pop(3)或者numbers.shift(3)如果你想要另一边。 关于ruby-多次弹出/移动ruby​​数组,我们在StackOverflow上找到一

  2. ruby-on-rails - date_field_tag,如何设置默认日期? [ rails 上的 ruby ] - 2

    我想设置一个默认日期,例如实际日期,我该如何设置?还有如何在组合框中设置默认值顺便问一下,date_field_tag和date_field之间有什么区别? 最佳答案 试试这个:将默认日期作为第二个参数传递。youcorrectlysetthedefaultvalueofcomboboxasshowninyourquestion. 关于ruby-on-rails-date_field_tag,如何设置默认日期?[rails上的ruby],我们在StackOverflow上找到一个类似的问

  3. ruby-on-rails - openshift 上的 rails 控制台 - 2

    我将我的Rails应用程序部署到OpenShift,它运行良好,但我无法在生产服务器上运行“Rails控制台”。它给了我这个错误。我该如何解决这个问题?我尝试更新ruby​​gems,但它也给出了权限被拒绝的错误,我也无法做到。railsc错误:Warning:You'reusingRubygems1.8.24withSpring.UpgradetoatleastRubygems2.1.0andrun`gempristine--all`forbetterstartupperformance./opt/rh/ruby193/root/usr/share/rubygems/rubygems

  4. ruby-on-rails - 相关表上的范围为 "WHERE ... LIKE" - 2

    我正在尝试从Postgresql表(table1)中获取数据,该表由另一个相关表(property)的字段(table2)过滤。在纯SQL中,我会这样编写查询:SELECT*FROMtable1JOINtable2USING(table2_id)WHEREtable2.propertyLIKE'query%'这工作正常:scope:my_scope,->(query){includes(:table2).where("table2.property":query)}但我真正需要的是使用LIKE运算符进行过滤,而不是严格相等。然而,这是行不通的:scope:my_scope,->(que

  5. ruby-on-rails - 如何重命名或移动 Rails 的 README_FOR_APP - 2

    当我在我的Rails应用程序根目录中运行rakedoc:app时,API文档是使用/doc/README_FOR_APP作为主页生成的。我想向该文件添加.rdoc扩展名,以便它在GitHub上正确呈现。更好的是,我想将它移动到应用程序根目录(/README.rdoc)。有没有办法通过修改包含的rake/rdoctask任务在我的Rakefile中执行此操作?是否有某个地方可以查找可以修改的主页文件的名称?还是我必须编写一个新的Rake任务?额外的问题:Rails应用程序的两个单独文件/README和/doc/README_FOR_APP背后的逻辑是什么?为什么不只有一个?

  6. ruby-on-rails - rbenv:从 RVM 移动到 rbenv 后,在 Jenkins 执行 shell 中找不到命令 - 2

    我从Ubuntu服务器上的RVM转移到rbenv。当我使用RVM时,使用bundle没有问题。转移到rbenv后,我在Jenkins的执行shell中收到“找不到命令”错误。我内爆并删除了RVM,并从~/.bashrc'中删除了所有与RVM相关的行。使用后我仍然收到此错误:rvmimploderm~/.rvm-rfrm~/.rvmrcgeminstallbundlerecho'exportPATH="$HOME/.rbenv/bin:$PATH"'>>~/.bashrcecho'eval"$(rbenvinit-)"'>>~/.bashrc.~/.bashrcrbenvversions

  7. ruby-on-rails - Rails Cookie 问题 - 2

    我在ruby​​onrails应用程序中有以下新方法:defnewifcookies[:owner].empty?cookies[:owner]=SecureRandom.hexend@movie=Movie.new@movie.owner=cookies[:owner]end基本上,每个新用户都应该获得一个代码来识别他们(尽管只是通过cookie)。因此,当用户创建电影时,创建的cookie将存储在owner字段中。所以有两个问题:使用.empty?方法,当我从浏览器中删除cookie时,返回一个undefinedmethodempty?'对于nil:NilClass`当我确实已经在

  8. ruby-on-rails - Ruby - 如何从 ruby​​ 上的 .pfx 文件中提取公钥、rsa 私钥和 CA key - 2

    我有一个.pfx格式的证书,我需要使用ruby​​提取公共(public)、私有(private)和CA证书。使用shell我可以这样做:#ExtractPublicKey(askforpassword)opensslpkcs12-infile.pfx-outfile_public.pem-clcerts-nokeys#ExtractCertificateAuthorityKey(askforpassword)opensslpkcs12-infile.pfx-outfile_ca.pem-cacerts-nokeys#ExtractPrivateKey(askforpassword)o

  9. 带有 attr_accessor 的类上的 Ruby instance_eval - 2

    我了解instance_eval和class_eval之间的基本区别。我在玩弄时发现的是一些涉及attr_accessor的奇怪东西。这是一个例子:A=Class.newA.class_eval{attr_accessor:x}a=A.newa.x="x"a.x=>"x"#...expectedA.instance_eval{attr_accessor:y}A.y="y"=>NoMethodError:undefinedmethod`y='forA:Classa.y="y"=>"y"#WHATTT?这是怎么回事:instance_eval没有访问我们的A类(对象)然后它实际上将它添加到

  10. ruby-on-rails - rails 上的 ruby : radio buttons for collection select - 2

    我有一个集合选择:此方法的单选按钮是什么?谢谢 最佳答案 Rails3中没有这样的助手。在Rails4中,它是collection_radio_buttons. 关于ruby-on-rails-rails上的ruby:radiobuttonsforcollectionselect,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/18525986/

随机推荐