草庐IT

php - PHP 脚本/目录有哪些权限?

coder 2023-06-13 原文

我正试图帮助一位 friend 将网站从一家网络酒店转移到另一家。 老地方已经关门了,我只有里面内容的一个平面 tar 文件。

该网站包含 HTML 文档,可以下载一个小的 Java 应用程序(将在手机上加载)以将数据发送到该网站。

移动 Java 应用程序向 URL=<HOST>/php/register.php 发送了一个字符串.此 php 脚本包含另一个 php 脚本 ( ../inc/db_login.php ),它使用 $link=mysql_connect() 连接到 SQL DB。 .另一个文件,register.php , 是否插入了 SQL 以将新发送的数据放入数据库中。

我的问题基本上是,我应该将这 2 个 PHP 文件放在新网站的什么位置以及目录和文件应该具有什么权限?

旧的 Web 服务器显然有一个 /php/inc目录。这些都不存在于新的网络服务器上。我应该创建它们吗?他们应该有什么许可?我想将密码放在单独的 PHP 文件中的原因是为了安全。 /php/inc目录可能具有不同的权限。

新服务器有目录:

  • /httpdos
  • /httpsdos
  • /cgi-bin
  • /conf (还有一些可能无关紧要)

我的问题

  1. 文件扩展名 ( .php ) 对服务器意味着什么:因为 PHP 脚本“包含”在 HTML 代码中(在 <?...?> 之间,服务器是否需要查看文件后缀或者是它无关紧要?(我知道服务器对 <?...?> 使用react,当然)

  2. 公共(public)文件(在我的例子中是 register.php)应该放在 httpdocs/ 中吗?目录还是服务器(我认为是 apache)对某些东西使用react并将其提取到另一个目录中?

  3. PHP脚本是否应该有权限R-X (读取并执行),--X (执行)或 R-- (读)?从操作系统的角度来看,我猜 apache 只是在读取这些文件,这意味着它们应该是 R-- ,但这意味着如果 PHP 服务“停止”,客户端将在其浏览器中获取所有 PHP 代码(?)。我希望它是 --X但因为这既不是二进制文件也没有 #! , 我猜一定是 --R ?

  4. 如果公共(public) PHP 脚本可以放在另一个目录中(例如 /php 而不是 /httpdocs ),/php 应该放在什么地方? (和脚本)有权限吗?我想服务器必须知道这个 /php目录(或者是否有通常的默认值?)

  5. 包含的 PHP 脚本(../inc/db_login.php,包含 SQL 密码)不应在 /httpdocs 下我猜。这意味着我的 register.php包含不在 /httpdocs 下的文件子树。这行得通吗?服务器需要知道吗?

我知道您可能需要了解服务器配置。只需假设您的答案中的默认值(如果它被更改,您可以知道它在哪里更改)。

最佳答案

目录必须具有执行权限才能使用。通常这是 0755。通过 mod_php 运行的 PHP 脚本不会被执行而是被读取; 0644 就足够了。必须写入的目录需要由运行 Web 服务器的用户拥有。可能还有其他关于权限的问题,例如SELinux,但以上内容将帮助您了解基础知识。

其他用户或外部客户端不得访问的文档应该是 0600,由 Web 服务器用户拥有,并且位于 DocumentRoot 之外。请注意,在安全模式下运行 mod_php 将阻止脚本包含 DocumentRoot 之外的任何内容;一个可悲的缺陷。

关于php - PHP 脚本/目录有哪些权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2096255/

有关php - PHP 脚本/目录有哪些权限?的更多相关文章

  1. ruby - 如何将脚本文件的末尾读取为数据文件(Perl 或任何其他语言) - 2

    我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚

  2. ruby-on-rails - active_admin 目录中的常量警告重新声明 - 2

    我正在使用active_admin,我在Rails3应用程序的应用程序中有一个目录管理,其中包含模型和页面的声明。时不时地我也有一个类,当那个类有一个常量时,就像这样:classFooBAR="bar"end然后,我在每个必须在我的Rails应用程序中重新加载一些代码的请求中收到此警告:/Users/pupeno/helloworld/app/admin/billing.rb:12:warning:alreadyinitializedconstantBAR知道发生了什么以及如何避免这些警告吗? 最佳答案 在纯Ruby中:classA

  3. ruby-on-rails - 独立 ruby​​ 脚本的配置文件 - 2

    我有一个在Linux服务器上运行的ruby​​脚本。它不使用rails或任何东西。它基本上是一个命令行ruby​​脚本,可以像这样传递参数:./ruby_script.rbarg1arg2如何将参数抽象到配置文件(例如yaml文件或其他文件)中?您能否举例说明如何做到这一点?提前谢谢你。 最佳答案 首先,您可以运行一个写入YAML配置文件的独立脚本:require"yaml"File.write("path_to_yaml_file",[arg1,arg2].to_yaml)然后,在您的应用中阅读它:require"yaml"arg

  4. ruby-on-rails - 如何在 Gem 中获取 Rails 应用程序的根目录 - 2

    是否可以在应用程序中包含的gem代码中知道应用程序的Rails文件系统根目录?这是gem来源的示例:moduleMyGemdefself.included(base)putsRails.root#returnnilendendActionController::Base.send:include,MyGem谢谢,抱歉我的英语不好 最佳答案 我发现解决类似问题的解决方案是使用railtie初始化程序包含我的模块。所以,在你的/lib/mygem/railtie.rbmoduleMyGemclassRailtie使用此代码,您的模块将在

  5. postman——集合——执行集合——测试脚本——pm对象简单示例02 - 2

    //1.验证返回状态码是否是200pm.test("Statuscodeis200",function(){pm.response.to.have.status(200);});//2.验证返回body内是否含有某个值pm.test("Bodymatchesstring",function(){pm.expect(pm.response.text()).to.include("string_you_want_to_search");});//3.验证某个返回值是否是100pm.test("Yourtestname",function(){varjsonData=pm.response.json

  6. ruby-on-rails - 没有这样的文件或目录 - 用 Mini Magick 识别 - 2

    在我让另一个人重做我的前端UI之前,我的Rails应用程序运行平稳。我已经尝试解决此错误3天了。这是错误:Nosuchfileordirectory-identifyExtractedsource(aroundline#59):575859606162@post=Post.find(params[:id])authorize@postif@post.update_attributes(post_params)flash[:notice]="Postwasupdated."redirect_to[@topic,@post]else{"utf8"=>"✓","_method"=>"patc

  7. ruby - rbenv 安装权限被拒绝 - 2

    大家好,我正在尝试设置一个开发环境,并且我一直在关注以下教程:Linktotutorial我做得不是很好,除了最基本的版本控制内容外,我对终端命令没有任何实际经验。我点击了第一个链接并尝试运行source~/.bash_profile我得到了错误;mkdir:/usr/local/rbenv/shims:权限被拒绝mkdir:/usr/local/rbenv/versions:权限被拒绝现在每次我加载终端时都会出现错误。bash_profile的内容;exportPATH=/usr/local/rbenv/bin:$PATHexportRBENV_ROOT=/usr/local/rbe

  8. ruby - 确定 ruby​​ 脚本是否已经在运行 - 2

    有没有一种简单的方法可以判断ruby​​脚本是否已经在运行,然后适本地处理它?例如:我有一个名为really_long_script.rb的脚本。我让它每5分钟运行一次。当它运行时,我想看看之前运行的是否还在运行,然后停止第二个脚本的执行。有什么想法吗? 最佳答案 ps是一种非常糟糕的方法,并且可能会出现竞争条件。传统的Unix/Linux方法是将PID写入文件(通常在/var/run中)并在启动时检查该文件是否存在。例如pid文件位于/var/run/myscript.pid然后你会在运行程序之前检查它是否存在。有一些技巧可以避免

  9. ruby-on-rails - 您希望看到哪些 Rails 插件? - 2

    您认为可以作为插件很好地存在于您的Rails应用程序中必须实现的哪些行为?您过去曾搜索过哪些插件功能但找不到?哪些现有的Rails插件可以改进或扩展,如何改进或扩展? 最佳答案 我希望在管理界面中看到一个引擎插件,它提供了应用程序中所有模型的仪表板摘要,以及可配置的事件图表。 关于ruby-on-rails-您希望看到哪些Rails插件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questio

  10. ruby - ruby 脚本可以预编译成二进制文件吗? - 2

    我正在开发一个Ruby脚本,需要在没有Ruby解释器的情况下部署到系统上。它将需要在使用ELF格式的FreeBSD系统上运行。我知道有一个ruby​​2exe项目可以编译在Windows上运行的ruby​​脚本,但是在其他操作系统上这样做容易吗?甚至可能吗? 最佳答案 您是否检查过Rubinius或JRuby是否允许您预编译您的代码? 关于ruby-ruby脚本可以预编译成二进制文件吗?,我们在StackOverflow上找到一个类似的问题: https://

随机推荐