php防止sql注入简单分析
本文实例分析了php防止sql注入简单方法。分享给大家供大家参考。具体如下:
这里只说一个简单的方法
防止Sql注入的方法有很多,这里要说的其实就是漏洞演练平台Dvwa里的一种方式
直接看high级别的就可以了
$id = $_GET['id']; $id = stripslashes($id); $id = mysql_real_escape_string($id); if (is_numeric($id)){ $getid = "SELECT first_name,last_name FROM users WHERE user_id='$id'"; $result = mysql_query($getid) or die('<pre>'.mysql_error().'</pre>'); $num = mysql_numrows($result);
可见它的处理方式是首先通过 stripslashes 函数删除变量中的反斜杠 \,
然后再使用函数mysql_real_escape_string 转义特殊字符就行了。
所以当我们编写类似代码的时候
$getid="SELECT first_name,last_name FROM users WHERE user_id='$id'";
我们最简单的方法是
直接将变量$id 进行stripslashes 和 mysql_real_escape_string 处理。
注意: 这里并不是说这样就安全了, 这只是其中一种方式我可没说这就安全了。 更多的还要依据实际情况进行处理。
希望本文所述对大家的php程序设计有所帮助。
相关推荐
-
php防止sql注入之过滤分页参数实例
本文实例讲述了php防止sql注入中过滤分页参数的方法.分享给大家供大家参考.具体分析如下: 就网络安全而言,在网络上不要相信任何输入信息,对于任何输入信息我们都必须进行参数过滤.对此,我们先来看看下面的实例: 复制代码 代码如下: $this->load->library ( 'pagination' ); $config ['base_url'] = site_url () . '/guest/show'; $config ['total_rows'] = $c; $config ['pe
-
浅析php过滤html字符串,防止SQL注入的方法
批量过滤post,get敏感数据 复制代码 代码如下: $_GET = stripslashes_array($_GET);$_POST = stripslashes_array($_POST); 数据过滤函数 复制代码 代码如下: function stripslashes_array(&$array) { while(list($key,$var) = each($array)) { if ($key != 'argc' && $key != 'argv' &&
-
php中$_GET与$_POST过滤sql注入的方法
本文实例讲述了php中$_GET与$_POST过滤sql注入的方法,分享给大家供大家参考.具体分析如下: 此函数只能过滤一些敏感的sql命令了,像id=1这种大家还是需要自己简单过滤了. 主要实现代码如下: 复制代码 代码如下: if (!get_magic_quotes_gpc()) { if (!empty($_GET)) { $_GET = addslashes_deep($_GET); } if (!empty($_POST)) { $_POST = addslashes_deep($
-
php中addslashes函数与sql防注入
本文实例讲述了php中addslashes函数与sql防注入.分享给大家供大家参考.具体分析如下: addslashes可会自动给单引号,双引号增加\\\\\\,这样我们就可以安全的把数据存入数据库中而不黑客利用,参数'a..z'界定所有大小写字母均被转义,代码如下: 复制代码 代码如下: echo addcslashes('foo[ ]','a..z'); //输出:foo[ ] $str="is your name o'reilly?"; //定义字符串,其中包括需要转义的字符 e
-
php中sql注入漏洞示例 sql注入漏洞修复
在开发网站的时候,出于安全考虑,需要过滤从页面传递过来的字符.通常,用户可以通过以下接口调用数据库的内容:URL地址栏.登陆界面.留言板.搜索框等.这往往给骇客留下了可乘之机.轻则数据遭到泄露,重则服务器被拿下. 一.SQL注入的步骤 a) 寻找注入点(如:登录界面.留言板等) b) 用户自己构造SQL语句(如:' or 1=1#,后面会讲解) c) 将sql语句发送给数据库管理系统(DBMS) d) DBMS接收请求,并将该请求解释成机器代码指令,执行必要的存取操作 e) DBMS接
-
php防止sql注入示例分析和几种常见攻击正则表达式
注入漏洞代码和分析 复制代码 代码如下: <?php function customError($errno, $errstr, $errfile, $errline) { echo "<b>Error number:</b> [$errno],error on line $errline in $errfile<br />"; die(); } set_error_handler("customError"
-
php简单实现sql防注入的方法
本文实例讲述了php简单实现sql防注入的方法.分享给大家供大家参考,具体如下: 这里没有太多的过滤,主要是针对php和mysql的组合. 一般性的防注入,只要使用php的 addslashes 函数就可以了. 以下是一段copy来的代码: PHP代码: $_POST = sql_injection($_POST); $_GET = sql_injection($_GET); function sql_injection($content) { if (!get_magic_quotes_gpc
-
php防止sql注入代码实例
放到公用调用文件(如conn数据库链接文件),对所有GET或POST的数据进行过滤特殊字符串,以实现简单有效的SQL注入过滤 复制代码 代码如下: Function inject_check($sql_str) { return eregi('select|insert|and|or|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile', $sql_str);}if (inject_check($_SERVER['Q
-
PHP MYSQL注入攻击需要预防7个要点
1:数字型参数使用类似intval,floatval这样的方法强制过滤. 2:字符串型参数使用类似mysql_real_escape_string这样的方法强制过滤,而不是简单的addslashes. 3:最好抛弃mysql_query这样的拼接SQL查询方式,尽可能使用PDO的prepare绑定方式. 4:使用rewrite技术隐藏真实脚本及参数的信息,通过rewrite正则也能过滤可疑的参数. 5:关闭错误提示,不给攻击者提供敏感信息:display_errors=off. 6:以日志的方式
-
php防止SQL注入详解及防范
一个是没有对输入的数据进行过滤(过滤输入),还有一个是没有对发送到数据库的数据进行转义(转义输出).这两个重要的步骤缺一不可,需要同时加以特别关注以减少程序错误.对于攻击者来说,进行SQL注入攻击需要思考和试验,对数据库方案进行有根有据的推理非常有必要(当然假设攻击者看不到你的源程序和数据库方案),考虑以下简单的登录表单: 复制代码 代码如下: <form action="/login.php" method="POST"><p>Userna
-
PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等)
浅谈Php安全和防Sql注入,防止Xss攻击,防盗链,防CSRF 前言: 首先,笔者不是web安全的专家,所以这不是web安全方面专家级文章,而是学习笔记.细心总结文章,里面有些是我们phper不易发现或者说不重视的东西.所以笔者写下来方便以后查阅.在大公司肯定有专门的web安全测试员,安全方面不是phper考虑的范围.但是作为一个phper对于安全知识是:"知道有这么一回事,编程时自然有所注意". 目录: 1.php一些安全配置(1)关闭php提示错误功能(2)关闭一些"坏
-
php SQL防注入代码集合
SQL防注入代码一 复制代码 代码如下: <?php /** * 防sql注入 * @author: zhuyubing@gmail.com * */ /** * reject sql inject */ if (!function_exists (quote)) { function quote($var) { if (strlen($var)) { $var=!get_magic_quotes_gpc() ? $var : stripslashes($var); $var = str_rep
-
PHP中防止SQL注入方法详解
问题描述: 如果用户输入的数据在未经处理的情况下插入到一条SQL查询语句,那么应用将很可能遭受到SQL注入攻击,正如下面的例子: 复制代码 代码如下: $unsafe_variable = $_POST['user_input']; mysql_query("INSERT INTO `table` (`column`) VALUES ('" . $unsafe_variable . "')"); 因为用户的输入可能是这样的: 复制代码 代码如下: value');
-
PHP防范SQL注入的具体方法详解(测试通过)
一个优秀的PHP程序员除了要能顺利的编写代码,还需要具备使程序处于安全环境下的能力.今天我们要向大家讲解的是有关PHP防范SQL注入的相关方法. 说到网站安全就不得不提到SQL注入(SQL Injection),如果你用过ASP,对SQL注入一定有比较深的理解,PHP的安全性相对较高,这是因为MYSQL4以下的版本不支持子语句,而且当php.ini里的 magic_quotes_gpc 为On 时. 提交的变量中所有的 ' (单引号), " (双引号), \ (反斜线) and 空字符会自动转为
-
PHP中怎样防止SQL注入分析
本文实例分析了PHP中怎样防止SQL注入.分享给大家供大家参考.具体分析如下: 一.问题描述: 如果用户输入的数据在未经处理的情况下插入到一条SQL查询语句,那么应用将很可能遭受到SQL注入攻击,正如下面的例子: 复制代码 代码如下: $unsafe_variable = $_POST['user_input']; mysql_query("INSERT INTO `table` (`column`) VALUES ('" . $unsafe_variable . "')
随机推荐
- 可以改变一生的五句话
- 简单的前端js+ajax 购物车框架(入门篇)
- Apache Shiro 框架简介
- 一个可拖拽列宽表格实例演示
- TextBox的宽度随输入的文本的大小而改变的js代码
- .net 中按.(点)无法智能提示的bug解决方案
- PHP显示今天、今月、上月、今年的起点/终点时间戳的代码
- python笔记(2)
- ASP中让Replace替换不区分大小写的方法
- PHP 第二节 数据类型之数值型
- 浅析JavaScript中命名空间namespace模式
- ajax提交整个from表单示例代码
- Nginx的伪静态配置中使用rewrite来实现自动补全的实例
- javascript中的undefined 与 null 的区别 补充篇
- 远程如何启用Win 2003桌面
- 重装系统并必须注意的几个小技巧
- C#自定义类型强制转换实例分析
- C++实现查壳程序代码实例
- 从txt中读入数据到数组中(fscanf)的实现代码
- 详解Nuxt.js Vue服务端渲染摸索