php防止sql注入之过滤分页参数实例
本文实例讲述了php防止sql注入中过滤分页参数的方法。分享给大家供大家参考。具体分析如下:
就网络安全而言,在网络上不要相信任何输入信息,对于任何输入信息我们都必须进行参数过滤。对此,我们先来看看下面的实例:
$this->load->library ( 'pagination' );
$config ['base_url'] = site_url () . '/guest/show';
$config ['total_rows'] = $c;
$config ['per_page'] = $pernum = 15;
$config ['uri_segment'] = 3;
$config ['use_page_numbers'] = TRUE;
$config ['first_link'] = '第一页';
$config ['last_link'] = '最后一页';
$config ['num_links'] = 5;
$this->pagination->initialize ( $config );
if (! $this->uri->segment ( 3 )) {
$currentnum = 0;
} else {
$currentnum = is_numeric($this->uri->segment ( 3 ))?(intval($this->uri->segment ( 3 ) - 1)) * $pernum:0;
}
$current_page=is_numeric($this->uri->segment ( 3 ))?intval($this->uri->segment ( 3 )):1;
if($current_page){
$data ['title'] = '第'.$current_page.'页-留言本-防SQL注入测试';
}
else{
$data ['title'] = '留言本-防SQL注入测试';
}
$data ['liuyan'] = $this->ly->getLy ( $pernum, $currentnum );
其中:
$current_page=is_numeric($this->uri->segment ( 3 ))?intval($this->uri->segment ( 3 )):1;
$currentnum = is_numeric($this->uri->segment ( 3 ))?(intval($this->uri->segment ( 3 ) - 1)) * $pernum;
这两句判断了参数是否为数字。防止非法字符输入。
希望本文所述对大家的PHP程序设计有所帮助。
相关推荐
-
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防止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注入代码实例
放到公用调用文件(如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中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简单实现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注入的具体方法详解(测试通过)
一个优秀的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 . "')
-
php防止SQL注入详解及防范
一个是没有对输入的数据进行过滤(过滤输入),还有一个是没有对发送到数据库的数据进行转义(转义输出).这两个重要的步骤缺一不可,需要同时加以特别关注以减少程序错误.对于攻击者来说,进行SQL注入攻击需要思考和试验,对数据库方案进行有根有据的推理非常有必要(当然假设攻击者看不到你的源程序和数据库方案),考虑以下简单的登录表单: 复制代码 代码如下: <form action="/login.php" method="POST"><p>Userna
-
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 FRO
-
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过滤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' &&
随机推荐
- Vuejs实现购物车功能
- 在Ubuntu 14.04上部署 PHP 环境及 WordPress
- jQuery实现带有动画效果的回到顶部和底部代码
- vbs/js脚本编程教学(1)
- ASP.NET MVC使用RazorEngine解析模板生成静态页
- Android TableLayout数据列表的回显清空实现思路及代码
- 基于PHP选项与信息函数的使用详解
- DevExpress之TreeList用法实例总结
- 用JS写的一个Ajax库(实例代码)
- 远程或本地获取系统信息的脚本RGIS.vbs
- Nginx HttpMemcModule和直接访问memcached效率对比测试
- 阿里云linux服务器上使用iptables设置安全策略的方法
- 服务器远程超出最大连接数的原因及解决
- C#使用foreach语句遍历队列(Queue)的方法
- Android 软键盘出现不适应的解决办法总结
- 基于C++的拼多多算法在线笔试题示例
- 浅谈Android PathMeasure详解和应用
- Android Theme以及解决启动黑屏的方法详解
- ASP.NET Core跨站登录重定向的实现新姿势
- Mysql WorkBench安装配置图文教程