php 防止查询的sql攻击方法总结
发布:smiling 来源: PHP粉丝网 添加日期:2014-08-21 10:26:10 浏览: 评论:0
防止sql注入不但是新学的程序员朋友需要深入了解的一个重要知识点之外,还是我们这些写了多年程序的朋友也必须注意的东西,下面给新手介绍php 防止查询的sql攻击的一些例子,希望对各位会有所帮助.
一个入门级别的例子,代码如下:
- $k = $_REQUEST['k'];
- $k = addslashes($k);//转义:单引号,双引号,反斜线,NULL
- $k = str_replace('%', '\%', $k);
- $k = str_replace('_', '\_', $k);
- $sql = "select * from users where name like '%$k%'";
- if(!emptyempty($k)){
- $res = mysql_query($sql, $con) or die(mysql_error());
- if($row = mysql_fetch_assoc($res)){
- foreach($row as $k=>$v){
- echo $row[$k].':'.$row[$v].'<br />';
- }
- }
- //开源代码phpfensi.com
- }else{
- echo '******';
- }
补充:mysql_real_escape_string();所以得SQL语句如果有类似这样的写法:
"select * from cdr where src =".$userId; 都要改成 $userId=mysql_real_escape_string($userId)
例子代码如下:
- <?php
- $clean = array();
- $mysql = array();
- $clean['last_name'] = "O'Reilly";
- $mysql['last_name'] = mysql_real_escape_string($clean['last_name']);
- $sql = "INSERT
- INTO user (last_name)
- VALUES ('{$mysql['last_name']}')";
- ?>
所有有打印的语句如echo,print等,在打印前都要使用htmlentities() 进行过滤,这样可以防止Xss,注意中文要写出,代码如下:
htmlentities($name,ENT_NOQUOTES,GB2312).
Tags: php sql攻击 php防止攻击
- 上一篇:PHP登录中的防止sql注入方法分析
- 下一篇:php中禁止危险php函数的例子
相关文章
- ·PHP 是什么?(2013-11-12)
- ·Php.ini文件位置在哪里 Php.ini文件找不到(2013-11-12)
- ·PHP 数据类型(2013-11-12)
- ·php 获取当前脚本的url(2013-11-12)
- ·php技术生成静态页面的实现(2013-11-13)
- ·缺陷月项目启动 披露PHP脚本语言漏洞(2013-11-13)
- ·在PHP中全面阻止SQL注入式攻击(2013-11-13)
- ·php生成随机密码的几种方法(2013-11-13)
- ·PHP中使用FCKeditor2.3.2配置(2013-11-13)
- ·如何使用PHP开发高效的WEB系统(2013-11-13)
- ·php:树形结构的算法(2013-11-13)
- ·php4和php5区别(2013-11-13)
- ·php数据库连接(2013-11-13)
- ·如何正确理解PHP的错误信息(2013-11-13)
- ·php页面漏洞分析及相关问题解决(2013-11-13)
- ·当在连接PHP时,抱怨一些数值没有定义参考?(2013-11-27)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)