南非蜘蛛 又花成穷光蛋了 说:
hi
夜猫子 说:
hi
南非蜘蛛 又花成穷光蛋了 说:
你知道sql注入吗
夜猫子 说:
知道
南非蜘蛛 又花成穷光蛋了 说:
怎么防止magic_quotes_gpc为On时的sql注入
夜猫子 说:
都已经为On了还怎么注入啊?
南非蜘蛛 又花成穷光蛋了 说:
当然可以了
南非蜘蛛 又花成穷光蛋了 说:
http://www.enet.com.cn/esafe/inforcenter/A20040716325135.html
夜猫子 说:
给你看这个:http://www.php.net/manual/en/security.database.sql-injection.php
夜猫子 说:
那只有用刚才给你的链接里那样用sprintf对sql语句做预处理,会避免一些
南非蜘蛛 又花成穷光蛋了 说:
哦。这样呀
夜猫子 说:
另外还有一个办法就是把服务器上的php加密,或者至少加密关键的几个文件,比如config.php之类
南非蜘蛛 又花成穷光蛋了 说:
明了
南非蜘蛛 又花成穷光蛋了 说:
sprintf有什么作用
夜猫子 说:
比如这个sql
$sql = "select * from table where id = $id";
用sprintf预处理就应该用
$sql = sprintf('select * from table where id = %d', $id);
这样就只接受数字,不接受字符
夜猫子 说:
在我上边给你的那个链接里有提到这种方法
南非蜘蛛 又花成穷光蛋了 说:
addslashes()这个函数拿?
夜猫子 说:
http://www.php.net/manual/en/function.sprintf.php
夜猫子 说:
addslashes是逃逸' |等等字符用的
夜猫子 说:
magic_quota_gpc()实际上就是把http输入的字符用addslashes处理一遍
南非蜘蛛 又花成穷光蛋了 说:
哦
夜猫子 说:
那个文章里的注入用了ascii的方式绕过了addslashes的过滤,有点烦
南非蜘蛛 又花成穷光蛋了 说:
这种方法怎么防止拿?
夜猫子 说:
还好我现在多数的sql一般都采用了sprintf做预处理
南非蜘蛛 又花成穷光蛋了 说:
好像用了char()
南非蜘蛛 又花成穷光蛋了 说:
sprintf可以防止char()吗
夜猫子 说:
如果是严格的防范的话,对所有的值为字符类型的输入参数做检查,但是那样会很累的
夜猫子 说:
另外就是文件系统的问题了,刚才那篇文章里能够把文件读出另存,那说明www目录的文件系统权限不合理,一般来说脚本执行权限是无法写目录的
夜猫子 说:
即使攻击方把文件另存到了/tmp这种地方,他也无法通过http方式访问到
南非蜘蛛 又花成穷光蛋了 说:
一般www目录权限时644吧
夜猫子 说:
只要文件系统权限合理,应该是可以一定程度上防范的
南非蜘蛛 又花成穷光蛋了 说:
一般www目录权限时644吧
夜猫子 说:
反正我的php程序都没有权限写东西进硬盘
南非蜘蛛 又花成穷光蛋了 说:
哈哈
夜猫子 说:
哦,我又看了一下,文章里写文件是用的数据库权限,如果配置合理的话,更无法写了
夜猫子 说:
总之只要坚持权限最小化,可以避免很多麻烦
南非蜘蛛 又花成穷光蛋了 说:
就是说数据库权限也要最小化
夜猫子 说:
当然了
夜猫子 说:
还有终极无敌必杀技,chroot和jail,哈哈,轻易不使用,太麻烦了
南非蜘蛛 又花成穷光蛋了 说:
我已经用了chroot了
夜猫子 说:
呵呵,我把这个谈话记录发我们版行不?提醒其他人一下
南非蜘蛛 又花成穷光蛋了 说:
好的
南非蜘蛛 又花成穷光蛋了 说:
没有问题
此文章由 http://www.ositren.com 收集整理 ,地址为:
http://www.ositren.com/htmls/67174.html