日期:2014-05-17  浏览次数:20399 次

关于PHP文件树的问题,求解释。
PHP scripts that are used to connect to the database need access to the password for
that user.This can be done reasonably securely by putting the login and password in a
file called, for example, dbconnect.php, that you then include when needed.This script
can be carefully stored outside the web document tree and made accessible only to the
appropriate user.

我初学网页编程,看的是PHP和MySQL Web开发,我想问下这句话怎么理解。
This script can be carefully stored outside the web document tree and made accessible only to the appropriate user.

不把脚本放在文件树下,那上传到虚拟空间后,怎么访问这个脚本呢?

php tree web开发

------解决方案--------------------
需要的时候全路径包含,
基于安全方面的原因。

------解决方案--------------------
引用:
我的理解是这样的:

我的网页文件全部放在MyWeb这个文件夹下面了,为了数据的安全,我把数据库文件全部放在MySQL文件夹下面了。
那这个MyWeb就是网页文件树了?

但是上传的时候还不是要把这个两个文件夹都上传,那别人还不是有办法访问到我的数据库文件

文件数,就是除了敏感文件之外的所有网站运行需要的文件.
这个敏感文件包括, 连接数据库的用户名和密码等.

MYSQL文件夹是数据库层面的,这个可以通过导入导出来完成数据的初始化和备份操作,不在这个讨论范围之内.
------解决方案--------------------
首先,这句话是给有服务器控制权的建议——放到网站目录以外,用绝对路径引入
这主要是防止意外的情况匿名访问者能看到php源代码,例如php解析突然出现问题,php文件原文显示了
又或者忘了加容错和隐藏错误信息,连接数据库的php文件名暴露了

虚拟空间的数据库一般都不允许外来访问,只能本地127.0.0.1连接,所以密码外泄在短时间内还是不用担心的,尽快改密码就行

至于黑客行为,就不是这里所能解决的事了
------解决方案--------------------
安全是相对的
虽然 dbconnect.php这个包含密码 但也要进入到文件系统才能看到
如果入侵者能够进入虚拟空间的文件系统,那么他有什么不可以做的呢。即便你的dbconnect.php没放在web管辖范围,不还是一样能看到吗。更何况数据库里面还有一份呢?
------解决方案--------------------
如果你的密码用php语句赋值,而不是一个txt或ini,这样用http连接是看不出来的,只有php解析出错才会显示

因为虚拟空间通常限制只能本机连接数据库,所以外面知道密码也连不上,短时间内尽快更换密码就是了

虚拟空间要做好一些相关的处理事项,例如更多容错、一键闭站等等