首页
学习
活动
专区
圈层
工具
发布

【Python进阶】04、CGI编程

接着用户按一下“发布或提交”(到目前为止工作都在客户端),浏览器把这些信息传送到服务器的CGI目录下特定的CGI程序中,于是CGI程序在服务器上按照预定的方法进行处理。...在本例中就是把用户提交的信息存入指定的文件中。然后CGI程序给客户端发送一个信息,表示请求的任务已经结束。此时用户在浏览器里将看到“留言结束”的字样。整个过程结束。...这个cgi.py脚本是一个简单的Python脚本,脚本第一行的输出内容"Content-type:text/html"发送到浏览器并告知浏览器显示的内容类型为"text/html"。...6、简单的表单实例:GET方法         以下是一个通过HTML的表单使用GET方法向服务器发送两个数据,提交的服务器脚本同样是cgi_get.py文件,cgi_get.html 代码如下: [root...以下同样是使用cgi_get.py ,它也可以处理浏览器提交的POST表单数据: 以下为表单通过POST方法(method="post")向服务器脚本 cgi_get.py 提交数据: [root@Node3

1.6K10

python之万维网

15.2 使用CGI创建动态网页 CGI(通用网关接口)。CGI是网络服务器可以将查询传递到专门的程序中并且在网页上显示结果的标准机制。...'hello,world' 可以通过浏览器访问下  15.2.7 使用cgi模块 输入时通过HTML表单提供给CGI脚本的键-值对,或称字段。...% name  CGI脚本的输入一般都是从已经提交的web表单中获得,但是也可以直接使用参数调用CGI程序。 15.2.8 简单的表单 从CGI脚本获取信息的方法有两种:GET方法和POST方法。...带有HTML表单的问候脚本 #!...为了运行CGI脚本,可能需要脚本以.py结尾---尽管访问的时候还是用以.cgi结尾的URL,mod_python在查找满足请求的文件时会将.cgi转换为.py 15.3.3 PSP PSP文档是HTML

1.7K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    mod_python模块安装

    我们也将介绍这些不同。 19.1 理解为什么须要mod_python 我们已经在第18章中讨论过,CGI脚本是最经常使用的一种产生动态网页的方法。每当有页面请求的时候,相应的CGI脚本就被调用。...方法的返回值在浏览器中显示出来。 尽管公布处理器极大的简化了mod_python编程。...使用 4 种类型的脚本,基于标准的 CGI 导入模块 ( 以典型的 Python CGI 脚本開始 ) 。然后输出 ‘Hello!’...mod_python和CGI之间也有不同的地方,在本章中,我们也将介绍这些不同。 19.1 理解为什么须要mod_python 我们已经在第18章中讨论过。...CGI脚本是最经常使用的一种产生动态网页的方法。每当有页面请求的时候,相应的CGI脚本就被调用。 它读取请求,产生应答,并终于终止。这是仿效HTTP的操作,后者的核心是一次为一个单一的请求服务。

    94420

    核心编程笔记(20.W

    代表了在一个web服务器和能够处理用户表单,生成并返回动态HTML页的应用 程序间的交互 20.4.2 CGI应用程序 当一个CGI脚本开始执行时,它需要检索用户-支持表单,但这些数据必须要从web 客户端才可以获得...# python -m CGIHTTPServer 2.在启动这个服务器的目录下建立一个cgi-bin,并将Python CGI脚本放到该目录 # mkdir cgi-bin # cd cgi-bin...> ------------------------------------ 表单的变量是FieldStorage的实例,包含person和howmany 字段值,我们把值存入 Python的who和howmany...生成表单和结果页面 将friends.html和friends1.py合并成friends2.py,得到的脚本可以同时显示表 单和动态生成的HTML结果页面,同时可以巧妙的知道应该输出哪个页面 # vi...使用高级CGI 例,这个脚本有一个处理所有事情的主函数,AdvCGI,它有方法显示表单,错误或结 果页面,同事也可以从客户端(Web浏览器)读写cookie # vi advcgi.py(问题) --

    59110

    C++ Web 编程

    虽然 CGI 文件是 C++ 可执行文件,但是按照惯例它的扩展名是  .cgi。 默认情况下,Apache Web 服务器会配置在 /var/www/cgi-bin 中运行 CGI 程序。...您必须理解 CGI 的基本概念,这样才能进一步使用 Python 编写更多复杂的 CGI 程序。C++ CGI 程序可以与任何其他外部的系统(如 RDBMS)进行交互。...first_name=ZARA&last_name=ALI 这会产生以下结果: 名:ZARA 姓:ALI 简单的表单实例:GET 方法 下面是一个简单的实例,使用 HTML 表单和提交按钮传递两个值...让我们以同样的例子,通过使用 HTML 表单和提交按钮来传递两个值,只不过这次我们使用的不是 GET 方法,而是 POST 方法,如下所示: cgi-bin/cpp_get.cgi...在许多情况下,使用 cookies 是记忆和跟踪有关用户喜好、购买、佣金以及其他为追求更好的游客体验或网站统计所需信息的最有效的方法。

    1.9K60

    开心档之C++ Web 编程

    默认情况下,Apache Web 服务器会配置在 /var/www/cgi-bin 中运行 CGI 程序。...您必须理解 CGI 的基本概念,这样才能进一步使用 Python 编写更多复杂的 CGI 程序。C++ CGI 程序可以与任何其他外部的系统(如 RDBMS)进行交互。...first_name=ZARA&last_name=ALI 这会产生以下结果: 名:ZARA 姓:ALI 简单的表单实例:GET 方法 下面是一个简单的实例,使用 HTML 表单和提交按钮传递两个值...让我们以同样的例子,通过使用 HTML 表单和提交按钮来传递两个值,只不过这次我们使用的不是 GET 方法,而是 POST 方法,如下所示: cgi-bin/cpp_get.cgi...在许多情况下,使用 cookies 是记忆和跟踪有关用户喜好、购买、佣金以及其他为追求更好的游客体验或网站统计所需信息的最有效的方法。

    60010

    用Python socket实现一个简单的http服务器(post 与get 的区别)、CGIHTTPServer 简单应用

    CGI的实现方式有很多,比如说使用Apache服务器与Perl写的CGI脚本,或者Python服务器与shell写 的CGI脚本。...为了使用CGI,我们需要使用BaseHTTPServer包中的HTTPServer类来构建服务器。Python服务器的改动很简单。...对于POST方法的请求,它的URL需要指向一个CGI脚本(也就是在cgi-bin或者ht-bin中的文件)。...此时,如果URL指向CGI脚本时,服务器将脚本的运行结果传送到客户 端;当此时URL指向静态文件时,服务器将文件的内容传送到客户端。...更进一步,我可以让CGI脚本执行数据库操作,比如将接收到的数据放入到数据库中,以及更丰富的程序操作。相关内容从略。

    2.4K30

    CGI & FastCGI

    cgi是什么   最早的Web服务器简单地响应浏览器发来的HTTP请求,并将存储在服务器上的HTML文件返回给浏览器,也就是静态html。事物总是不 断发展,网站也越来越复杂,所以出现动态技术。...目前,环境变量CONTENT_TYPE一般都是:application/x-www-form-urlencoded,他表示数据来自于HTML表单。...REQUEST_METHOD 提供脚本被调用的方法。对于使用 HTTP/1.0 协议的脚本,仅 GET 和 POST 有意义。...mod_php5.so/ php5apache2.dll就是将所包含的自定义函数,通过Hook机制注入到Apache中,在Apache处理流程的各个阶段负责处理php请 求。...有人测试nginx+PHP-FPM在高并发情况下可能会达到Apache+mod_php5的5~10倍,现在nginx+PHP-FPM使用的人越来越多。

    2K30

    用Python socket 实现一个简单的http服务器(post 与get 的区别)、CGI、WSGI、MVC

    CGI的实现方式有很多,比如说使用Apache 服务器与Perl 写的CGI脚本,或者Python 服务器与shell写的 CGI 脚本。...对于POST 方法的请求,它的URL需要指向一个CGI脚本(也就是在cgi-bin或者ht-bin中的文件)。...此时,如果URL指向CGI脚本时,服务器将脚本的运行结果传送到客户 端;当此时URL指向静态文件时,服务器将文件的内容传送到客户端。...更进一步,我可以让CGI脚本执行数据库操作,比如将接收到的数据放入到数据 库中以及更丰富的程序操作,相关内容从略。...比如一些python web 框架如 web.py 会自己实现一个 wsgi 服务器,并留出接口,让开发者更好地实现 web 应用的功能,将 url 映射 到各个不同的 python class,在 class

    9.8K00

    【Python 教程15】-Python和Web

    CGI脚本就是那个“大厨”,当客人点了份“宫保鸡丁”(提交了一个表单),老板就会通过CGI这个“传话筒”,把订单告诉大厨。大厨做好菜后,再通过老板端给客人。...当Web服务器收到一个指向CGI脚本的请求时,它会执行该脚本,并将请求的详细信息(如表单数据、URL参数等)作为环境变量或标准输入传递给脚本。...脚本处理完请求后,将生成的HTML或其他内容作为标准输出返回给Web服务器,最终由服务器发送给客户端浏览器。大白话解读:你访问一个网站,填了个登录表单,点击“登录”按钮。...示例Python代码(一个简单的CGI脚本):展开代码语言:PythonAI代码解释#!...()​#创建FieldStorage实例,用于获取表单数据form=cgi.FieldStorage()​#获取表单中名为'name'的字段值user_name=form.getvalue('name'

    8610

    总结 XSS 与 CSRF 两种跨站攻击

    PHP 可以用 htmlspecialchars 函数,Python 可以导入 cgi 模块用其中的 cgi.escape 函数。如果使用了某款模版引擎,那么其必自带了方便快捷的转义方式。...真正麻烦的是,在一些场合我们要允许用户输入 HTML,又要过滤其中的脚本。Tidy 等 HTML 清理库可以帮忙,但前提是我们小心地使用。...这么做可能会有点用,但阻挡不了 CSRF,因为攻击者可以通过 QQ 或其他网站把这个链接发布上去,为了伪装可能还使用 bit.ly 压缩一下网址,这样点击到这个链接的用户还是一样会中招。...这么一来,不同的资源操作区分的非常清楚,我们把问题域缩小到了非 GET 类型的请求上——攻击者已经不可能通过发布链接来伪造请求了,但他们仍可以发布表单,或者在其他站点上使用我们肉眼不可见的表单,在后台用...在 ajax 技术应用较多的场合,因为很有请求是 JavaScript 发起的,使用静态的模版输出令牌值或多或少有些不方便。但无论如何,请不要提供直接获取令牌值的 API。

    2.2K80

    代码审计基础之还不滚进来学习

    因为他的作用不会 到函数内部,所以我们在使用Python时如果在函数中修改全局变量,那么就需要使用global进行声明,否则出错 在PHP中则为global$a;是不是很相似,借此章,给大家讲一些PHP...$_SERVER['GATEWAY_INTERFACE'] 服务器使用的 CGI 规范的版本;例如,"CGI/1.1"。...$_SERVER['PATH_TRANSLATED'] 当前脚本所在文件系统(非文档根目录)的基本路径。这是在服务器进行虚拟到真实路径的映像后的结果。...从服务器上获取数据,把参数数据队列加到提交表单的 ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL 中可以看到 ?...将表单内各个字段与其内容放置在 HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看 不到这个过程 故障排查,有的小伙伴在测试post提交时会遇到这种报错(以踩坑) ?

    1.3K40

    翻译:Perl代码审计:Perl脚本中存在的问题与存在的安全风险

    如果未经验证就使用,对此类应用程序的不当输入就可能会导致许多问题。在没有正确验证的情况下,使用用户提供的参数执行其他程序,使最常见的错误。...如果是则继续解释,perl将生成一个命令shell,如果perl不了解特殊的shell字符,perl会将字符串分解成单词,并调用更高效的C库调用execvp() 假设我们有一个CGI表单,它要求输入用户名...现在假设我们将统计数据文件转换为格式良好的HTML页面,为了方便起见,我们决定将它们存储在显示它们的Perl脚本所在的目录中。...CGI脚本应该始终以尽可能低的权限运行。请注意,在setuid脚本中小心操作并不总能解决问题。某些操作系统的内核中存在bug,这使得setuid脚本本身就不安全。...给定相同的种子,使用rand()的程序的两个不同实例将产生相同的随机值。在许多C实现中,以及5.004之前的所有Perl版本中,如果未明确指定种子,则将根据系统计时器的当前值计算种子,该值不是随机的。

    4K51

    星球优秀成员作品 | 『VulnHub系列』symfonos: 3-Walkthrough

    至于为什么可以反弹桑shell,这里借用嘶吼上的一篇文章的解释(就是上面我看的那一篇): 运行CGI脚本时,会将特定信息复制到环境变量中。...服务 python -m SimpleHTTPServer 65534 使用wget下载linuxprivchecker.py脚本到靶机的tmp目录 因为本人所在的地理位置不允许直接访问Github,所以我是从自己的...文本中 python linuxprivchecker.py > report.txt 靶机做了这些后发现还是手动收集更快……,手动收集不到有效信息的情况下再尝试用脚本。...pspy将仅监视这些目录,而不监视子目录(默认情况下为空)。 -i:两次procfs扫描之间的间隔(以毫秒为单位)。pspy会定期扫描新进程,而不考虑Inotify事件,以防万一未收到某些事件。...在靶机上使用python开启HTTP服务,将ftp.pcap下载到kali使用wireshark进行分析 ?

    1.7K20

    Flask Web 极简教程(四)- Flask WTF Froms

    一、表单表单在页面中主要负责数据采集,一个表单有三个基本组成部分:表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法。...表单按钮:包括提交按钮、复位按钮和一般按钮;用于将数据传送到服务器上的CGI脚本或者取消输入,还可以用表单按钮来控制其他定义了处理脚本的处理工作常见的表单有注册表单、登录表单、搜索表单等视图函数中获取表单数据的方式有两种...,可以通过Python代码生成表单,而Flask-WTF则是Flask集成了WTF表单功能的实现。...labelform表单中的label标签,如输入框前的文字描述default表单中输入框的默认值validators表单验证规则widget定制界面的显示方式description帮助文字在app.py...在表单中的用户名和密码输入框中输入数据 可以看出密码是非明文显示的表单模型的字段类型在第一个表单模型中使用了两个字段类型,分别是StringField和PasswordField,并且在页面输入密码是也能够将密码以非明文的形式显示

    4.8K20

    有关Web 安全学习的片段记录(不定时更新)

    只要是提供数据输出的服务器端程序都可以叫CGI,ASP/PHP/JSP这些都可以认为是,你用C/C++写一个可以提供数据输出的服务器端bin文件,也叫CGI,至于python/perl/shell 等脚本当然也能写...如将 " 转成%22 发出去,在服务器端的php 接收到的是原始的" 还是编码后的%22 得看用$_GET["key"] 还是$_SERVER['QUERY_STRING'],还要看 在php 脚本内有没有做...这种不编码访问才能触发的xss 漏洞,最简单的利用方式是写一个html,里面用 iframe src 引入完整不编码 payload 链接,用 ie 访问此 html。...p=a&q=b;一些 MVC 框架的 cgi 可能需要根 据某个参数的值选择不同的逻辑分支,比如 a.cgi?...五、浏览器特性和安全策略 1.同源策略 同源策略规定:不同域的客户端脚本在没明确授权的情况下,不能读写对方的资源。

    2K00
    领券