AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 438803
Accepted
Tadeck
Tadeck
Asked: 2012-10-16 22:58:23 +0800 CST2012-10-16 22:58:23 +0800 CST 2012-10-16 22:58:23 +0800 CST

默认情况下,代理和/或负载平衡器会更改 HTTP 查询字符串吗?

  • 772

问题简介

最近我正在研究一些请求签名算法,结果发现关于在随后签名的部分中包含查询字符串的观点是“多样化的”。

长话短说,反对在签名字符串中包含查询字符串的人的论点是可以更改查询字符串(例如,可以更改值,可以删除/添加参数,可以更改顺序)。

此外,我从未在代理或负载平衡器中经历过这种行为,即使我经历过隐藏Authorization标头(例如通过 Apache/WSGI)、更改请求方法(通过负载平衡器,可能是亚马逊的服务器做这样的事情)。我知道可以使用一些自定义脚本/规则在反向代理或负载平衡器上启用这种行为,但它可以通过请求的任何部分来完成。

基于应该包含查询字符串的假设已经完成了很多工作,而且不签署请求的最重要部分之一看起来很愚蠢。因此,我需要知道以原始形式包含查询字符串(因为它在 URL 中传递)将来是否会成为问题。

真题

所以我的问题是:

任何代理或负载均衡器更改查询字符串是否很常见?这对我来说似乎很愚蠢。您知道默认情况下执行此操作的任何代理或负载平衡器(软件或其安装)吗?

我确信在这种情况下我们可以在代理/负载平衡器级别处理签名验证,但如果这在我们无法控制的中介中很常见,这可能是一个可行的论点。

请让我知道你对它的了解。如果您有任何问题,请告诉我。

作为澄清,我所说的查询字符串?arg1=val1&arg2=val2是指以下 URL 的“”部分:

http://example.com/something/else?arg1=val1&arg2=val2

通过“改变查询字符串”,我的意思是任何可能使客户端和服务器看起来不同的操作(服务器看到的查询字符串与客户端使用的不同)。

proxy
  • 2 2 个回答
  • 1205 Views

2 个回答

  • Voted
  1. Best Answer
    Thomas Berger
    2012-10-16T23:05:27+08:002012-10-16T23:05:27+08:00

    许多现代反向代理可以改变查询字符串。但我看不出为什么负载均衡器或代理会默认这样做。

    也许它使用 URI 进行粘性会话负载平衡,但那真的很愚蠢。

    所以:不,我不知道任何负载均衡器,默认情况下会更改 uri 和参数。

    • 1
  2. Aleksandar Ivanisevic
    2012-10-17T00:35:53+08:002012-10-17T00:35:53+08:00

    我还没有看到执行此操作的代理,但如果您不能按 IP 执行此操作并且即使用户禁用了 cookie,您也希望它工作,它可以成为会话粘性的可行解决方案。

    • 1

相关问题

  • 持续监控许多服务器运行状况的简单方法?

  • Web 代理脚本与 http 代理的效率?

  • 为将笔记本电脑带回家的用户模拟公司代理

  • 什么是 Microsoft 代理客户端(MSP 客户端)

  • 使用大量 javascript 的页面上的鱿鱼速度很慢

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve