标签: cgi

你如何使用Apache"ScriptInterpreterSource Registry-Strict"指令?

我在Windows上运行Apache Web服务器,以便处理一些Perl CGI脚本.在生产中这些脚本在linux机器上运行,并且在源代码库中它们都有像shebangs一样#!/usr/bin/perl,但是在我的Windows机器上,shebangs会是#!c:\perl\bin\perl.exe,所以我与源代码库有冲突.

输入Apache ScriptInterpreterSource指令.

我一直试图让它工作,基于我可以谷歌.但到目前为止还没有运气.我有:

  1. 将这些内容添加到适当的指令AllowOverride无
    选项索引FollowSymLinks ExecCGI顺序允许,拒绝允许来自所有ScriptInterpreterSource Registry-Strict

  2. 补充:AddHandler cgi-script .cgi

  3. 编辑了我的注册表并添加了一个新的String

HKEY_CLASSES_ROOT\.cgi\Shell\ExecCGI\Command=C:\Perl\bin\perl.exe
Run Code Online (Sandbox Code Playgroud)

现在,我知道只要他们拥有合适的shebang,CGI就可以在这台服务器上运行.

但是当我尝试访问没有shebang的CGI时,apache日志会吐出:

没有为'.cgi'类型的文件找到Exec CGI Verb

任何想法,见解,甚至疯狂的猜测都将不胜感激.

谢谢.

apache perl cgi

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

Delphi中的Web应用程序

我正在评估使用Delphi(ISAPI/CGI/...)编写Web应用程序的可能性.我仍然看不到使用Delphi而不是"经典"Web开发框架的充分理由.

如果您有这方面的经验,请分享您的意见.你会推荐Delphi而不是PHP/Rails/ASP/......吗?你知道用Delphi编写的任何Web应用程序吗?(不是网络服务)

delphi cgi isapi

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

如何构建我的Perl CGI程序?

我们刚刚在CS课程中获得了第一个主要的Perl CGI作业.我们的任务是创建一个mp3共享站点,允许用户创建帐户,登录,共享mp3.必须显示当前用户的统计信息,可用的mp3等.必须将所有操作写入日志文件.我们的代码必须安全.

到目前为止,我已将这些操作分别实现为自己的CGI脚本.例如,我有一个脚本可以绘制登录表单,注册表单,允许mp3上传的脚本,以及另一个执行mp3服务的脚本.我还创建了一个模块,每当我调用它的实例时,它都会将相关信息发布到日志文件中.但是,每个脚本都是单独的,但登录屏幕除外,它会绘制一个表单,然后发布到login.cgi.帐户生成的工作原理相同.但是,在大多数情况下,每个人都独立行事.

我的问题:如何将这些链接在一起,以便除非用户登录,否则不允许任何操作?我假设我应该使用登录脚本(接收post动作的脚本)来驱动一切,但我该怎么做?我真的很茫然.我想有一个用户登录,主页是用选项绘制的(添加mp3,听mp3,显示统计等).我最好是绘制某种形式并将动作设置为不同的脚本吗?如何处理这些脚本的返回?饼干会以某种方式帮助吗?

其他相关信息:到目前为止,我使用本网站上的ovid教程和Lincoln Stein的书完成了CGI.pm的大部分工作.

perl cgi session-management

7
推荐指数
2
解决办法
445
查看次数

为什么$ auth-> loggedIn在我使用CGI :: Session :: Auth :: DBI时永远不会成立?

使用CGI :: Session :: Auth :: DBICGI :: Session :: Auth页面中的示例,我试图实现该_login功能但没有成功.我正在使用Windows 7和Apache 2.

#!/usr/bin/perl -w
use strict;

use CGI::Carp qw(fatalsToBrowser);

use CGI;
use CGI::Session;
use CGI::Session::Auth::DBI;

my $cgi = new CGI;

# using '.' directory for testing
my $session = new CGI::Session(undef, $cgi, {Directory=>'.'});
my $auth = new CGI::Session::Auth::DBI({
    CGI => $cgi,
    Session => $session,
    DSN => 'dbi:mysql:dbname=foobar:host=localhost',
    DBUser => 'foo',
    DBPasswd => 'bar',
    UserTable => 'cgi_auth_user' # auth_user already in use
});

print …
Run Code Online (Sandbox Code Playgroud)

authentication perl cgi

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

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

背景:我正在为一家允许用户通过Web界面创建FTP帐户的公司编写脚本.在后台,脚本必须运行一堆命令:

  • 将用户添加到系统(useradd)
  • 打开并编辑各种文件
  • 通过sendmail邮寄用户

还有其他一些事情......

我基本上都在寻找最安全的方法.我听说过setuid方法,sudo方法,当然还有httpd作为特权用户运行.在执行任何命令之前,将对输入的数据进行完整性检查(即,仅用户名中的字母数字字符)

流行脚本使用的方法是什么(例如webmin),因为它必须相当安全?

php linux apache perl cgi

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

如何从命令行或从Web运行程序?

我有一个python脚本,我想知道请求是来自Web还是命令行.我怎样才能做到这一点?

python command-line cgi

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

cgi的start_html()方法可以有多个-script属性吗?

我认为这个问题非常自我解释,但我使用perl来生成一个网页.开始使用:

$cgi->start_html(-title=>'myPage',-style=>{-src=>'style.css'},  -script=>{-type=>'JAVASCRIPT', -src=>'custom.js'}, );
Run Code Online (Sandbox Code Playgroud)

项目清单

但是如果我想在标题中有多个脚本呢?还是多个CSS样式表?

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
<script type="text/javascript" src="custom.js"></script>
<link rel="stylesheet" href="css/basic.css" type="text/css" />
<link rel="stylesheet" href="css/style.css" type="text/css" />
Run Code Online (Sandbox Code Playgroud)

html javascript perl cgi

7
推荐指数
2
解决办法
5345
查看次数

IIS 7上的WordPress php-cgi占用CPU

根据IIS.net的指南,使用WP-SuperCache在IIS 7(Windows Server 2008)上运行WordPress .

运行良好,但最近我们更改了一些文件夹和管理员密码的权限,我们的CPU使用率因PHP-cgi.exe进程而大幅增加.

CPU使用率

php-cgi.exe进程

这让我相信它不是缓存,但页面本身在底部有"缓存与WP-SuperCache"注释,并且缓存似乎正常工作.

这还有什么问题呢?

php iis wordpress caching cgi

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

Perl抛出"引用上的键是实验性的"

开发环境是OS X 10.10.3,Perl -v

This is perl 5, version 18, subversion 2 (v5.18.2) built for darwin-thread-multi-2level
(with 2 registered patches, see perl -V for more detail)
Run Code Online (Sandbox Code Playgroud)

这是问题所在

我将项目从本地环境移动到Windows Server,现在我收到以下错误:

"引用的密钥在CGI/Router.pm第94行是实验性的."

该模块的第94行显示

my $num_regexes = scalar keys $token_regexes;
Run Code Online (Sandbox Code Playgroud)

整个模块可以在这里找到https://github.com/kristiannissen/CGIRouter

我像这样实例化路由器模块

$router->add_route( 'GET', '/home', sub {
 print header( -type => 'text/html', -charset => 'utf-8' );

 print "Hello Pussy";
});
Run Code Online (Sandbox Code Playgroud)

我在本地没有这个问题,但现在我正在转向生产服务器,我遇到了这个问题.据我所知,它与特定的Perl版本有关,但在我要求提供商升级Perl之前,我想我能做些什么来避免这个问题?

perl cgi

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

在IIS 10.0.14393上运行CGI Python映射时如何解析HTTP 404.2

我已经安装了Windows Server2016虚拟机,并使用CGI,ISAPI,.Net等安装了IIS。我唯一的志向是用旧的CGI方法运行python脚本:请求的python文件,在单独的新文件中执行过程完成。

我按照一系列教程的建议添加了脚本映射。我确保相应地设置ISAPI筛选器和CGI限制。我似乎仍然无法解决404.2的问题。显然,找到了映射,test.py文件存在,并且我已经在“完全控制”中打开了“所有人”的文件系统,以确保这不是问题。

在ISAPI和CGI限制中,我尝试了不同的格式:有和没有%s%s,有和没有引号等。

我尝试在本地脚本上使用该python.exe命令,它运行正常。IIS出现问题,无法解决。

从Web浏览器浏览根文件夹可以成功工作并列出.py文件。

从本地主机浏览时出错 从本地主机浏览时出错

自定义网站上的脚本映射 自定义网站上的脚本映射

自定义网站的Web配置,显示python脚本映射

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <handlers accessPolicy="Read, Execute, Script">
            <add name="Python" path="*.py" verb="*" modules="CgiModule" scriptProcessor="C:\Anaconda3\python.exe %s %s" resourceType="Either" requireAccess="Script" />
        </handlers>
        <directoryBrowse enabled="true" />
    </system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)

网站级别的ISAPI设置 网站级别的ISAPI设置

服务器级别的ISAPI和CGI限制设置 服务器级别的ISAPI和CGI限制设置

python iis cgi iis-10

7
推荐指数
0
解决办法
189
查看次数