gpt4 book ai didi

http - Web 应用程序 : should extraneous/unneeded query string arguments just be ignored?

转载 作者:可可西里 更新时间:2023-11-01 16:10:26 25 4
gpt4 key购买 nike

我对 Web 应用程序开发还很陌生,所以这可能是一个 n00b 问题。

似乎大多数网站只会默默地忽略他们不需要或不理解的查询字符串参数。例如,github URI 通常如下所示:

https://github.com/airbnb

现在,如果我只是加上一个伪造的查询字符串,如:

https://github.com/airbnb?foo=bar

页面加载得很好,不会提示查询字符串。

这似乎是一个完全合理的行为,我对其他一些网站进行了现场测试,它们也忽略了无关和/或不需要的查询字符串参数。

我的问题是:

1) 这是大多数 Web 应用程序的正确或实际行为吗? (大概答案是肯定的)

2) 如果 (1) 是肯定的,原因是否只是常识、惯例、简单性等?或者像 HTTP 或 REST 这样的标准在决定如何处理这方面有任何指导或兴趣吗?

备选方案是:

  • 明确防范未知的查询字符串参数,这可能有点粗暴
  • 重定向到一个“干净”的 URL 版本,没有伪造的字符串。同样,也许这是不必要的

最佳答案

我在开发 Web 应用程序时一直遵循的做法是仅执行预期参数的验证。恕我直言,您甚至不应该读取/解析您不期望的任何参数,因为可能性实际上是无限的。想象一下,可以执行如下查询:
https://github.com/airbnb?foo=bar
还有:
https://github.com/airbnb?fooo=bar
还有:
https://github.com/airbnb?foooo=bar

所以,如果要拒绝每一个不接受的参数,那肯定有点不知所措。忽略甚至不阅读它们应该足够安全。

拒绝包含意外参数的请求也会带来额外的挑战,例如:Google Analytics(以及其他跟踪解决方案)可能会使用额外的参数到达您的网站。

旁注:如果您的应用支持重定向,我建议您阅读以下提示,以防万一:http://guides.rubyonrails.org/security.html#redirection

关于http - Web 应用程序 : should extraneous/unneeded query string arguments just be ignored?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7225083/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com