一、取证需求趋势
二、快速分析思路
2.1 面向过程的mysql连接
2.2 面向对象的mysql连接
2.3 PDO (PHP Data Objects)
三、php常见的web框架
3.1 ThinkPHP框架
3.2 Laravel框架
四、小结
以下文章来源于万宏蜀盾科技 ,作者万宏蜀盾
一、取证需求趋势
越来越多的电子数据取证中涉及到服务器、docker容器等平台化的取证需求,而数据库又是核心数据所在,如何快速从服务器中部署的网站代码里筛查出数据库相关信息显得尤为重要。
享有开发网站的“最流行”语言PHP(“PHP: Hypertext Preprocessor”,即超文本预处理器)是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入到 HTML中,尤其适合 web 开发,而且PHP语言拥有广泛的开源项目可供直接使用或二次开发。
二、快速分析思路
下面以mysql为例,介绍各个常用的网站开发语言环境下的数据库相关信息查找思路。
核心思路是通过php中连接数据库的函数进行快速定位,然后再根据调用情况逐层分析,抽丝剥茧地筛查出所有的连接数据库信息。
数据库连接信息出现在php代码中常见的有2中方式,以配置形式的字符串或者URL地址,配置文件中的字符串形式示例如下:
URL地址结构以mysql为例:mysql://root:[email protected]/forge?charset=UTF-8
URL 通常遵循标准架构约定:driver://username:password@host:port/database?options
通常情况下阿里云rds的数据库连接大都以URL形式出现,如 “rm-2zehb9oer8n24525f6co.mysql.rds.aliyuncs.com
”
PHP中连接mysql数据库的方式有3种:
2.1 面向过程的mysql连接
也称Original MySQL,PHP4版本的MYSQL扩展,从PHP5起已经被废弃,并从PHP7开始已经被移除。
代码示例如下:
2.2 面向对象的mysql连接
也称MySQLi,即MySQL增强扩展,在php5版本以后。
代码示例如下:
2.3 PDO (PHP Data Objects)
是PHP应用中的一个数据库抽象层规范。
当然一般情况下,php开发人员会将代码中使用到的连接数据库需要使用数据库配置文件config.php,一般情况下该文件在项目根目录下,也可根据文件名搜索来查找到文件位于其他目录下的情况。
三、php常见的web框架
在纷繁复杂的php开源项目中,经常会使用到一些成熟且稳定的php框架,下面以常用的2种php框架为例简要介绍其中的工程目录结构及相关作用,可以帮助快速定位数据库连接配置信息。
3.1 ThinkPHP框架
Thimphu是一个快速、简单的基于MVC和面向对象的轻量级PHP开发框架,ThinkPHP框架下的数据库连接信息位于配置目录下,根据不同项目有所区别。
单应用模式
:
对于单应用模式来说,配置文件和目录很简单,根目录下的config目录下面就是所有的配置文件。每个配置文件对应不同的组件,也可以自定义。
多应用模式
:
在多应用模式下,配置分为全局配置和应用配置。
全局配置:config目录下面的文件就是项目的全局配置文件,对所有应用有效。
应用配置:每个应用可以有独立配置文件,相同的配置参数会覆盖全局配置。
3.2 Laravel框架
Laravel框架是一个流行的 MVC模式的PHP 框架,以其易用性和强大的功能特性成为应用较为广泛的框架。
Laravel框架目录中最为重要的目录为root(根目录)及app目录,大致结构如下。
数据库服务的配置位于应用程序的root/config/database.php配置文件或者root/.env文件中,需要说明的是root/.env文件是的DotEnv PHP库中定义的全局配置文件,文件中的任何变量都.env可以被外部环境变量(例如服务器级或系统级环境变量)覆盖。
四、小结
在基于php源代码分析数据库连接信息时,可以分为3步
1.定位config.php、database.php、.env等3个配置文件名;
2.搜索mysql_connect、mysqli、PDO等数据库连接函数;
3.筛查常用连接字符串信息。如host、username、database、rds、aliyuncs等。
标签:PHP,配置文件,数据库,mysql,php,连接 From: https://www.cnblogs.com/o-O-oO/p/18392671