【发布时间】:2010-11-25 19:26:39
【问题描述】:
所有。我对网络开发很陌生,所以请温柔一点。如果我发布一个已经讨论过的主题,请道歉;我搜索但在另一个线程中找不到我正在寻找的东西。
背景:我有一个允许文件上传的网站,但是一旦上传,除了我之外的任何人都不需要查看它们。我已经实施了一些安全措施,例如让 php 上传脚本只允许某些扩展名,将上传的文件 chmoding 到 0644,以及在上传文件夹内的 htaccess 文件中对各种扩展名使用 -ExecCGI。
问题(其中三个;你不走运吗):
1) 我想让我的 htaccess 文件将 php 扩展名改写成别的东西。我找到了一些代码来做到这一点,但似乎无法让它工作:
RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^PUT$ [OR]
RewriteCond %{REQUEST_METHOD} ^MOVE$
RewriteRule ^(.*)\.php /site_redone/uploads/$1.nophp
网站结构是这样的(至少现在我正在重做网站): mysite.com/site_redone/uploads
我知道我的共享服务器的主机允许 mod_rewrite。他们正在运行 php 5.2.10。不确定我的问题是否是路径问题(我还没有完全掌握那部分),但在 RewriteRule 部分尝试了各种路径排列均无济于事。
2) 我目前为文件名附加了一种时间戳 (time()),以防止被同名文件覆盖,例如,myfile.doc 变为 myfile1252087685.doc。我可以将扩展名存储在 MySQL 数据库中,只需将文件名重写为以 .txt 或我的 php 上传脚本中的某些内容结尾,但我不确定这是否会完成与上述 mod_rewrite 尝试相同的事情。
3) 有没有办法将 htaccess 文件从上传文件夹放在更高的目录中,这样它就不会在上传文件夹中被我的一些 ne'erdowell 覆盖?不过,我只希望它影响上传文件夹,而不是它所在的目录。我猜这以某种方式涉及使用目录,但我不知道该怎么做。我有没有提到我是新手?
提前致谢!
【问题讨论】:
标签: php security .htaccess upload