php防止sql注入

发布时间:2017-05-05 18:32:18 阅读数:2178
Sql注入式php应用中常见的漏洞之一,为什么会出现这样的漏洞呢?通常是因为开发者犯了两个错误:一是没有对输入的数据进行过滤,二是没有对发送到数据库的数据进行转义,这是两个特别重要的步骤,需要特别关注以减少程序错误。
进行sql注入,攻击者一般会从推测验证用户名和密码查询语句开始,通过查看源文件,假设表单中的字段为与数据表中的字段名相同,就很容易被破解了。那么php如何防止sql注入呢?下面为大家介绍几种方法,希望对大家有所帮助。
Php如何防止sql注入的方法有很多,我们为大家介绍一些简单的方法:
php配置文件中register_globals=off;设置为关闭状态.(作用将注册全局变量关闭);如接收POST表单的值使用$_POST['user'],假设设置为ON的话$user才接收值;
Php防范sql注入代码:
$keywords = addslashes($keywords); $keywords = 
str_replace("_","\_",$keywords);//转义掉”_” $keywords = 
str_replace("%","\%",$keywords);//转义掉”%”
页面Trace信息
当前页面 : /article/view?id=196
模板缓存 : /web/www/caijixia.cn/data/Runtime/system/Cache/43c6deff58a769345d769751556cd685.php
请求方法 : GET
通信协议 : HTTP/1.1
请求时间 : 2021-04-18 20:10:13
用户代理 : CCBot/2.0 (https://commoncrawl.org/faq/)
会话ID : pt219g534vb6n3trr51gv2q384
日志记录 : 4条日志
[ 2021-04-18T20:10:13+08:00 ] SQL: RunTime:0.000630s SQL = SHOW COLUMNS FROM sys_article
[ 2021-04-18T20:10:13+08:00 ] SQL: RunTime:0.000647s SQL = SELECT id,title FROM `sys_article` WHERE status=1 AND category>0 ORDER BY pv desc LIMIT 40
[ 2021-04-18T20:10:13+08:00 ] SQL: RunTime:0.000164s SQL = UPDATE `sys_article` SET `pv`=pv+1 WHERE id=196
[ 2021-04-18T20:10:13+08:00 ] SQL: RunTime:0.000201s SQL = SELECT * FROM `sys_article` `a`,`sys_content` `c` WHERE a.id=c.aid AND a.id=196 LIMIT 1
加载文件 : 20
[0] => /web/www/caijixia.cn/index.php
[1] => /web/www/caijixia.cn/define.inc.php
[2] => /web/www/caijixia.cn/framework/ThinkPHP.php
[3] => /web/www/caijixia.cn/data/Runtime/system/~runtime.php
[4] => /web/www/caijixia.cn/framework/Common/convention.php
[5] => /web/www/caijixia.cn/system/Conf/config.php
[6] => /web/www/caijixia.cn/config.inc.php
[7] => /web/www/caijixia.cn/system/Common/common.php
[8] => /web/www/caijixia.cn/Common/common.func.php
[9] => /web/www/caijixia.cn/framework/Common/extend.php
[10] => /web/www/caijixia.cn/system/Conf/htmls.php
[11] => /web/www/caijixia.cn/framework/Common/debug.php
[12] => /web/www/caijixia.cn/framework/Lib/Think/Util/Dispatcher.class.php
[13] => /web/www/caijixia.cn/framework/Lang/zh-cn.php
[14] => /web/www/caijixia.cn/framework/Lib/Think/Util/HtmlCache.class.php
[15] => /web/www/caijixia.cn/system/Lib/Action/ArticleAction.class.php
[16] => /web/www/caijixia.cn/framework/Lib/Think/Core/Model.class.php
[17] => /web/www/caijixia.cn/framework/Lib/Think/Db/Db.class.php
[18] => /web/www/caijixia.cn/framework/Lib/Think/Db/Driver/DbMysqli.class.php
[19] => /web/www/caijixia.cn/data/Runtime/system/Cache/43c6deff58a769345d769751556cd685.php