定制Apache的防盗链模块



QUOTE:
原帖由 freeand 于 2008-1-11 14:10 发表
http://perl.apache.org/search/sw ... =&submit=search

没什么头绪,不知我要看哪部份呢?
哪部份会提及 CGI 或 PHP 将要访问的本地文件对像是什么?

首先你要了解modperl的原理和配置,然后了解其编程规范.这里的文档,估计你要看一半以上才行:
http://perl.apache.org/docs/2.0/user/index.html

其实没必要花这么多时间,你把我的这个防盗链module改一下就行,配置方法一模一样,都可以照抄.


QUOTE:
原帖由 pangj 于 2008-1-11 14:41 发表


如果你统一控制的话,就使用modperl的AccessHandler就可以了,实现这个功能对mp来说太easy,呵呵.

首先你要了解modperl的原理和配置,然后了解其编程规范.这里的文档,估计你要看一半以上才行:
http://perl.apache.org/docs/2.0/user/index.html

其实没必要花这么多时间,你把我的这个防盗链module改一下 ...

我说得也有道理,但是我不知从哪里入手。
想知道一个CGI程式(PHP)将要访问哪些文件或操作哪些目录,这是它内部的事情,
应该是操作系统才能做到的事情吧。
我们不能把整个CGI源码打开检查是不是有open等语句吧,如果是用C写的CGI,
那也不可能看到源码。。。

AccessHandler我看了一下,还是没什么想法。。。不知你有没有兴趣和有时间给一个提示或稍改一下你的防盗链module来实现?
先谢了。
如果你自己都不知道程序要访问哪些目录的话,就不太好配了。。。
另外,我觉得你这里的需求比较奇怪,应该不属于用modperl去做的事。因为:
1)如果你是一个系统管理员的话,就有责任配置好WEB相关目录的访问权限,保证程序运行正常。
2)如果你是WEB开发员的话,自己有责任做好异常处理,例如访问文件或目录失败的问题。
如果不是上述情况,那么就是我说多了,见谅。
http://bbs.chinaunix.net/viewthr ... hlight=%B0%B2%C8%AB
http://bbs.chinaunix.net/viewthr ... hlight=%B0%B2%C8%AB
http://bbs.chinaunix.net/viewthr ... hlight=%B0%B2%C8%AB
http://bbs.chinaunix.net/viewthr ... 9%C4%E2%D6%F7%BB%FA
现在是有不少方法可以实现,但效率低。


QUOTE:
例如虚拟主机的目录为
/var/vhost/
例如用户 user1 的目录为
/var/vhost/user1/htdocs
/var/vhost/user1/database
/var/vhost/user1/log

用户 user2 的目录为
/var/vhost/user2/htdocs
/var/vhost/user2/database
/var/vhost/user2/log

要求用户 user1 的 cgi 程序只能读取到 /var/vhost/user1 目录及其子目录下的东西
user2 的只能读取 /var/vhsot/user2 的

明白你的意思了。上述需求可以用modperl的AccessHandler解决。
配置apache,对每个虚拟主机的家目录,设置一个AccessHandler即可。


QUOTE:
原帖由 pangj 于 2008-1-11 18:49 发表


明白你的意思了。上述需求可以用modperl的AccessHandler解决。
配置apache,对每个虚拟主机的家目录,设置一个AccessHandler即可。

真是好消息!
如果方便的话,可以帮忙帖一下具体的代码吗?实在找不到头绪,相信不少人都期待啊。谢谢!
这个防盔链接是不是只支持prefork方式运行,支持线性工作方式是不是有问题呀


QUOTE:
原帖由 xpingtn 于 2008-1-12 10:18 发表
这个防盔链接是不是只支持prefork方式运行,支持线性工作方式是不是有问题呀

那是因为Perl对线程支持有问题,呵呵。