【问题标题】:Recognize the pattern: what system is malforming my query string parameters?识别模式:什么系统使我的查询字符串参数出现错误?
【发布时间】:2018-05-21 17:21:55
【问题描述】:

我们有一个相当复杂的 ASP.NET MVC 项目,其中包含跨域登录小部件和大量半遗留代码。

有一个系统,我们通过 iframe 登录用户。我们通过附加到 MVC 模型的字符串发送的 iframe 的 url。

问题是;在非常罕见的情况下,我们会看到格式错误的查询字符串参数。但它总是同样的畸形。我想解决这个问题,但我不知道为什么会发生这种情况。

我期待一些 Adblocker 类型或隐私设置,或者可能是一些区域设置,但我不知道从哪里开始。

我希望有人能认出这种模式并说;当您的 Windows 设置在土耳其或其他任何地方时,这是一种本地化模式,您应该检查您的编码等。

无论如何,这是示例:

Expected:
    auth-dialog-window?openerOrigin=https%3a%2f%2f.poules.com&color=C3042E&openerType=iframe
Coming through:
    auth-dialog-window?color=P304212R&openerType=vsenzr&openerOrigin=uggcf%3N%2S%2Scbhyrf.pbz

显然查询字符串的顺序也发生了变化。这里更接近每个参数:

iframe
vsenzr

https://      poules.com (spaces are for aligning)
uggcf%3N%2S%2Scbhyrf.pbz

C3042E
P304212R

有没有人认出这种模式并可以提示我应该在哪里寻找?

我确定上次发生在 IE 9.0 上是什么时候,但无法重现。

【问题讨论】:

  • 看看this answer
  • 感谢@MathijsFlietstra,帮了大忙!

标签: query-string querystringparameter malformed


【解决方案1】:

ROT-13。

某处的系统正在以一种非常简单的方式“尝试加密”...

检查两个值中的字母“对”:

abcdefghijklmnopqrstuvwxyzabcdefghijklm
nopqrstuvwxyzabcdefghijklmnopqrstuvwxyz

【讨论】:

  • 哇,聪明 - 但后续为什么任何浏览器/系统/防病毒软件会对我们的查询字符串参数执行 rot13?
  • A:用户代理,避免让用户在 GET 请求中看到这些参数。 B:某种自动代理(搜索引擎爬虫、机器人、垃圾邮件软件......)以避免在点击链接时采取“行动”......
  • 给你一个机会在你的源代码中“找到”“rot”和“13”,也许这可以给你一个线索。检查brettb.com/rot13_encoding_with_asp.asp 以查看旧实现(您说了一些关于遗留代码的内容)
  • @DirkBoer:我查看了您问题下方评论中的链接,该链接指向另一个问题,该问题下方也有一个“相关”链接评论。在 that 链接之后,我发现提问者通过在电子邮件中结束链接检查软件来结束的问题是罪魁祸首。有问题的链接是否通过电子邮件发送? (不一定是您,而是您的用户)
  • @DirkBoer:如果这种情况在没有任何简单/明显的修复的情况下继续存在,长期的“硬模式”选项可能是考虑暂时将超级cookie跟踪器放入您的页面(IIUC超级cookies是“清除数据“-resilient,听起来很适合调试)以缩小发生这种情况的范围,然后您可以看到可能与受影响的用户取得联系并询问他们的配置。如果你走这条路,也许发布他们正在使用的软件:)(也许在这个和其他线程中)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-26
  • 1970-01-01
  • 1970-01-01
  • 2017-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多