今天来聊一聊服务器安全的问题。这几天一直在着手服务器攻防问题,修复一些漏洞,写代码的人真的要注意安全问题。千万不要相信用户的输入!今天用PHP 代码展示一下危险。 测试准备为了模拟,我在本地搭建了服务器环境,展示一个正常网站如何被攻击。 首先修改电脑本地host文件。改了之后就可以用test.com虚拟域名访问本地文件了。文件目录在“C:WindowsSystem32driversetc”
网站目录很简单,如下:
在网站入口中,引用了数据库配置文件,然后输出一句话来模拟网站首页。
在数据库配置文件中,我参照当前流行的框架ThinkPHP数据库配置文件,返回一个数据库基本信息数组,包括数据库的端口和密码。
接下来就是我们的重头戏,黑客后门文件。
你可能会觉得,就这?就这几行代码能干什么? 开始模拟攻击我们访问一下我们的网站
网站可以正常访问,没有任何问题
访问一下黑客文件,好像也没有问题 1、输出php版本信息
现在黑客已经知道你后台php版本,装了那些插件,数据库用的是什么数据库 2、网页重定向
可以跳转到 百度了,这表示,黑客已经搭好了一个运行代码的环境。现在通过你的网站,已经可以随便写一行代码都可以执行了 3、读取数据库配置信息
已经把你的密码什么的都弄到手了,你的网站什么数据,都可以修改了,怕不怕。甚至可以“删库跑路”!! 4、删除文件
看:1.txt文件被删除了
可以删除你网站上的文件了 5、修改文件
?config=// 读取数据库配置文件$info=file_get_contents("Conf/db.php");// 设置很多个换行符号$change=str_repeat("",50);// 用空格代替<?php $file= str_replace("
来看看你的db.php文件是怎么改变的
在文件头加入很多换行,你以为文件是空的,其实他已经在文件里加入一行跳转代码,无论别人怎么访问你的网站.都会跳到他写的网站去 攻击 End看完是不是大吃一惊?别慌:我们要如何防备呢? - 不要相信用户的输入!不要相信用户的输入!不要相信用户的输入!
- 在获取用户输入前一定要做过滤处理;
- 在服务器上,设置文件的权限,不要每个文件都可以执行脚本权限;
- 或者增加防篡改功能;
- 或者修改你服务器的安全组,修改22,21等默认端口,不要端口全开;
- 对整个站点进行扫描木马。
|