我正试图帮助一个朋友从一个网络酒店移动到另一个网站。 旧的地方已经关闭,我只有一个平坦的tar文件。PHP脚本/目录有什么权限?
该网站包含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
(和其他一些人可能不相关)
我的问题
请问文件扩展名(
.php
)意味着什么服务器:为PHP脚本的HTML代码“包含”(<?...?>
之间,并在服务器需要看文件后缀或者是无关紧要的? (据我所知,在服务器上<?...?>
反应,当然)应的公共文件(
register.php
在我的情况)被放置在httpdocs/
目录或不服务器(Apache的我认为)反应的东西和其取出在另一个目录?PHP脚本是否有权限
R-X
(读取和执行),--X
(执行)或R--
(读取)?从操作系统的角度来看,我猜apache只是读取这些文件,这意味着它们应该是R--
,但这意味着如果PHP服务“停止”,客户端将在浏览器中获取所有PHP代码(?)。我宁愿它--X
,但因为这既不是一个二进制也没有#!
,我想它一定是--R
?如果公共PHP脚本可以放在另一个目录中(例如
/php
而不是/httpdocs
),/php
(和脚本)应该有什么权限?我猜服务器必须知道这个/php
目录(或者是否有通常的默认值?)包含PHP脚本(
../inc/db_login.php
,包含SQL密码)不应该在/httpdocs
下我猜。这意味着我的register.php
包含一个不在/httpdocs
子树下的文件。这是否工作?服务器需要知道吗?
我知道您可能需要了解服务器配置。在你的答案中假设默认值(如果是的话,你可以知道它在哪里更改)。
感谢您的回答。我会把register.php放在httpdocs/php中。 现在我试着创建/ inc并包含../../inc/db_login.php,但是创建/ inc被拒绝了......应该将db_login.php放在cgi-bin中然后呢?如果apache处于安全模式,那么db_login必须位于httpdocs树中......这不是安全风险吗? – 2010-01-19 20:44:34
CGI脚本应该放在'cgi-bin'中。是的,在DocumentRoot下有配置文件是潜在的安全风险; PHP可以通过配置选项来解决这个问题,该选项指定了一个可以明确包含的额外目录。但事实并非如此。 – 2010-01-19 20:48:54
但是,如果register.php和db_login.php都在html文档根目录下并且它们的权限相同,那么它们在2个不同文件中的增益(安全性)是什么。我认为这个想法是围绕db_login中包含的密码提供“更多的安全性”...?如果PHP失败,代码到达客户端是不是有风险?再一次,很多人非常感谢你的时间。/C – 2010-01-19 21:26:22