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

Php 如何限制用户访问web服务器上的文件?,php,mysql,security,permissions,file-permissions,Php,Mysql,Security,Permissions,File Permissions,嗨,我有一个更新数据库的文件。我将其用于cron作业,但如果有人这样访问它,它也会起作用: 我担心用户可以访问它并弄乱数据库。有没有一种方法可以对用户隐藏它,但保留它,这样我就可以编辑它,cron job就可以执行它?您应该将它保存在一个无法通过web访问的目录中。如果要将其保留在当前位置,则可以在代码中添加一个检查,查看它是否正在从浏览器或爬虫程序(使用用户代理、引用等)调用,如果它是从浏览器或爬虫程序调用的,则显示一条错误消息,否则让它执行。您应该将其保留在一个无法通过web访问的目录中。如

嗨,我有一个更新数据库的文件。我将其用于cron作业,但如果有人这样访问它,它也会起作用:


我担心用户可以访问它并弄乱数据库。有没有一种方法可以对用户隐藏它,但保留它,这样我就可以编辑它,cron job就可以执行它?

您应该将它保存在一个无法通过web访问的目录中。如果要将其保留在当前位置,则可以在代码中添加一个检查,查看它是否正在从浏览器或爬虫程序(使用用户代理、引用等)调用,如果它是从浏览器或爬虫程序调用的,则显示一条错误消息,否则让它执行。

您应该将其保留在一个无法通过web访问的目录中。如果要将其保持在当前位置,则可以在代码中添加一个检查,查看它是否正在从浏览器或爬虫程序(使用用户代理、引用等)调用,如果它是从浏览器或爬虫程序调用的,则显示一条错误消息,否则让它执行。

有几个技巧可以帮助您

  • 您可以检查远程IP。如果不是localhost,就死吧

  • 您可以验证是否传递了特殊的“secret”参数。喜欢如果它不存在或无效,就去死吧

  • 将此脚本放在无法通过web访问的文件夹中(即,在您的www根目录之外)


  • 有几个技巧可以帮助你

  • 您可以检查远程IP。如果不是localhost,就死吧

  • 您可以验证是否传递了特殊的“secret”参数。喜欢如果它不存在或无效,就去死吧

  • 将此脚本放在无法通过web访问的文件夹中(即,在您的www根目录之外)


  • 解决方法取决于宿主环境,但如果您需要http访问并使用Apache webserver,则可以在.htaccess文件中配置访问权限。如果使用IIS,请在IIS管理器中配置文件权限和访问权限。顺便说一句,最好的解决方案和最安全的方法是使文件远离公共区域,并直接从cron作业调用文件。

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

    所以说我的所有网站文件都位于/root/目录中,所以我应该将此文件放在它之外,对吗?是的。如果您的web可访问目录为/root/,则在同一级别创建一个目录(例如/cron/),并将cron文件放在其中。所以它不能通过网络访问。@SergeiTulentsev否,我的意思是,如果它被浏览器或爬虫程序调用,则显示错误消息。更新了解决方案以反映这一点。因此,假设我的所有网站文件都位于/root/目录中,那么我应该将此文件放在其外部,对吗?是的。如果您的web可访问目录为/root/,则在同一级别创建一个目录(例如/cron/),并将cron文件放在其中。所以它不能通过网络访问。@SergeiTulentsev否,我的意思是,如果它被浏览器或爬虫程序调用,则显示错误消息。更新了解决方案以反映这一点。