discuz的php防止sql注入函数
2023-06-13 09:14:26 时间
最近在做一个主题投票网站,客户懂一些程序方面的东西。有特别要求需要过滤一些字符防止sql注入。本来这方面就没有特别的研究过。呵呵,又发扬了一回拿来主义。把discuz论坛的sql防注入函数取了来!
复制代码代码如下:
$magic_quotes_gpc=get_magic_quotes_gpc();
@extract(daddslashes($_COOKIE));
@extract(daddslashes($_POST));
@extract(daddslashes($_GET));
if(!$magic_quotes_gpc){
$_FILES=daddslashes($_FILES);
}
functiondaddslashes($string,$force=0){
if(!$GLOBALS["magic_quotes_gpc"]||$force){
if(is_array($string)){
foreach($stringas$key=>$val){
$string[$key]=daddslashes($val,$force);
}
}else{
$string=addslashes($string);
}
}
return$string;
}
大家可以增强下面的代码加以保护服务器的安全,PHP防止SQL注入安全函数十分重要!
/*
函数名称:inject_check()
函数作用:检测提交的值是不是含有SQL注射的字符,防止注射,保护服务器安全
参 数:$sql_str:提交的变量
返回值:返回检测结果,tureorfalse
*/
functioninject_check($sql_str){
returneregi("select|insert|and|or|update|delete|\"|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile",$sql_str);//进行过滤
}
/*
函数名称:verify_id()
函数作用:校验提交的ID类值是否合法
参 数:$id:提交的ID值
返回值:返回处理后的ID
*/
functionverify_id($id=null){
if(!$id){exit("没有提交参数!");}//是否为空判断
elseif(inject_check($id)){exit("提交的参数非法!");}//注射判断
elseif(!is_numeric($id)){exit("提交的参数非法!");}//数字判断
$id=intval($id);//整型化
return$id;
}
/*
函数名称:str_check()
函数作用:对提交的字符串进行过滤
参 数:$var:要处理的字符串
返回值:返回过滤后的字符串
*/
functionstr_check($str){
if(!get_magic_quotes_gpc()){//判断magic_quotes_gpc是否打开
$str=addslashes($str);//进行过滤
}
$str=str_replace("_","\_",$str);//把"_"过滤掉
$str=str_replace("%","\%",$str);//把"%"过滤掉
return$str;
}
/*
函数名称:post_check()
函数作用:对提交的编辑内容进行处理
参 数:$post:要提交的内容
返回值:$post:返回过滤后的内容
*/
functionpost_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;
}
相关文章
- Php面试问题_php面试常问面试题
- SQL开发知识:sql注入过程详解
- PHP防止sql语句注入终极解决方案(包含pdo各种操作使用实例)详解编程语言
- PHP防止被xss和sql语句注入攻击的方法(网站和app通用)详解编程语言
- PHP专业连接MySQL:实现快速代码.(php连接mysql数据库代码)
- 【Linux重启PHP服务的命令指南】(linux重启php命令)
- Linux上的PHP扩展开发(php扩展linux)
- 使用Linux命令行来优化你的PHP开发(linux命令行php)
- 构建LAMP环境 以增加PHP的MSSQL扩展(增加php扩展mssql)
- PHP程序实现MSSQL数据库的连接(php程序连接mssql)
- PHP连接MS SQL服务器添加数据(php 添加mssql)
- PHP如何连接MS SQL服务器(php怎么链接mssql)
- 防止PHPMSSQL中的SQL注入(php mssql注入)
- 防止MySQL注入或HTML表单滥用的PHP程序
- 微盾PHP脚本加密专家php解密算法
- PHP和Mysqlweb应用开发核心技术第1部分Php基础-1开始了解php
- php入门学习知识点三PHP上传
- PHP与SQL注入攻击防范小技巧
- PHP利用str_replace防注入的方法
- php中sql注入漏洞示例sql注入漏洞修复
- PHP防范SQL注入的具体方法详解(测试通过)
- PHP防止注入攻击实例分析
- php中addslashes函数与sql防注入
- PHP登录环节防止sql注入的方法浅析