• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    PHP防止sql注入小技巧之sql预处理原理与实现方法分析

    本文实例讲述了PHP防止sql注入小技巧之sql预处理原理与实现方法。分享给大家供大家参考,具体如下:

    我们可以把sql预处理看作是想要运行的 SQL 的一种编译过的模板,它可以使用变量参数进行定制。

    我们来看下它有什么好处:

    这种预处理呢,可以通过两个方式,咱们这次要说的是mysqli。它任何时候都可以确保应用程序可以用相同的数据访问模式,比PDO要更加实用。

    预处理呢,它有两种语句,一种是dml语句,另一种是dql语句。咱们先来看第一种:

    ?php
    header('Content-type:text/html;charset=utf-8');
    $mysqli = new mysqli("127.0.0.1","root","root","test");
    $mysqli->query('set names utf8');
    $insert = $mysqli->prepare("insert admins (title,cookies,sta,lid) values (?,?,?,?)");
    $title = "cuijinpeng";
    $cookies = "luyaran201314";
    $sta = "1";
    $lid = 1;
    $insert->bind_param("sssi",$title,$cookies,$sta,$lid);
    $res = $insert->execute();
    if($res){
      echo 1;
    }else{
      echo $insert->error;
      echo 0;
    }
    $insert->close();
    $mysqli->close();
    
    

    第二种呢,代码如下:

    ?php
    header('Content-type:text/html;charset=utf-8');
    $mysqli = new mysqli("127.0.0.1","root","root","test");
    $mysqli->query('set names utf8');
    $select = $mysqli->prepare("select id,title,cookies,sta,lid from admins where id > ?");
    $id = "1";
    $select->bind_param("i",$id);
    $select->bind_result($id,$title,$cookies,$sta,$lid);
    $select->execute();
    while ($select->fetch()) {
      echo $id."---".$title."---".$cookies."---".$sta."---".$lid."br>";
    }
    $select->close();
    $mysqli->close();
    
    

    接下来,咱们就该看下这两种语句分别支持什么样子的sql了。

    第一种呢,它支持insert、update、delete这三种类型的sql,第二种嘞,就是查询语句了。

    完事那个bind_param里的那个i,就是咱们传入参数的类型了,具体介绍如下:

    我们传入的每个参数都需要指定类,这样通过告诉数据库参数的数据类型,可以降低 SQL 注入的风险。

    好啦,本次记录就到这里了。

    更多关于PHP相关内容感兴趣的读者可查看本站专题:《php程序设计安全教程》、《php安全过滤技巧总结》、《PHP运算与运算符用法总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

    希望本文所述对大家PHP程序设计有所帮助。

    您可能感兴趣的文章:
    • 详解php命令注入攻击
    • php使用exec shell命令注入的方法讲解
    • 浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
    • PHP依赖注入容器知识点浅析
    • PHP使用PDO实现mysql防注入功能详解
    • php+laravel依赖注入知识点总结
    • php依赖注入知识点详解
    • php中的依赖注入实例详解
    • thinkphp5.1框架容器与依赖注入实例分析
    • PHP进阶学习之依赖注入与Ioc容器详解
    • php反射学习之依赖注入示例
    • CTF命令执行及绕过技巧
    上一篇:PHP设计模式之外观模式(Facade)入门与应用详解
    下一篇:Yii2框架中一些折磨人的坑
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    PHP防止sql注入小技巧之sql预处理原理与实现方法分析 PHP,防止,sql,注入,小,技巧,