我正在修补运行Apache2的LAMP服务器上的网页,并想知道是否可以只为您的网页而不是从外部访问目录?
示例方案:
要保护的目录: dir1 包含图片(jpg,png)
我自己的网页: mypage.html 从 dir1
调用图片我的网站: www.myweb.com 包含 dir1 和 mypage.html
目前,网站内的文件可以通过 www.myweb.com/dir1/somefile.jpg 或致电 mypage.html
进行访问我希望只能通过调用mypage.html
来访问它我尝试了以下内容:
修改.htaccess以禁止访问图像类型
#define TRUE 1
/* declare cmd, params, envp, stat, prompt, readcmd */
while (TRUE) { /* repeat forever */
prompt(); /* display prompt */
readcmd(cmd, params); /* read input from terminal*/
if (fork() != 0) { /* fork child process */
/* parent code */
waitpid(-1, &stat, 0); /* wait for child */
} else {
/* child code */
execve(cmd, params, envp); /* execute command */
}
}
}
(不起作用,因为mypage.html也无法访问它)
使用以下命令修改apache2 conf文件:
<files "*.jpg">
deny from all
</files>
(这实际上是半工作的,因为它允许我写入目录但不读取,也许这可以修改为允许来自内部网页的请求通过?)
我想总结一下,有没有办法让Apache2只接受访问目录的请求,如果它是您选择的某个网址?
提前致谢。
答案 0 :(得分:0)
所以,我已经决定到目前为止我采取的方法真的没有削减它,发现你实际上可以调用一个php函数
<img src='somefile.php?query=xxx' alt='pic'>
以及somefile.php中的内容,它包含从上面的查询创建的img文件名。
echo file_get_contents($imgresource);
通过从php脚本提供图像并阻止在没有正确的凭据,会话,cookie和IP阻塞的情况下调用此PHP脚本,有一些安全设置。
所以我猜它并没有真正回答完全阻止只访问某些URL的问题,但它的工作原理是无法在外部访问,因为我已经隐藏了下面的目录(或上面的?) Web根目录,它不能从URL调用,只能从内部脚本调用。