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()) {  
if (is_array($content)) {  
foreach ($content as $key=>$value) {  
$content[$key] = addslashes($value);  
}  
} else {  
addslashes($content);  
}  
}  
return $content;  
}  
做系统的话,可以用下面的代码,也是copy来的。
PHP代码
     
function inject_check($sql_str) {      
  return eregi('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;      
}  

PHP防SQL注入攻击的更多相关文章

  1. 【荐】PDO防 SQL注入攻击 原理分析 以及 使用PDO的注意事项

    我们都知道,只要合理正确使用PDO,可以基本上防止SQL注入的产生,本文主要回答以下几个问题: 为什么要使用PDO而不是mysql_connect? 为何PDO能防注入? 使用PDO防注入的时候应该特 ...

  2. PHP几个防SQL注入攻击自带函数区别

    SQL注入攻击是黑客攻击网站最常用的手段.如果你的站点没有使用严格的用户输入检验,那么常容易遭到SQL注入攻击.SQL注入攻击通常通过给站点数据库提交不良的数据或查询语句来实现,很可能使数据库中的纪录 ...

  3. 防sql注入攻击

    这两天看了个防sql注入,觉得有必要总结一下: 首先需要做一些php的安全配置: 1 在php.ini 中把display_errors改成OFF display_errors = OFF 或在php ...

  4. jdbc之防sql注入攻击

    1.SQL注入攻击:    由于dao中执行的SQL语句是拼接出来的,其中有一部分内容是由用户从客户端传入,所以当用户传入的数据中包含sql关键字时,就有可能通过这些关键字改变sql语句的语义,从而执 ...

  5. PDO防 SQL注入攻击 原理分析 以及 使用PDO的注意事项

    我们都知道,只要合理正确使用PDO(PDO一是PHP数据对象(PHP Data Object)的缩写),可以基本上防止SQL注入的产生,本文主要回答以下几个问题: 为什么要使用PDO而不是mysql_ ...

  6. 【数据库】SQL注入攻击

    背景: 机房收费系统验收的时候,师父提到SQL注入攻击.自己以前看过类似的博客大概知道一些这方面的事情,于是自己动手查了查. 定义: 所谓SQL注入,通过SQL命令插入到Web表单提交或者输入域名或页 ...

  7. nginx服务器防sql注入/溢出攻击/spam及禁User-agents

    本文章给大家介绍一个nginx服务器防sql注入/溢出攻击/spam及禁User-agents实例代码,有需要了解的朋友可进入参考. 在配置文件添加如下字段即可  代码如下 复制代码 server { ...

  8. web攻击之八:溢出攻击(nginx服务器防sql注入/溢出攻击/spam及禁User-agents)

    一.什么是溢出攻击 首先, 溢出,通俗的讲就是意外数据的重新写入,就像装满了水的水桶,继续装水就会溢出,而溢出攻击就是,攻击者可以控制溢出的代码,如果程序的对象是内核级别的,如dll.sys文件等,就 ...

  9. tp5怎么防sql注入 xss跨站脚本攻击

    在 application/config.php 中有个配置选项 框架默认没有设置任何过滤规则,你可以是配置文件中设置全局的过滤规则 则会调用这些函数 自动过滤 // 默认全局过滤方法 用逗号分隔多个 ...

随机推荐

  1. Javascript是单线程的深入分析(转)

    http://www.cnblogs.com/Mainz/p/3552717.html

  2. Spring(二)--FactoryBean、bean的后置处理器、数据库连接池、引用外部文件、使用注解配置bean等

    实验1:配置通过静态工厂方法创建的bean  [通过静态方法提供实例对象,工厂类本身不需要实例化!] 1.创建静态工厂类 public class StaticFactory { private st ...

  3. HTML图像

    HTML 图像- 图像标签( <img>)和源属性(Src) 在 HTML 中,图像由<img> 标签定义. <img> 是空标签,意思是说,它只包含属性,并且没有 ...

  4. 数据结构之R进制转换

    废话不多说,直接上代码 #include <stdio.h> int exchange(int a) { char c='A'; if(a>=10) { printf("% ...

  5. 使用VMware Workstation安装win7镜像文件时遇见的错误

    最近打算使用虚拟机安装个系统玩玩,就去网站上找了教程安装下win7系统.但是在安装过程中遇见两个问题,现在把遇见的问题总结记录一下,以及解决方法罗列一下. 我当时使用的是VMware 12版的,系统是 ...

  6. 使用Docker搭建简易的 Java Web 环境

    ![group_5622_0](http://ow20g4tgj.bkt.clouddn.com/2017-09-10-group_5622_0.png) 从[<从最简单的入手学习 Docker ...

  7. 使用HttpGet请求json数据

  8. 10 Logistic Regression

    线性分类中的是非题 --->概率题 (设置概率阈值后,大于等于该值的为O,小于改值的为X) --->逻辑回归 O为1,X为0 逻辑回归假设 逻辑函数/S型函数:光滑,单调 自变量趋于负无穷 ...

  9. 用webgl打造自己的3D迷宫游戏

    用webgl打造自己的3D迷宫游戏 2016/09/19 · JavaScript · WebGL 原文出处: AlloyTeam    背景:前段时间自己居然迷路了,有感而发就想到写一个可以让人迷路 ...

  10. MySQL(一) -- MySQL学习路线、数据库的基础、关系型数据库、关键字说明、SQL、MySQL数据库、MySQL服务器对象、SQL的基本操作、库操作、表操作、数据操作、中文数据问题、 校对集问题、web乱码问题

    1 MySQL学习路线 基础阶段:MySQL数据库的基本操作(增删改查),以及一些高级操作(视图.触发器.函数.存储过程等). 优化阶段:如何提高数据库的效率,如索引,分表等. 部署阶段:如何搭建真实 ...