输入值/表单提交参数过滤,防止sql注入或非法攻击的方法:

 代码如下:
/**
* 过滤sql与php文件操作的关键字
* @param string $string
* @return string
* @author zrp <zouruiping668@sina.com>
*/
private function filter_keyword( $string ) {
$keyword = select|insert|update|delete|\|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile;
$arr = explode( |, $keyword );
$result = str_ireplace( $arr, , $string );
return $result;
}

/** 
* 检查输入的数字是否合法,合法返回对应id,否则返回false 
* @param integer $id 
* @return mixed 
* @author zrp <zouruiping668@sina.com>  
*/

protected function check_id( $id ) {
$result = false;
if ( $id !== && !is_null( $id ) ) {
$var = $this->filter_keyword( $id ); // 过滤sql与php文件操作的关键字
if ( $var !== && !is_null( $var ) && is_numeric( $var ) ) {
$result = intval( $var );
}
}
return $result;
}

/** 
* 检查输入的字符是否合法,合法返回对应id,否则返回false 
* @param string $string 
* @return mixed 
* @author zrp <zouruiping668@sina.com> 
*/

protected function check_str( $string ) {
$result = false;
$var = $this->filter_keyword( $string ); // 过滤sql与php文件操作的关键字
if ( !empty( $var ) ) {
if ( !get_magic_quotes_gpc() ) { // 判断magic_quotes_gpc是否为打开
$var = addslashes( $string ); // 进行magic_quotes_gpc没有打开的情况对提交数据的过滤
}
//$var = str_replace( "_", "\_", $var ); // 把 _过滤掉
$var = str_replace( "%", "\%", $var ); // 把 %过滤掉
$var = nl2br( $var ); // 回车转换
$var = htmlspecialchars( $var ); // html标记转换
$result = $var;
}
return $result;
}

输入值/表单提交参数过滤,防止sql注入或非法攻击的方法:

代码如下:
/** 
* 过滤sql与php文件操作的关键字 
* @param string $string 
* @return string 
* @author zrp <zouruiping668@sina.com> 
*/

private function filter_keyword( $string ) {
$keyword = select|insert|update|delete|\|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile;
$arr = explode( |, $keyword );
$result = str_ireplace( $arr, , $string );
return $result;
}

/** 
* 检查输入的数字是否合法,合法返回对应id,否则返回false 
* @param integer $id 
* @return mixed 
* @author zrp <zouruiping668@sina.com>  
*/ 
protected function check_id( $id ) { 
$result = false; 
if ( $id !== && !is_null( $id ) ) { 
$var = $this->filter_keyword( $id ); // 过滤sql与php文件操作的关键字 
if ( $var !== && !is_null( $var ) && is_numeric( $var ) ) { 
$result = intval( $var ); 


return $result; 
}

/** 
* 检查输入的字符是否合法,合法返回对应id,否则返回false 
* @param string $string 
* @return mixed 
* @author zrp <zouruiping668@sina.com> 
*/

protected function check_str( $string ) {
$result = false;
$var = $this->filter_keyword( $string ); // 过滤sql与php文件操作的关键字
if ( !empty( $var ) ) {
if ( !get_magic_quotes_gpc() ) { // 判断magic_quotes_gpc是否为打开
$var = addslashes( $string ); // 进行magic_quotes_gpc没有打开的情况对提交数据的过滤
}
//$var = str_replace( "_", "\_", $var ); // 把 _过滤掉
$var = str_replace( "%", "\%", $var ); // 把 %过滤掉
$var = nl2br( $var ); // 回车转换
$var = htmlspecialchars( $var ); // html标记转换
$result = $var;
}
return $result;
}

输入值/表单提交参数过滤有效防止sql注入的方法的更多相关文章

  1. php+mysql 除了设置主键防止表单提交内容重复外的另一种方法

    感觉好久没有更新博客了,一直在做网站及后台,也没有遇到让我觉得可以整理的内容,之前做的一个系统,已经完成了,后来客户又要求加一个功能,大概就是表单提交的时候,约束有一项不能和以前的内容重复,如图 比如 ...

  2. 在表单提交之前做校验-利用jQuery的submit方法

    点击表单中的提交按钮,默认就会提交表单,如果要在表单提交之前做一些校验,那么就可以用jQuery的submit方法. 也就是jQuery的submit的方法执行顺序,在表单的提交之前.用法如下: $( ...

  3. Form 表单提交参数

    今天因为要额外提交参数数组性的参数给form传到后台而苦恼了半天,结果发现,只需要在form表单对应的字段html空间中定义name = 后台参数名 的属性就ok了. 后台本来是只有模型参数的,但是后 ...

  4. SpringMVC学习笔记:表单提交 参数的接收

    SpringMVC可以接收原生form表单和json格式数据 有一个名为Book的model,其中的属性如下: 字符串类型的name,数字类型的price,数组类型的cover,集合类型的author ...

  5. 360急速浏览器BUG,POST表单提交参数丢失

    p{text-indent:2em;} --> 今天我在做支付宝充值的时候发现在360急速浏览器下面业务处理页面获取Request.Form参数为空,一开始我还以为是自己参数没有传递过去.然后就 ...

  6. 模拟post表单提交参数

    Content-Type: application/x-www-form-urlencoded;charset=utf-8

  7. form表单提交参数封装

    function getFormValues(element,options) { var data = {}; if(element == null || element == undefined) ...

  8. thinkPHP form表单提交参数无法获取

    后台打印获取的数据为empty, 找了半天,是因为 input标签没有写name, 真是醉了!记一下,免得以后再犯错了.

  9. 关于使用 AJax 生成Form表单,且表单提交需要验证,验证实效的解决方法

    @Ajax.ActionLink("添加", "AddUser",new AjaxOptions() {InsertionMode = InsertionMod ...

随机推荐

  1. 隐藏服务器真实IP的方法来防止DDOS攻击

    2017-08-22 作者:小唐 点击: 10,500次 在无盘系统的环境下,服务器软件存在漏洞,就容易受到DDOS攻击,隐藏服务器真实IP是解决问题最好的方法,下面小编与大家分享一下隐藏服务器真实I ...

  2. java 的""和null的区别

    null和""的区别 问题一: null和""的区别 String s=null; string.trim()就会抛出为空的exception String s ...

  3. securecrt中进入uboot命令行时,出现无法键入任何指令的问题解决方法

    securecrt中进入uboot命令行时,出现无法键入任何指令的问题解决方法 可能出现以下几种情况 1.securecrt在创建连接时,忘记取消勾选流控: 2.usb转串口线坏了3.uboot有问题 ...

  4. c:foreach如何输出序号

    关键在于<c:forEach>的varStatus属性,具体代码如下: <table width="500" border="0" cells ...

  5. Python开发easy忽略的问题

    这篇文章主要介绍了Python程序猿代码编写时应该避免的17个"坑",也能够说成Python程序猿代码编写时应该避免的17个问题,须要的朋友能够參考下 一.不要使用可变对象作为函数 ...

  6. 【Hadoop】Hadoop MR 自定义分组 Partition机制

    1.概念 2.Hadoop默认分组机制--所有的Key分到一个组,一个Reduce任务处理 3.代码示例 FlowBean package com.ares.hadoop.mr.flowgroup; ...

  7. [转载]使用expect实现shell自动交互

    FROM:http://www.nginx.cn/1934.html shell脚本需要交互的地方可以使用here文档是实现,但是有些命令却需要用户手动去就交互如passwd.scp 对自动部署免去用 ...

  8. KodExplorer介绍

    KodExplorer介绍 KOD·简介 官方网站https://kodcloud.com/ KodExplorer可道云,原名芒果云,是一款基于 PHP 开发的开源 WEB 网页版轻量级私有云和在线 ...

  9. Linux学习之二-Linux系统的目录结构

    Linux学习之二-Linux系统的目录结构 在Linux的根目录下,有很多的目录,但是需要记住,对于Linux而言,一切皆文件.因此此处的目录也是文件.用ls / 命令就能看到根目录下的各类不同的目 ...

  10. VB程序无法运行,Component ‘MCI32.OCX’错误怎么办

    1 提示Component 'MCI32.OCX'错误   2 搜索你电脑的MCI32.OCX这个文件   3 把它复制到任意位置,然后再同一个目录下新建一个文本文档,输入regsvr32 MCI32 ...