关于SQL注入式攻击的,讨论一下PHP与数据的安全性问题. 刚刚脑子有点乱.POST的方法还是要全局替换的.. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 PHP注入是比较危险的问题,呵呵,以前流行对ASP下手,现在的黑客都爱对PHP下手~~~~我一个网友专爱干这个,他说他分析了Discuz3.12的源代码以后就发现好几非常严重的漏洞,呵呵,能够轻易的成为后台管理员.......其实我觉得防范的有几个方法:1. 过滤一些特殊危险的变量2. 程序中尽量使用session,少用Cookie,能防止跨站脚本攻击3. 上传文件注意对文件扩展名和类型的控制,防止一些危险文件的上传4. php.ini中要设置严格,包括打开安全模式,register_global = off等设置,5. 服务器端对运行web server用户权限的控制,一般nobady保证安全,同时对web的目录权限设置6. 对一些危险函数的控制,包括system(),exec()等.别的还没想到,呵呵~~~高手指点! 我在对数据库操作类会把没一个字段自动替换'的。在传入的参数如果是整数,会用(int)强制转换一下 -------源-------PHP里面已经自带了一个函数.用AddSlashes即可.不过这样做有一点不好.就是所有的插入数据库中的文件都会多一些"/",虽然说可以用StripSlashes来去掉.但总觉得不爽.----------------这种说法不对,addslashes不会在数据库中增加'/',这是sql语句的转义,至于有的程序会重复增加'/'的情况是他程序写得不好,他把'/'又返还客户端了 gundamzaku (Z钢弹) 我都跟你在qq上说过了.居然还发帖子上来了....$var1=addslashes($var)其实很简单:在数据的语句中用到变量都用'$var1'括起来...就可以了..以后要取出数据来你就可以用stripslashes()来返回..那个主入技术对你就没有任何干扰了..对了你应该知道我是谁吧..:) oldSQL打好几年前就有你说的数据库的数据多“\”那是你程序写的不好! 其实很简单:在数据的语句中用到变量都用'$var1'括起来...就可以了..------------------------------------------------------------------------用''是没效果了,人家输入',你的数据就出错了。在MySQL里,两个''就是一个转意基本赞同heiyeshuwu(黑夜路人) 啊..数据库多"\"这个是我猜想的啦其实我还没有正式用过addslashes这个函数的~T_T我只是想一起讨论一下.tod204(八十年代) 我认得你. .........都在说什么啊mysql是\',mssql是'' to countstars(深空)兄..你的变量里面有"'"但是我说过了可以用addslashes()来转义呀...这个我好象说了吧.. 正如陈辉兄说的那样...addslashes不会在数据库中增加'/',这是sql语句的转义,至于有的程序会重复增加'/'的情况是他程序写得不好,他把'/'又返还客户端了stripslashes()可以去掉"/"返回页面... 请教一个字符串分割问题 通过odbc查询表,怎么获得查询出来的行数,急急!! 如何删除一条数据的同时将这条数据插入另一张表 !!!急,怎么获取<select>的所有option项的值 求助 关于数据库编码问题 兄弟姐妹,注册时怎么样较好的判断用户名是否存在? 问一个关于用header重定向的问题 PHP连接mysql返回结果问题, php生成xml问题 从表单上传上来的图片,我想将它存到服务器的某个目录,并将连接存入mysql,以便在浏览器中能够根据数据库的内容动态的显示图片,并且还想 auto.inc放到哪里?呢 办公系统的一个问题,回答有高分
我一个网友专爱干这个,他说他分析了Discuz3.12的源代码以后就发现好几非常严重的漏洞,呵呵,能够轻易的成为后台管理员.......其实我觉得防范的有几个方法:
1. 过滤一些特殊危险的变量
2. 程序中尽量使用session,少用Cookie,能防止跨站脚本攻击
3. 上传文件注意对文件扩展名和类型的控制,防止一些危险文件的上传
4. php.ini中要设置严格,包括打开安全模式,register_global = off等设置,
5. 服务器端对运行web server用户权限的控制,一般nobady保证安全,同时对web的目录权限设置
6. 对一些危险函数的控制,包括system(),exec()等.别的还没想到,呵呵~~~高手指点!
在传入的参数如果是整数,会用(int)强制转换一下
PHP里面已经自带了一个函数.用AddSlashes即可.不过这样做有一点不好.就是
所有的插入数据库中的文件都会多一些"/",虽然说可以用StripSlashes来去掉.但总觉得不爽.
----------------
这种说法不对,addslashes不会在数据库中增加'/',这是sql语句的转义,至于有的程序会重复增加'/'的情况是他程序写得不好,他把'/'又返还客户端了
居然还发帖子上来了....
$var1=addslashes($var)
其实很简单:在数据的语句中用到变量都用'$var1'括起来...就可以了..
以后要取出数据来你就可以用stripslashes()来返回..那个主入技术对你就没有任何干扰了..对了你应该知道我是谁吧..:)
你说的数据库的数据多“\”那是你程序写的不好!
------------------------------------------------------------------------用''是没效果了,人家输入',你的数据就出错了。在MySQL里,两个''就是一个转意
基本赞同heiyeshuwu(黑夜路人)
其实我还没有正式用过addslashes这个函数的~
T_T我只是想一起讨论一下.
tod204(八十年代) 我认得你.
都在说什么啊
mysql是\',mssql是''
你的变量里面有"'"但是我说过了可以用addslashes()来转义呀...
这个我好象说了吧..
addslashes不会在数据库中增加'/',这是sql语句的转义,至于有的程序会重复增加'/'的情况是他程序写得不好,他把'/'又返还客户端了stripslashes()可以去掉"/"返回页面...