Articles of cgi

将C#编译为CGI

如何将C#程序编译为CGI以在LAMP / Linux / Apache服务器的cgi-bin中运行?

结束perl脚本而不等待系统调用返回

我正在Linux(Ubuntu 14.04)上运行一个简单的Apache Web服务器,用一个perl CGI脚本处理一些请求。 脚本使用system函数启动系统命令,但是我希望它立即返回,不pipe系统调用的结果如何。 我一直在传递给system的标量参数( 我意识到命令注入攻击的含义 )的末尾添加了&符号,尽pipe这会导致系统命令立即返回,但脚本仍然不会退出,直到底层命令已经完成。 如果我使用来自perl CGI的system调用来触发一个具有10秒睡眠的伪ruby脚本,那么我对Web服务器的请求仍然等待10秒钟,最终得到响应。 我在system调用之后放了一个日志语句,当networking请求发出时它立即出现,所以system调用肯定是立即返回,但脚本仍然在等待结束。 这个问题是相似的,但是这两个解决scheme都不适合我。 以下是一些示例代码: #!/usr/bin/perl use strict; use warnings; use CGI; use Log::Log4perl qw(:easy); Log::Log4perl->easy_init( { level => $DEBUG, file => ">>/var/log/script.log" } ); print "Content-type: application/json\n\n"; my $cgi = CGI->new(); INFO("Executing command…"); system('sudo -u on-behalf-of-user /tmp/test.rb one two &'); INFO("Command initiated – will return now…"); […]

debuggingCGI python

每当浏览器产生错误时,除了查看日志文件外,是否有简单的方法来debuggingcgi python程序?

PHP:testing两个双variables给出不同的结果,而不改变variables

在我的代码中,我有两个double值。 让我们称他们$a和$b 。 现在我想testing哪一个更大,所以我写了以下内容: print ($a > $b ? "larger\n" : "smaller\n"); print ($a > $b ? "larger\n" : "smaller\n"); 奇怪的结果是 larger smaller 有没有人遇到过类似的问题? 这个问题只出现在我们使用php-cgi的embedded式linux系统上。 感谢您的回答和build议。 下面是整个代码:我需要将hex值解码为符号的十进制值,并最终使用大于整数大小的数字 function decodeInteger($datahex) { // ignore non hex characters $hex = preg_replace('/[^0-9A-Fa-f]/', '', $datahex); // converted decimal value as double: $dec = hexdec($hex) * 1.0; // maximum decimal value […]

是否有可能实时从python子stream程输出到网页?

在此先感谢您的帮助。 我相当新的Python,甚至更新的HTML。 我一直在尝试在过去的几天创build一个带有button的网页在家庭服务器上执行任务。 目前我有一个python脚本,生成一个页面的button: (See the simplified example below. removed code to clean up post) 然后一个python脚本运行所述命令并输出到页面上的iframe : (See the simplified example below. removed code to clean up post) 这完成后输出完整的输出。 我也尝试添加-u选项到python脚本来运行它缓冲。 我也尝试使用Python subprocess 。 如果它帮助我运行的命令types是apt-get update和其他Python脚本来移动文件和修复文件夹权限。 而当从普通的Ubuntu服务器端运行,它运行良好,实时输出,从我的研究,它应该输出为命令运行。 谁能告诉我我要去哪里? 我应该使用不同的语言来执行此function吗? 编辑简单的例子: 初始页面: #runcmd.html <head> <title>Admin Tasks</title> </head> <center> <iframe src="/scripts/python/test/createbutton.py" width="650" height="800" frameborder="0" ALLOWTRANSPARENCY="true"></iframe> <iframe width="650" height="800" […]

在shell中parsingps和grep输出

当我执行“ps -ef | grep port”时,我会收到以下消息: apache 6215 1 0 11:20 ? 00:00:00 perl /scripts/myscript.pl -sn 4123E -sku HSME01-HW -port 8 有没有办法parsing以下内容: 开始时间(11:20) sn(4123E) sku(HSME01-HW) (8)

用户目录中的Apache CGI“报头之前的脚本输出结束”

我知道这个话题有一些问题,但似乎没有解决我的问题。 看到这个或这个或这个 。 我在Linux上,Fedora21,我试图启用每个用户目录的CGI脚本。 我遵循这些指示,但没有成功。 我得到的错误: [cgi:error] End of script output before headers: test.cgi test.cgi是一个可执行的sh文件,包含一个非常简单的脚本: #!/usr/bin/sh echo "Content-type: text/plain" echo "" echo "Hello" 它具有可执行标志并且从shell运行没有问题。 我也尝试用Python:相同的结果。 我也禁用了selinux。 我也尝试将debug级别设置为Apache的ErrorLog,但是我得到的只是上面错误之前的“授予”权限。 我还configuration了/etc/httpd/conf.d/userdir.conf文件 <Directory "/home/*/public_html"> AllowOverride All Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec Require all granted </Directory> <Directory /home/*/public_html/cgi-bin/> Options ExecCGI FollowSymLinks SetHandler cgi-script AddHandler cgi-script .cgi .exe .pl .py .vbs […]

如何启用'wget'来用Javascript下载HTML的全部内容

我有一个网站 ,我想使用Unix wget下载。 如果您查看文件的源代码和内容,则其中包含“摘要”部分。 然而,在发出像这样的wget命令之后: wget -O downdloadedtext.txt http://www.ncbi.nlm.nih.gov/IEB/Research/Acembly/av.cgi?db=mouse&c=gene&a=fiche&l=2610008E11Rik downdloadedtext.txt的内容不完整,与该网站的源代码不同。 例如它不包含摘要部分。 有没有正确的方法来正确地获取全部内容? 我之所以这样问,是因为我想在HTML中自动从不同的值下载。

通过PHP / Perl脚本运行命令作为Linux上的特权用户

背景 :我正在为一家公司编写一个脚本,允许用户通过Web界面创buildFTP帐户。 在后台,脚本必须运行一堆命令: 将用户添加到系统(useradd) 打开并编辑各种文件 通过sendmail向用户发送邮件 和其他一些事情… 我基本上正在寻找这样做的最安全的方式。 我听说过setuid方法,sudo方法,当然,运行httpd作为priviledged用户。 在执行任何命令之前,将对input的数据进行健全性检查(即,只有用户名中的字母数字字符) 那里stream行的脚本(例如webmin)使用什么方法,因为它必须相当安全?

为什么从cron作业调用PHP_SAPI不等于“cli”?

这是从我的cron工作线… */5 * * * * php /home/user/public_html/index.php –uri=minion –task=emailassets 当我的脚本从这个cron作业运行时,PHP常量PHP_SAPI等于'cgi-fcgi'。 为什么PHP_SAPI不等于'cli'?