AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 内蒙古时时彩平台 > Linux

inc文件使用的风险和注意事项

内蒙古时时彩平台 //www.3rmtj.cn
数据库使用中需要关注的主要问题之一是访问权限即用户名及密码的暴露。在编程中为了方便,一般都会用一个db.inc文件保存

代码如下:
<?php
 $db_user = 'myuser';
$db_pass = 'mypass';
$db_host = '127.0.0.1';
 $db = mysql_connect($db_host, $db_user, $db_pass);
 ?>

用户名及密码都是敏感数据,是需要特别注意的。他们被写在源码中造成了风险,但这是一个无法避免的问题。如果不这么做,你的数据库就无法设置用户名和密码进行?;ち?。
如果你读过http.conf(Apache的配置文件)的默认版本的话,你会发现默认的文件类型是text/plain(普通文本)。这样,如果db.inc这样的文件被保存在网站根目录下时,就引发了风险。所有位于网站根目录下的资源都有相应的URL,由于Apache没有定义对.inc后缀的文件的处理方式类型,在对这一类文件进行访问时,会以普通文本的类型进行返回(默认类型),这样访问权限就被暴露在客户的浏览器上了。
为了进一步说明这个风险,考虑一下一个以/www为网站根目录的服务器,如果db.inc被保存在/www/inc,它有了一个自已的URL  //example.org/inc/db.inc(假设example.org是主机域名)。通过访问该URL就可以看到db.inc以文本方式显示的源文件。无论你把该文件保存在/www哪个子目录下,都无法避免访问权限暴露的风险。
对这个问题最好的解决方案是把它保存在网站根目录以外的包含目录中。你无需为了达到包含它们的目的而把它们放至在文件系统中的特定位置,所有只要做的只是保证Web服务器对其有读取权限。因此,把它们放在网站根目录下是没有必要的风险,只要包含文件还位于网站根目录下,任何减少风险的努力都是徒劳的。事实上,你只要把必须要通过URL访问的资源放置在网站根目录下即可。毕竟这是一个公共的目录。
前面的话题对于SQLite数据库也有用。把数据库保存在当前目录下是非常方便的,因为你只要调用文件名而无需指定路径。但是,把数据库保存在网站根目录下就代表着不必要的风险。如果你没有采用安全措施防止直接访问的话,你的数据库就危险了。
如果由于外部因素导致无法做到把所有包含文件放在网站根目录之外,你可以在Apache配置成拒绝对.inc资源的请求。

代码如下:
<Files ~ "/.inc$">
  Order allow,deny
  Deny from all
</Files>

如果只是因为要举个例子而这么写的话,可以理解,毕竟大家学到了一些手段,但这个例子未免生硬了一点。实际上只要把该文件更名为db.inc.php就可以了。就好象房子破了个洞而不去修补,却在外面去造一个更大的房子把破房子套起来一样。
后面你还可以看到另外一种防止数据库访问权限暴露的方法,该方法对于共享服务器环境(在该环境下尽管文件位于网站根目录之外,但依然存在暴露的风险)非常有效。

 
上一篇:linux系统下ubuntu 中截图工具及快捷键设置  下一篇:每个极客都应该知道的一些Linux技巧
  • 中国这次强硬反击,传递了四个意味深长的信号! 2019-04-18
  • 黄紫昌独造5球给出最好榜样 张玉宁确定不回国吗? 2019-04-18
  • 特朗普是个典型的笑面虎,当面笑嘻嘻,底下捅刀子 2019-04-08
  • 过端午节要有“三味” 2019-04-08
  • 从拍场“老面孔”论投资的风险和机遇 2019-04-02
  • 5月份61城房价环比反弹 多地调控政策或再加码 ——凤凰网房产北京 2019-04-01
  • 因为中国人最朴素的观念就是安居乐业。家,是人立身之地,是所有努力可以得到支撑的基础,是所有固守能够成功反击的前提。这是游牧民族永远干不动搞不定这个民族的原因。它 2019-04-01
  • 回复@笑傲江湖V:七千二百多吧。 2019-03-30
  • 次仁卓玛一家的端午节 2019-03-30
  • 北欧的千湖之国被选为2018全球最幸福国家 2019-03-25
  • 东鹏控股拟发行1.5亿A股,二次上市进程加快 2019-03-23
  • 筑梦命运共同体 习近平的上合日历 2019-03-22
  • 劳动者能不能炒老板的鱿鱼?答案是不能 2019-03-20
  • 《今天我学习》第一集:如何理解党的十九大的鲜明主题 2019-03-18
  • 共同描绘历史新阶段的发展蓝图 2019-03-18
  • 874| 431| 5| 732| 363| 221| 401| 549| 320| 808|