Apache:是否可以将访问控制委托给可执行文件?
可以让apache调用另一个可执行文件或脚本来检查访问限制吗 我试图实现一种调用脚本的方法,该脚本可以检查除文件系统文件权限之外的其他限制(例如:检查请求是否包含有效的PHP会话cookie),并以某种方式告诉apache,如果不允许访问请求的文件,它必须返回403错误代码(例如:返回0以外的退出代码) 在过去,我使用PHP脚本来处理对图像文件的请求,并处理访问限制。问题是,我还必须以编程方式设置所有标题,这并不是一件小事(例如:如果您想支持304个响应,代码必须检查文件的修改时间,并将其与响应中规定的时间进行比较,或者检查“etags”,等等)。我想找到一种方法来避免所有这些麻烦,让apache处理“headers部分”和另一个脚本/二进制文件来处理“access部分” 提前感谢您的帮助!!!您可以使用,并禁止使用Apache:是否可以将访问控制委托给可执行文件?,apache,Apache,可以让apache调用另一个可执行文件或脚本来检查访问限制吗 我试图实现一种调用脚本的方法,该脚本可以检查除文件系统文件权限之外的其他限制(例如:检查请求是否包含有效的PHP会话cookie),并以某种方式告诉apache,如果不允许访问请求的文件,它必须返回403错误代码(例如:返回0以外的退出代码) 在过去,我使用PHP脚本来处理对图像文件的请求,并处理访问限制。问题是,我还必须以编程方式设置所有标题,这并不是一件小事(例如:如果您想支持304个响应,代码必须检查文件的修改时间,并将其与响应
重写规则访问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将是更安全、最简单的选择。