如何限制用户访问Web服务器上的文件?

时间:2011-12-24 20:59:16

标签: php mysql security permissions file-permissions

您好我有一个更新数据库的文件。我将它用于cron作业,但如果有人像这样访问它,它也可以工作:http://myweb.com/files/file.php

我担心用户可以访问它并弄乱数据库。有没有办法将其隐藏起来,但保留它以便我可以编辑它并且cron作业可以执行它?

3 个答案:

答案 0 :(得分:3)

您应该将其保存在不可访问Web的目录中。如果你想将它保存在当前位置,那么在代码中你可以添加一个检查,看它是从浏览器还是爬虫(使用用户代理,引用等)调用,如果是从浏览器调用它由爬虫显示错误消息,否则让它执行。

答案 1 :(得分:2)

如何解决这个问题取决于您的托管环境,但如果您需要http访问权限并且正在使用Apache Web服务器,则可以在.htaccess文件中配置访问权限。如果使用IIS,请在IIS管理器中配置文件权限并配置访问权限。顺便说一下,最好的解决方案和最安全的方法是让文件远离公共区域,并直接从cron作业调用文件。

答案 2 :(得分:1)

有几种技巧可以帮到你。

  1. 您可以查看REMOTE_IP。如果它不是localhost,那就死了。

  2. 您可以验证是否传递了特殊的“secret”参数。像http://myweb.com/files/file.php?access_key=6rNPY6PhXPDf一样。如果它不存在或无效,则死亡。

  3. 将此脚本放在无法通过网络访问的文件夹中(即在www-root之外)