0

意见:我想禁止通过操作系统级别的 Web(Linux)直接调用某些脚本,这些脚本具有从菜单访问的功能。

我希望调用一个 authorize.pl 脚本来检查会话有效性、检查用户权限等。然后它将重定向到目标脚本。

这是否绕过权限?我可以限制对公共目标脚本的执行,但将目标脚本设置为可访问的组authorize.pl吗?这是否反映了当前的任何做法?

4

2 回答 2

0

如果您计划重定向到与 authorize.pl 所属组无关的目标脚本,则这些脚本必须可由网络服务器用户执行。

为什么要在操作系统级别执行此操作?使用在每个脚本中进行检查的普通旧的基于会话的授权是标准做法。

与其调用 authorize.pl 并重定向到目标,不如创建一个名为 Authorization.pm 的模块并在每个脚本中使用它,首先调用一个验证函数。如果不存在正确的凭据,此函数将重定向到登录页面(或采取其他适当的操作)。

类似的东西

use Authorize qw{validate}; #Your module
use CGI::Session;
use strict;
use warnings;

my $sess = new CGI::Session();
validate($sess->param('user_token'));

#Unreachable code if session is empty or invalid

#Rest of the code ...
于 2008-12-18T01:14:58.117 回答
0

我们在考虑(1)我们可以预编译授权脚本以提高速度,(2)我们可以批发阻止具有数据库功能的脚本请求以提高安全性。但是我明白您的意思,必须将权限设置为用户执行才能使脚本与客户端通信:当通过授权客户端浏览器请求目标脚本将位置重定向打印给用户时。

于 2008-12-18T03:07:04.537 回答