![网络攻防实战研究:MySQL数据库安全](https://wfqqreader-1252317822.image.myqcloud.com/cover/600/34171600/b_34171600.jpg)
1.1 Windows下PHP+MySQL+IIS安全实验平台的搭建
MySQL是流行的关系型数据库管理系统之一。关系型数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,从而提高了速度和灵活性。在 Web 应用方面,MySQL 是最好的RDBMS(Relational Database Management System,关系型数据库管理系统)应用软件之一。MySQL所使用的 SQL 语言是访问数据库时最常用的标准化语言。MySQL 软件采用双授权政策,分为社区版和商业版,体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,使 MySQL 成为大部分中小型网站的首选数据库软件。
目前,很多企业和个人都架设了属于自己的服务器。服务器市场分为多个体系,主要有Windows平台、Linux平台,其他平台以BSD为主。下面介绍一下各平台的优点和缺点。
· Windows 平台的优点是搭建比较容易,可维护性强,用户通过短时间培训就能很好地搭建自己需要的服务;缺点是安全漏洞比较多,服务器稳定性不高,如果由没有任何安全意识的管理员来维护,很容易被黑客入侵。
· Linux和BSD平台的优点是权限划分细致,服务器的稳定性众所周知是很高的,所以很多大型企业首选Linux和BSD平台;缺点是维护难度较高,不适合中小型企业(培训一个全能型的Linux和BSD系统管理员需要花费大量的金钱和时间)。
1.1.1 PHP的基本准备工作
1.选择配置php.ini文件
安装PHP之后,访问PHP的安装目录。在这里,可以看到两个php.ini文件,分别是php.ini-dist和php.ini-recommended。建议选择php.ini-recommended,因为这个文件经过了PHP官方的优化。将这个文件的名字改为“php.ini”,然后把它复制到Windows系统目录C:\windows下。
2.将libmysql.dll库文件复制到系统中
将libmysql.dll复制到系统目录中,目的是让PHP程序和MySQL数据库进行连接。如果使用的不是MySQL数据库,就不用复制这个文件了。在这里,把PHP安装目录下的libmysql.dll文件复制到C:\windows\system32目录下。
3.编辑php.ini文件
进入C:\windows目录,找到php.ini文件。编辑几个参数,让PHP能找到需要的组件。
(1)修改extension_dir参数
如图1-1所示,把“extension_dir="./"”修改成“extension_dir="D:/php/ext"”。在这里必须注意,要把路径修改成自己的配置环境,否则运行会失败。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_19_1.jpg?sign=1738940091-klub38XR25XYyUUGxd6iOGpMUlXBDw6g-0-4f232bf00eaca76bf38bff9efea6a615)
图1-1 修改extension_dir参数
(2)加载需要使用的模块
根据实际情况加载需要使用的模块。在笔者的配置环境中,需要加载 mysql、gd、mcry 模块。如图1-2所示,需要完成的工作是把“;extension=php_openssl.dll”前面的分号去掉(需要使用哪个模块,就去掉哪个模块前面的分号)。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_19_2.jpg?sign=1738940091-qEzDmA4cwgdGCtwL7gI2xyenFtqA9lpA-0-eacc3b0aa795079d8a4ade566f77d7a3)
图1-2 加载需要使用的模块
说明
· “.php”可以和任意数据库进行连接,并且能够很好地无缝工作。最经典的数据库是MySQL,还有MSSQL、Oracle等。如果数据库环境不是MySQL,就必须修改对应的模块。MSSQL对应的模块是php_mssql.dll,Oracle对应的模块是php_oci8.dll。
· 加载GD模块的作用是提供对图形的支持,例如Discuz!的加水印功能。
· mysql模块是使用MySQL数据库时必须加载的模块。
· mcrypt模块是phpMyAdmin需要使用的模块。如果觉得手工管理MySQL很麻烦,可以使用phpMyAdmin(它是一款非常强大的MySQL管理工具)。
1.1.2 MySQL的基本准备工作
如果读者有安装和配置MySQL数据库的经验,可以跳过本节内容。
1.运行MySQL安装程序
基本的安装操作等略过不讲,在这里重点讲解一下如何配置MySQL服务器。如图1-3所示,在MySQL的欢迎界面上单击“Next”按钮。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_20_1.jpg?sign=1738940091-YWkk8MjR96Tyr9hZm4QY7e9KbL5w9fur-0-8d14fcd13a34e205d25e841021dc9ba7)
图1-3 MySQL欢迎界面
2.选择安装类型
如图1-4所示,这是比较关键的一步——选择安装类型。“Detailed Configuration”的意思是手动精确配置,选中该项,我们就可以按照自己的需要配置服务器了(适合了解 MySQL 基本原理的网络管理员使用)。“Standard Configuration”是标准配置项,其作用是按照MySQL默认推荐的选项完成安装。因为我们只需要使用MySQL的标准功能,所以单击选中“Standard Configuration”单选按钮即可。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_20_2.jpg?sign=1738940091-921n2WuHdgmNLRbjanwuZExHyziVJOZS-0-4c79d44fba1fa6608670416dcd3bc157)
图1-4 选择安装类型
3.配置实例
在实例配置向导界面上也有两个选项,都比较容易理解。“Install As Windows Service”的意思是将MySQL作为Windows的系统服务安装,使MySQL能在开机时自动启动。“Include Bin Directory in Windows PATH”的意思是把 MySQL 的 bin 目录安装到环境目录中,其好处是任何打开的CMD.exe都可以执行MySQL程序。在这里,我们将两项全部勾选,并将“MySQL”作为服务的名称,如图1-5所示。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_21_1.jpg?sign=1738940091-m4GgqKeVDLAhi4WlWUTALHWAH181OIBT-0-efab911d16a291df710ea7d82ab0973c)
图1-5 配置实例
4.设置MySQL的密码
单击“Next”按钮,如图1-6所示,主要是基本的安全设置,例如设置root用户的密码。这里的配置原则是尽量复杂,并且一定不要使用root用户来安装PHP程序,例如Discuz!等。笔者建议建立一个专用的低权限用户来完成这些操作。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_21_2.jpg?sign=1738940091-6fx0b1ok2tGEwMZa5BnLEPVvloxnqgNG-0-dc48d1a97af38c39b0bb5a75c492fb18)
图1-6 设置MySQL密码和安全选项
在这里还有一个需要注意的地方:不要勾选“Enable root access from remote machines”复选框,因为勾选它表示允许root用户进行远程连接。在这种情况下,如果密码比较简单并开启了远程访问功能,一旦遭遇黑客的攻击,那么黑客获得的大部分权限都是系统权限——一定要注意!
5.安装MySQL
现在开始安装MySQL。如图1-7所示,如果所有的选项都被打勾,表示MySQL安装成功(会给出提示信息)。如果安装不成功,则需要重新安装。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_22_1.jpg?sign=1738940091-ze7AMPXFWSfycB2zLRbFN5d426iGBW5p-0-9ec9bce43e50cce8c8a8129566877e0d)
图1-7 成功安装MySQL
MySQL服务器安装成功后,可以通过MySQL Workbench对实例进行管理。如图1-8所示,输入密码,经过验证,就可以在图形化界面上进行操作了。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_22_2.jpg?sign=1738940091-D5hByzEQNezmO3K41lYoYqSzK4qz94gP-0-929718c86e4e3ba876c0a975f87a9ae5)
图1-8 使用MySQL Workbench进行管理
1.1.3 让IIS支持PHP
1.新建网站
因为我们配置的是Windows下的网站,所以需要建立一个新的站点。单击“开始”→“所有程序”→“管理工具”→“Internet信息服务(IIS)管理器”选项,如果一切正常,会弹出如图1-9所示的界面。
如图1-10所示,右键单击“网站”文件夹,在弹出的快捷菜单中选择“新建”选项,然后选择“网站”选项,会弹出网站创建向导。单击“下一步”按钮,继续进行配置。
2.输入描述信息
如图1-11所示,输入网站的描述信息。在这里可以填写对应网站的名称,主要用于标识和区分。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_23_1.jpg?sign=1738940091-p0yfWSmJsKfiILb3rJ0inymLifPw5x0f-0-8275c6452b06cd104d096f33d0cecabd)
图1-9 打开信息服务器管理器
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_23_2.jpg?sign=1738940091-8uIDVpzNSOWSQiCjqIZU2ng3Ck8g5sdC-0-210650483c4c1b1fb1673032b4c55798)
图1-10 新建网站
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_23_3.jpg?sign=1738940091-otPYwxxPUFvwTH5kidmUnHy5blu9xWsh-0-e1540825fdb41a4dcd46ead674c6bdd7)
图1-11 输入网站的描述信息
3.设置主机头
这里有一个重点需要说明,就是网站的主机头。其实,在这里可以配置虚拟主机,也就是在一台服务器上安装多个网站(填入对应的网址即可)。在“网站IP地址”下拉列表框中选择“(全部未分配)”选项(这样本机所有网卡的所有IP地址就都可以被访问了),保持“网站TCP端口”的默认设置(80端口),如图1-12所示。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_24_1.jpg?sign=1738940091-sDLQdxyIqsQd7Fx0XNap1co4QDZftDRg-0-8a21d6e0ee7cb118cf750304fab869f0)
图1-12 设置主机头
4.设置网站主目录
如图1-13所示,选择网站的主目录(对应于自己的网站目录就可以了),“允许匿名访问网站”复选框是必须勾选的。如果网站是基于Windows集成认证的,可以不勾选此项,但对其他大部分网站必须勾选此项。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_24_2.jpg?sign=1738940091-spqsaeZojBE55kf4OCUFG41L78VHz9ls-0-5bb28d9c2bb2a26bc22cc16e0b4ad6b5)
图1-13 设置网站主目录
5.设置网站访问权限
单击“下一步”按钮,打开如图1-14所示的“网站访问权限”界面。在这里需要注意的是,必须勾选前两个复选框,即“读取”和“运行脚本(如ASP)”。单击“下一步”按钮,完成网站的配置。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_25_1.jpg?sign=1738940091-4ui55BbbgcJqd6eazWPQlMHIAZrclIR6-0-799f18cb1223df301179991269d0aeb1)
图1-14 设置网站访问权限
说明
使用新建网站向导设置网站后,可以在IIS管理器中修改这些设置。
6.配置IIS支持PHP
网站配置完成后,就可以开始配置IIS对PHP的支持了。在开始配置前,最好让网站的运行暂停。
(1)配置网站
右键单击新建的“test”网站,在弹出的快捷菜单中选择“属性”选项,如图1-15所示,打开站点属性对话框,然后单击“主目录”标签。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_25_2.jpg?sign=1738940091-Zlk7fl4M5GIrfxcXHES412NhytFRZzsR-0-528df1cde577455b8c14cb674d2b3fd0)
图1-15 配置网站
(2)配置PHP扩展
单击“配置”按钮,在弹出的“应用程序配置”对话框中单击“添加”按钮,添加PHP的ISAPI支持。设置可执行文件为“D:\PHP\php5isapi.dll”(PHP目录下的php5isapi.dll),扩展名为“.php”(一定要注意“php”前面的“.”),限制动作为“GET,POST”,如图1-16所示。单击“确定”按钮,并在“应用程序扩展”对话框中查看PHP扩展是否加载成功。若成功,则单击“确定”按钮关闭对话框,回到站点属性对话框。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_26_1.jpg?sign=1738940091-hcphqnE6j142oC2tBFY9IMg3Eko6mC5n-0-18095fc3e9ea73333a7519b90a1261f0)
图1-16 配置PHP扩展
(3)设置默认文档
单击“文档”标签,如图1-17所示,勾选“启用默认内容文档”复选框,根据网站程序首页文件名添加对应的页面名称,一般为 index.php、default.php(网站中如果有静态页面,则可能包含index.htm、index.html)。添加完成,单击“确定”按钮,关闭站点属性对话框,回到IIS管理器界面。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_26_2.jpg?sign=1738940091-Dv1RlD98km8qQ97Z6VChdZl9HL9oJMVP-0-7b6a6cea309ea87e7560b11c4fcbee8f)
图1-17 设置默认文档
(4)添加PHP
如图1-18所示,选择添加PHP。在这里,一定要勾选“设置扩展状态为允许”复选框,否则无法支持PHP。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_27_1.jpg?sign=1738940091-1wxKDg9XztkAG3LeTzyGahHIGvV2XAIA-0-5a856d7c2f4c2ef53229600a6c7e993a)
图1-18 添加PHP
1.1.4 测试PHP环境
我们已经基本完成了网站的配置。启动test站点(因为我们在开始配置的时候将它关闭了),进入Web目录,新建一个index.php文件,其内容是“<?php phpinfo();?>”。然后,打开该站点,如图1-19所示,表示成功完成了IIS+MySQL+PHP的配置。
![](https://epubservercos.yuewen.com/E55E1D/18279401208274706/epubprivate/OEBPS/Images/35530_27_2.jpg?sign=1738940091-f478qUctF8h0WNcmVw48SFtSMkEEFZxr-0-69cb6822a124dc7e40ef5729e66a09e1)
图1-19 测试PHP环境
说明
通过phpinfo()函数可以查看配置详情。