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. Android笔记: 日期格式化

    下面的转换符来自Java,但是在android中同样可用.(以下表格内容来自互联网.) 常见日期格式化转换符 转换符 说 明 示 例 %te  一个月中的某一天(1-31)  2 %tb  指定语言环 ...

  2. web本地存储

    Web本地存储 通过本地存储(Local Storage),web 应用程序能够在用户浏览器中对数据进行本地的存储. 在 HTML5 之前,应用程序数据只能存储在 cookie 中,包括每个服务器请求 ...

  3. Druid使用记录

    最近项目稳定下来,就像折腾一下看看系统的运行情况,但是我们搞java的毕竟不是专业运维,看看数据库的运行情况就ok了. 1 Druid介绍 官方地址 https://github.com/alibab ...

  4. SSM三大框架整合详细教程(Spring+SpringMVC+MyBatis

    原博主链接:( http://blog.csdn.net/zhshulin ) 使用 SSM ( Spring . SpringMVC 和 Mybatis )已经有三个多月了,项目在技术上已经没有什么 ...

  5. 剑指Offer第36题—Java版

    本题使用归并排序的思想,结合归并排序,写出的算法解. //数组中的逆序对 public static int InversePairs(int[] array){ if(array==null||ar ...

  6. Element is not clickable at point error in chrome

    I see this only in Chrome. The full error message reads: "org.openqa.selenium.WebDriverExceptio ...

  7. python 三级联动

       china_map ={  "华南":{   "广东":["广州市","佛山市","深圳市", ...

  8. vs下开端口直接调试iis

    有些时候我们接口调试不想发布然后挂到iis下面,因为这样子调试有点麻烦,不是不可以调试.当然我们就希望在vs下直接运行直接打断点调试! 只需要三步就可以实现: 1)  找到这个文件 2)  打开上面文 ...

  9. 我的前端故事----我为什么用GraphQL

    背景 今年我在做一个有关商户的app,这是一个包含商户从入网到审核.从驳回提交到入网维护的完整的生命周期线下推广人员使用的客户端软件,但故事并没有这么简单... 疑问 随着app的逐渐完善,遇到的问题 ...

  10. Bootstrap-table事件使用

    HTML <div class="alert alert-danger" id="eventInfo"></div> <table ...