【问题标题】:How to differentiate between GET and POST in plain CGI如何区分普通 CGI 中的 GET 和 POST
【发布时间】:2014-09-20 09:33:41
【问题描述】:

过去学过J2EE等几种编程语言,熟悉PHP等。

大多数语言都有从 POST 或 GET 中提取数据的特定方法。 PHP 有 $_POST$_GET 数组,而 J2EE 有 doGet()doPost() 方法。

在学习 Python 的过程中,我发现 GET 和 POST 中的数据都可以使用abc = cgi.FieldStorage() 提取出来,然后进行评估。现在,如果我用它做一个网站,会不会有安全漏洞?假设一个页面使用 POST 获取数据,但是一些用户直接进入该页面并在 URL 中提供一些 GET 数据。

那么,有没有一种方法可以让我在不使用 Django 之类的框架的情况下检查网页是否正在获取 POST 或 GET 请求?我发现它可以使用 Django 或其他框架来完成,但我正在尝试找到一个通用的 Python 解决方案。

【问题讨论】:

  • 如果您要使用框架来提供数据,则没有通用解决方案 - 使用特定于框架的解决方案来检查 GET/POST 值。
  • 我不想使用任何框架。只是普通的 Python 语言及其 CGI 脚本

标签: python cgi


【解决方案1】:

CGI 通过well-known environment variables 传递元数据。在这种情况下,“GET/POST”信息是通过 REQUEST_METHOD 提供的。

可以这样访问

import os
print os.environ['REQUEST_METHOD']

(还有SCGI / WSGI / FastCGI / etc.协议,每个都有自己的设计和规则。)

【讨论】:

    猜你喜欢
    • 2018-10-04
    • 2011-03-06
    • 1970-01-01
    • 1970-01-01
    • 2016-09-24
    • 2012-01-03
    • 1970-01-01
    • 2011-03-06
    • 2011-01-14
    相关资源
    最近更新 更多