Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache:是否可以将访问控制委托给可执行文件?_Apache - Fatal编程技术网

Apache:是否可以将访问控制委托给可执行文件?

Apache:是否可以将访问控制委托给可执行文件?,apache,Apache,可以让apache调用另一个可执行文件或脚本来检查访问限制吗 我试图实现一种调用脚本的方法,该脚本可以检查除文件系统文件权限之外的其他限制(例如:检查请求是否包含有效的PHP会话cookie),并以某种方式告诉apache,如果不允许访问请求的文件,它必须返回403错误代码(例如:返回0以外的退出代码) 在过去,我使用PHP脚本来处理对图像文件的请求,并处理访问限制。问题是,我还必须以编程方式设置所有标题,这并不是一件小事(例如:如果您想支持304个响应,代码必须检查文件的修改时间,并将其与响应

可以让apache调用另一个可执行文件或脚本来检查访问限制吗

我试图实现一种调用脚本的方法,该脚本可以检查除文件系统文件权限之外的其他限制(例如:检查请求是否包含有效的PHP会话cookie),并以某种方式告诉apache,如果不允许访问请求的文件,它必须返回403错误代码(例如:返回0以外的退出代码)

在过去,我使用PHP脚本来处理对图像文件的请求,并处理访问限制。问题是,我还必须以编程方式设置所有标题,这并不是一件小事(例如:如果您想支持304个响应,代码必须检查文件的修改时间,并将其与响应中规定的时间进行比较,或者检查“etags”,等等)。我想找到一种方法来避免所有这些麻烦,让apache处理“headers部分”和另一个脚本/二进制文件来处理“access部分”

提前感谢您的帮助!!!

您可以使用,并禁止使用
重写规则访问
af程序返回“NULL”。如果您要使用php脚本,请打开
php://stdin
,从中读取传入的
Cookie:
头,并确定它是否是您要允许的会话。问题将在在vanilla php会话中检查这些会话时,您几乎必须启动该会话才能弄清楚:确保已加载或可自动加载该会话所需的所有可能的类定义,调用
session\u id(“在cookie中找到的id”);
session\u start()
,检查
$\u SESSION
,然后再次写入
SESSION\u write\u close()
。存在各种各样的危险(如果没有正确加载类,则会导致会话中断;如果php脚本意外死亡,则会导致错误,等等)


如果您的Apache服务器处于控制之下,我更愿意:打开一个php脚本,php脚本设置要交付的图像的位置,
mod xsendfile
完成其余工作,包括ETag、修改时间等。如果您愿意,您甚至可以将“受限”内容存储在文档根目录之外(但请检查您交付的内容是否当然是您想要交付的内容,而不是磁盘上的一些随机文件)。

太好了!对于我从提供的链接中获得的内容,似乎这两个选项都可以帮助我实现所需的结果。解释也很好:-)我认为在这种情况下,mod xsendfile将是更安全、最简单的选择。