现在的位置: 首页 > 综合 > 正文

PHP安全基础 - 包含[整理]

2017年12月26日 ⁄ 综合 ⁄ 共 510字 ⁄ 字号 评论关闭
文章目录

导读:大项目做模块化文件分离,我不知道书中所指是物理分离还是逻辑分离。

在《代码整洁之道》中提到,代码的物理分离远比逻辑分离要有价值。

使用*_once 代替inldue 和 require。

详细:

1 源码暴露

代码暴露的原因有:

-对包含的文件使用.inc的扩展名

-包含文件保存在网站的注目录下

-web server未设定.inc文件的类型

-web server的默认文件类型是text/plain

而这些情况下,都是可以通过URL直接访问包含文件的。解决方案有:

-将所有的包含文件放置在应用目录之外

-配置web server限制.inc文件的解析

推荐使用第一种方案。(我现在工作的环境就是使用了这一方案,但是,包含方案设定不合理,给开发带来了巨大的阻碍。)

2 后门URL

后门URL是指虽然无需直接调用的资源能直接通过URL访问。

这么做是因为应用不是单入口的。如果是单入口就可以很好的避免这个问题。

3 文件名操纵

如下面的代码:

include_once '/cache/' . $_GET['username'] . '.html';

所以,不要使用用户输入去包含一个文件。

4 代码注入

这就是没有过滤用户输入的另一个特别危险的做法。记住:

任何用户输入都要做过滤。

抱歉!评论已关闭.