PHP安全编程:防止源代码的暴露
来源:互联网 发布:单片机外包 编辑:程序博客网 时间:2024/06/03 18:43
关于包含的一个重要问题是源代码的暴露。产生这个问题主要原因是下面的常见情况:
对包含文件使用.inc的扩展名
包含文件保存在网站主目录下
Apache未设定.inc文件的类型
Apache的默认文件类型是text/plain
上面情况造成了可以通过URL直接访问包含文件。更糟的是,它们会被作为普通文本处理而不会被PHP所解析,这样你的源代码就会显示在用户的浏览器上。
避免这种情况很容易。只能重组你的应用,把所有的包含文件放在网站主目录之外就可以了,最好的方法是只把需要公开发布的文件放置在网站主目录下。
虽然这听起来有些疯狂,很多情形下能导致源码的暴露。我曾经看到过Apache的配置文件被误写(并且在下次启动前未发现),没有经验的系统管理员升级了Apache但忘了加入PHP支持,还有一大堆情形能导致源码暴露。
通过在网站主目录外保存尽可能多的PHP代码,你可以防止源代码的暴露。至少,把所有的包含文件保存在网站主目录外是一个最好的办法。
一些方法能限制源码暴露的可能性但不能从根本上解决这个问题。这些方法包括在Apache中配置.inc文件与PHP文件一样处理,包含文件使用.php后缀,配置Apache不能接受对.inc文件的直接请求:
虽然这些方法有其优点,但没有一个方法在安全性上能与把包含文件放在网站主目录之外的做法相比。不要依赖于上面的方法对你的应用进行保护,至多把它们当做深度防范来对待。
对包含文件使用.inc的扩展名
包含文件保存在网站主目录下
Apache未设定.inc文件的类型
Apache的默认文件类型是text/plain
上面情况造成了可以通过URL直接访问包含文件。更糟的是,它们会被作为普通文本处理而不会被PHP所解析,这样你的源代码就会显示在用户的浏览器上。
避免这种情况很容易。只能重组你的应用,把所有的包含文件放在网站主目录之外就可以了,最好的方法是只把需要公开发布的文件放置在网站主目录下。
虽然这听起来有些疯狂,很多情形下能导致源码的暴露。我曾经看到过Apache的配置文件被误写(并且在下次启动前未发现),没有经验的系统管理员升级了Apache但忘了加入PHP支持,还有一大堆情形能导致源码暴露。
通过在网站主目录外保存尽可能多的PHP代码,你可以防止源代码的暴露。至少,把所有的包含文件保存在网站主目录外是一个最好的办法。
一些方法能限制源码暴露的可能性但不能从根本上解决这个问题。这些方法包括在Apache中配置.inc文件与PHP文件一样处理,包含文件使用.php后缀,配置Apache不能接受对.inc文件的直接请求:
- <Files ~ "\.inc$">
- Order allow,deny
- Deny from all
- </Files>
虽然这些方法有其优点,但没有一个方法在安全性上能与把包含文件放在网站主目录之外的做法相比。不要依赖于上面的方法对你的应用进行保护,至多把它们当做深度防范来对待。
阅读全文
0 0
- PHP安全编程:防止源代码的暴露
- PHP安全编程:防止源代码的暴露
- PHP安全编程之防止源代码的暴露
- PHP防止错误信息显示暴露,影响安全的解决办法
- PHP安全编程:session劫持的防御session 数据暴露
- PHP安全编程之不要暴露数据库访问权限
- PHP安全编程之cookie暴露导致session被劫持
- PHP安全编程:不要暴露数据库访问权限
- PHP安全编程:cookie暴露导致session被劫持
- PHP安全编程:防止SQL注入
- php 安全基础 第八章 共享主机 源码暴露
- 防止php重复提交表单更安全的方法
- 防止php重复提交表单更安全的方法
- 安全编程: 防止缓冲区溢出
- 安全编程: 防止缓冲区溢出
- 安全编程: 防止缓冲区溢出
- 安全编程: 防止缓冲区溢出
- 安全编程: 防止缓冲区溢出
- 【Android】给Android Studio设置代理
- 在tomcat下修改jdk版本
- [Unity&]技能指示器skill indicator怎么做
- 会当凌绝顶,一览众山小
- 互联网协议入门(二)
- PHP安全编程:防止源代码的暴露
- Sql-存储过程
- JFreeChart详解——各类的简单介绍(一)
- 第3.1章 scrapy之pandas操作Mysql
- 1007. Maximum Subsequence Sum (25)
- GeoTools Eclipse 快速入门04
- 【Transition】Android炫酷的页面切换效果
- iOS 项目运行“ARC forbids Objective-C objects in struct”错误
- android 中如何扩大按钮的可点击范围