前面在《“按月存放”附件时,如何防止恶意用户列表显示?》一文中,提出了“为了安全,防止恶意用户进行列表显示目录下的所有文件”,我们对admin目录下的cp_upload.php进行了改动,增加了一行:else touch($targetfolder."/index.php");。
这是为了当不存在目录进行新建时,顺便touch一个index.php进去。按照touch命令的规则,当文件不存在时,相当于新建一个空文件,所以这个index.php的内容的效果是一片空白,什么也不显示。
今天提到改进版,是因为这样显示一片空白太无趣了,对方也觉得没有意思,所以我动点脑筋,让这个页面弄得好意思点,同时可以放点Google广告上去,访问者愿意帮我点几下广告是他的事。经过一番实验,实现了。下面来谈谈如何做。
1、在attachment目录下新建一个index.php。当然,这是为了防止attachment目录被人列表访问。
2、修改admin/cp_upload.php,在原来else touch($targetfolder."/index.php");的地方,改为else copy("attachment/index.php", $targetfolder."/index.php");。这句话的意思是,将attachment目录下的index.php复制到当前月份的目录下去。如果不明白的,请参见下面的图。
这样就OK了。当然,记得检查你当前的所有月份目录下,是否有index.php。没有的话,人工加上去。对于新的月份,你就得检查,上面的修改有没有帮你自动生成index.php。
有兴趣的话,可访问一下 http://spyrise.org/blog/attachment/ 和 http://spyrise.org/blog/attachment/200905/ 看看。



