问题标签 [cgi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
3482 浏览

如果没有后备数据库,您将如何实现基于 FORM 的身份验证?

我有一个作为 CGI 程序运行的 PHP 脚本,并且 HTTPAuthenticate标头被吃掉并吐出。所以我想实现某种基于 FORM 的身份验证。作为附加约束,没有数据库,因此不能存储会话数据。

我非常愿意拥有一个主用户名和密码。我只需要保护应用程序免受不知道这些凭据的入侵者的侵害。

那么你将如何实现呢?

饼干?

我可以出示表格,如果验证通过,我可以发回一个 cookie,该 cookie 是 IP 地址的散列来密码。然后我可以阻止页面呈现,除非事情正确解密。但我不知道如何在 PHP 中实现它。

0 投票
2 回答
1957 浏览

为什么我不能用 Perl 的 AuthCAS 连接到我的 CAS 服务器?

我正在尝试使用现有的 CAS 服务器对 Perl CGI Web 脚本的登录进行身份验证,并且正在使用AuthCAS Perl 模块(v 1.3.1)。我可以连接到 CAS 服务器以获取服务票证,但是当我尝试连接以验证票证时,我的脚本从IO::Socket::SSL模块返回以下错误:

症状/测试:

  1. 如果我将生成的身份验证 URL 键入到 Web 浏览器的位置栏中,它会返回预期的 XML 片段。所以它不是一个糟糕的主机名。
  2. 如果我在不使用 AuthCAS 模块但使用 IO::Socket::SSL 模块直接查询 CAS 服务器以对生成的服务票证进行验证的情况下生成脚本,则 Perl 脚本将从命令行正常运行,但不能在浏览器中运行。
  3. 如果我将 AuthCAS 模块添加到第 2 项中的脚本中,则该脚本不再在命令行上运行,并且在浏览器中仍然无法运行。

这是产生错误的基本脚本:

关于冲突可能在哪里的任何想法?


错误来自引用的片段 Cebjyre 正上方的行,即

即套接字创建。所有输入参数都正确。我已经编辑了模块以放入调试语句并在调用之前打印出所有参数,它们都很好。看起来我将不得不更深入地研究 IO::Socket::SSL 模块。

0 投票
3 回答
1564 浏览

使用 PHP 脚本获取远程主机上的目录大小

我正在寻找可以递归地显示主文件夹中每个文件夹大小的东西。

这是一个带有 CGI-Bin 的LAMP服务器,因此大多数 PHP 脚本都应该可以工作,或者任何可以在 CGI-Bin 中工作的东西。

我的托管公司没有提供界面让我查看哪些文件夹占用的空间最多。我不知道互联网上的任何内容,并进行了一些搜索,但我没有找到任何结果。

实现图表(GD / ImageMagick)的东西是最好的,但不是必需的。

我的主机只支持 CGI-BIN 中的 Perl。

0 投票
9 回答
5340 浏览

Python 中不同 Web 编程方法的优缺点

我想用 Python 做一些服务器端脚本。但我有点迷失了这样做的方法的数量。

它以自己动手的 CGI 方法开始,似乎以一些非常强大的框架结束,这些框架基本上可以自己完成所有工作。还有很多介于两者之间的东西,比如web.pyPyroxideDjango

  • 您从事框架或方法的优缺点是什么?
  • 有哪些取舍
  • 他们在哪些项目上做得很好,在哪些项目上做得不好?

编辑:我还没有太多的网络编程经验。

我想避免像解析参数的 URL 等基本和繁琐的事情。
另一方面,虽然用Ruby on Rails在 15 分钟内创建的博客视频给我留下了深刻的印象,但我意识到隐藏了数百个东西来自我——如果你需要立即写一部作品,这很酷,但对于真正理解魔法来说并不是那么好——这就是我现在所寻求的。webapp

0 投票
5 回答
5353 浏览

如何从 Windows 上的 Perl CGI 脚本派生后台进程?

在 Windows 上运行时,我在从 Perl CGI 脚本分叉进程时遇到了一些麻烦。主要问题似乎是在 Windows 上运行时模拟了“fork”,实际上似乎并没有创建新进程(只是当前进程中的另一个线程)。这意味着等待进程完成的 Web 服务器(如 IIS)会继续等待,直到“后台”进程完成。

有没有办法从 Windows 下的 CGI 脚本中分叉出后台进程?更好的是,我可以调用一个函数以跨平台方式执行此操作吗?

(而且只是为了让生活更加困难,我真的想要一种同时将分叉进程输出重定向到文件的好方法)。

0 投票
5 回答
277 浏览

从 PHP 调用访客网络统计程序

我一直在为我的网站研究不同的网络统计程序,其中一个很有希望的是访客。不幸的是,它是一个 C 程序,我不知道如何从 Web 服务器调用它。我尝试使用 PHP 的shell_exec,但我的网络主机 ( NFSN ) 开启了 PHP 的安全模式,它给了我一条错误消息。

有没有办法在安全模式下执行程序?如果不是,它可以与 CGI 一起使用吗?如果是这样,怎么做?(我以前从未使用过 CGI)

0 投票
2 回答
1350 浏览

IIS上的python cgi

如何设置 IIS 以便可以从 asp 页面调用 python 脚本?

好的,所以我在这里找到了该问题的答案:http://support.microsoft.com/kb/276494

继续我的下一个问题:如何从经典的 asp (vb) 代码中调用 cgi 脚本?特别是不在网络根目录中的。

0 投票
6 回答
2873 浏览

我可以在没有 POST 的情况下在 python 中实现 Web 用户身份验证系统吗?

我的大学不支持 POST cgi 方法(我知道,这很疯狂),我希望能够拥有一个用户可以拥有用户名和密码并安全登录的系统。这甚至可能吗?

如果不是,您将如何使用 POST 进行操作?只是出于好奇。

干杯!

0 投票
4 回答
2097 浏览

How can I limit execution time for a Perl script in IIS?

This is a shared hosting environment. I control the server, but not necessarily the content. I've got a client with a Perl script that seems to run out of control every now and then and suck down 50% of the processor until the process is killed.

With ASP scripts, I'm able to restrict the amount of time the script can run, and IIS will simply shut it down after, say, 90 seconds. This doesn't work for Perl scripts, since it's running as a cgi process (and actually launches an external process to execute the script).

Similarly, techniques that look for excess resource consumption in a worker process will likely not see this, since the resource that's being consumed (the processor) is being chewed up by a child process rather than the WP itself.

Is there a way to make IIS abort a Perl script (or other cgi-type process) that's running too long? How??

0 投票
3 回答
4303 浏览

CGI.pm 通常在哪里创建临时文件?

在我所有的 Windows 服务器上,除了一台机器,当我执行以下代码来分配一个临时文件夹时:

变量$tmpfile被赋值'.\CGItemp1',这就是我想要的。但在我的一台服务器上,它被错误地设置为C:\temp\CGItemp1.

所有服务器都运行 Windows 2003 标准版、IIS6 和 ActivePerl 5.8.8.822(升级到更高版本的 Perl 不是一个选项)。从命令行或在 IIS 中作为 CGI 脚本(其中 scriptmap .pl= c:\perl\bin\perl.exe "%s" %s)运行脚本时,结果始终相同。

我如何修复这个 Perl 安装并强制它.\CGItemp1默认返回“”?

我什至将整个 Perl 文件夹从其中一台工作服务器复制到这台机器上,但没有任何乐趣。

@Hometoast:

我检查了 ' TMP' 和 ' TEMP' 环境变量,$ENV{TMP}并且$ENV{TEMP}它们是相同的。

从命令行它们指向用户配置文件目录,例如:

C:\DOCUME~1\[USERNAME]\LOCALS~1\Temp\1

当在 IIS 下作为 CGI 脚本运行时,它们都指向:

c:\windows\temp

在 registry keyHKEY_USERS/.DEFAULT/Environment中,两台服务器都有:

%USERPROFILE%\Local Settings\Temp

ActiveState 的实现CGITempFile()显然使用了一种替代机制来确定它应该如何生成临时文件夹。

@Ranguard:

真正的问题在于CGI.pm模块和附件处理。每当将文件上传到站点时,都CGI.pm需要将其临时存储在某个地方。为此,CGITempFile()在内部调用CGI.pm以分配一个临时文件夹。所以不幸的是我不能使用File::Temp. 不管怎么说,还是要谢谢你。

@克里斯:

这帮助了很多人。我之前确实快速浏览了CGI.pm源代码,但您的建议让我回过头来更加认真地查看它以了解底层算法。我得到了工作,但最奇怪的是服务器上最初没有c:\temp文件夹。

为了获得临时修复,我创建了一个c:\temp文件夹并为网站的匿名用户帐户设置了相关权限。但是因为这是一个共享框,所以即使临时文件正在被删除,我也不能那样做。长话短说,我将c:\temp文件夹重命名为不同的名称,并且神奇地返回了正确的 ' .\' 文件夹路径。我还注意到客户在网站上启用了 FrontPage 扩展,这会删除网站文件夹上匿名用户帐户的写入权限,因此需要重新申请此权限。我仍然不知道为什么在这个问题开始时CGITempFile()正在返回c:\temp,即使该文件夹不存在,以及为什么它神奇地再次开始工作。