【问题标题】:Verifying that send data is in HTTP (1.0 and 1.1) protocol验证发送数据是否采用 HTTP(1.0 和 1.1)协议
【发布时间】:2014-11-06 01:10:37
【问题描述】:

我正在尝试在 python 2.7 中编写一个服务器,它接收并验证客户端是否使用 HTTP 协议(​​1.1 或 1.0,但必须同时支持两者)。

如何验证客户端发送的是“正确的”协议(1.0 或 1.1),而不是尝试向我的服务器注入代码?

【问题讨论】:

  • 什么是“试图注入代码”的例子?
  • ..你确定你真的需要写一个服务器吗?你为什么这样做?
  • (顺便说一句,HTTP 请求的第一行类似于GET / HTTP/1.0,这就是您确定客户端尝试使用的版本的方式..)
  • HTTP 协议的纯语法相当简单且无趣。需要仔细检查的是 URL 参数和/或有效负载(如果有)。
  • DanisFischer 请参阅@Daniel 的回答,并仔细阅读 RFC——如果您需要实现该协议,这是正确的路径。 (顺便说一句,对于未来,最好在答案中指出这是一些“家庭作业”.. :))

标签: python http protocols network-protocols http-protocols


【解决方案1】:

仔细阅读并实施rfc-2616。这是 HTTP-1.1 的参考。如果您不使用eval 或调用任何外部程序,那么有人可以注入代码的概率非常低。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-09
    • 2010-09-19
    相关资源
    最近更新 更多