php防止sql注入的自定义函数
2016-03-31 20:33
477 查看
1.函数的构建
function inject_check($sql_str)
{
returneregi('select|insert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile',$sql_str); //
进行过滤
}
function verify_id($id=null)
{
if (!$id)
{ exit('没有提交参数!'); } //
是否为空判断
elseif (inject_check($id))
{ exit('提交的参数非法!'); } //
注射判断
elseif (!is_numeric($id))
{ exit('提交的参数非法!'); } //
数字判断
$id = intval($id); //
整型化
return $id;
}
function str_check( $str )
{
if (!get_magic_quotes_gpc()) { //
判断magic_quotes_gpc是否打开
$str = addslashes($str); //
进行过滤
}
$str = str_replace("_", "\_", $str); //
把 '_'过滤掉
$str = str_replace("%", "\%", $str); //
把 '%'过滤掉
return $str;
}
function post_check($post)
{
if (!get_magic_quotes_gpc()) { //
判断magic_quotes_gpc是否为打开
$post = addslashes($post); //
进行magic_quotes_gpc没有打开的情况对提交数据的过滤
}
$post = str_replace("_", "\_", $post); //
把 '_'过滤掉
$post = str_replace("%", "\%", $post); //
把 '%'过滤掉
$post = nl2br($post); //
回车转换
$post = htmlspecialchars($post); //
html标记转换
return $post;
}
2.函数的使用实例
<?php
if (inject_check($_GET['id']))
{
exit('你提交的数据非法,请检查后重新提交!');
}
else
{
$id = $_GET['id'];
//处理数据………………
}
?>
function inject_check($sql_str)
{
returneregi('select|insert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile',$sql_str); //
进行过滤
}
function verify_id($id=null)
{
if (!$id)
{ exit('没有提交参数!'); } //
是否为空判断
elseif (inject_check($id))
{ exit('提交的参数非法!'); } //
注射判断
elseif (!is_numeric($id))
{ exit('提交的参数非法!'); } //
数字判断
$id = intval($id); //
整型化
return $id;
}
function str_check( $str )
{
if (!get_magic_quotes_gpc()) { //
判断magic_quotes_gpc是否打开
$str = addslashes($str); //
进行过滤
}
$str = str_replace("_", "\_", $str); //
把 '_'过滤掉
$str = str_replace("%", "\%", $str); //
把 '%'过滤掉
return $str;
}
function post_check($post)
{
if (!get_magic_quotes_gpc()) { //
判断magic_quotes_gpc是否为打开
$post = addslashes($post); //
进行magic_quotes_gpc没有打开的情况对提交数据的过滤
}
$post = str_replace("_", "\_", $post); //
把 '_'过滤掉
$post = str_replace("%", "\%", $post); //
把 '%'过滤掉
$post = nl2br($post); //
回车转换
$post = htmlspecialchars($post); //
html标记转换
return $post;
}
2.函数的使用实例
<?php
if (inject_check($_GET['id']))
{
exit('你提交的数据非法,请检查后重新提交!');
}
else
{
$id = $_GET['id'];
//处理数据………………
}
?>
相关文章推荐
- php中放置sql注入的几个函数
- php学习中的session和cookie的初步认识及其他
- 找不到 phpize
- thinkPHP3.2.3的多语言设置
- PHP函数split()
- 日期时间函数date()
- vim for php
- laravel一键安装包
- 查看邮件是否已被阅读
- sublime sftp 打开远程文件夹
- PHPCMS 配置文件
- PHPCMS 二次开发技巧
- bzoj 1778 [Usaco2010 Hol]Dotp 驱逐猪猡(高斯消元)
- SCTP协议详解与实例
- thinkphp 中 ajax的使用
- PHPCMS_数据库配置
- 4.1 Zend_Config
- PHP中的连贯操作
- php检查漏洞防护补丁-防护XSS,SQL,文件包含等多种高危漏洞
- ThinkPHP处理海量数据分表机制详细代码