马丁博客


php 安全问题

2011-07-02 10:27, lamp, by , 27 views.

做web开发,相信搭建都知道一些安全基本知识,”千万不能相信客户端数据“。而php又是一种弱类型语言。很多人在开发过程中忽略了类型转换,参数过滤直接量成不可估量的后果。

不使用过滤函数可能出现以下情况:

数据库被(sql)注入。直接可以导致你的系统崩溃,系统数据丢失,用户信息丢失。网站被挂马,遇到文件处理则可以将你的网站文件删除。

另外值得一提的是很多人认为开启php安全模式就万事大吉了。其实不然,很多注入者往往绕过正面,进行侧面进攻。

使用 0×7e,0×27等(ASCII码)字符串来充当引号,而php又无法过滤。注入的一般方式都是在参数里面加入很多mysql sql语法,去获取敏感数据信息。

exp:

and(select 1 from(select count(*),concat((select(select(select concat(0x7e,0x27,phpcms_member.username,0x27,0x7e)from phpcms_member limit0,1))from information_schema.tableslimit0,1),floor(rand(0)*2))x from information_schema.tablesgroupby x)a)and1=1

mysql information_schema.tables 所有用户都可见可查,能查出所有表结构信息,数据库信息。

php开源系统很多,很多开源系统大家知道数据结构,已级敏感信息表。(这里当然也包括不法分子)

这里指的敏感信息:往往是一些用户信息,管理端信息。现在md5的穷举一直在进行着。很多的md5加密之后的密码仍然能被解密成明文。

很多系统都做了相应的安全提升。

下面介绍以下常见手段:

使用过滤函数,php filter 安全过滤函数.md5(  md5(‘用户密码’) . ‘私钥’ ) 得出加密结果。常用的php开源系统后台一定要修改目录名。很多系统后台直接使用admin作为后台入口。不要将phpmyadmin等数据库操作软件安置在网站可见目录。

等等。。之所以这样是由于现在大量存在扫描工具去扫描这样的管理端。

下面是惊心的一张图



发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>