所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存储过程的输入参数,这类表单特别容易受到SQL注入式攻击。

第一种方法

<?php
$dsn = "mysql:dbname=study;host=localhost";
$pdo = new PDO($dsn,"root","root"); //写一个预处理语句
$sql = "insert into class values(?,?)";
//将预处理语句扔到服务器等待执行,返回PDOStatement对象
$stm = $pdo->prepare($sql);
//第二次将变量(参数)扔到服务器的SQL语句相应位置,给预处理语句绑定参数
$stm->bindParam(1,$Sclass);
$stm->bindParam(2,$cla);
$Sclass = "7";
$cla = "七班";
//执行
$stm->execute();

  

第一种方法简写

<?php
$dsn = "mysql:dbname=study;host=localhost";
$pdo = new PDO($dsn,"root","root"); //写一个预处理语句
$sql = "insert into class values(?,?)";
//将预处理语句扔到服务器等待执行,返回PDOStatement对象
$stm = $pdo->prepare($sql);
//定义索引数组
$arr = array("8","八班");
//执行
$stm->execute($arr);

  

第二种方法

<?php
$dsn = "mysql:dbname=study;host=localhost";
$pdo = new PDO($dsn,"root","root");
//预处理语句
$sql = "insert into class VALUES (:Sclass,:cla)";
$stm = $pdo->prepare($sql); //造一个数组
$arr = array("Sclass"=>"10","cla"=>"十班"); //执行
$stm->execute($arr);

  

举例,第二种情况简单,建议应用第二种方法

<body xmlns="http://www.w3.org/1999/html">
<h1>添加数据</h1>
<form action="pdoycl5.php" method="post"/>
<div>代号:<input type="text" name="Sclass"> </div>
<div>班级:<input type="text" name="cla"> </div>
<input type="submit" value="添加">
</form>
</body>

  

<?php
$dsn = "mysql:dbname=study;host=localhost";
$pdo = new PDO($dsn,"root","root");
//预处理语句
$sql = "insert into class VALUES (:Sclass,:cla)";
$stm = $pdo->prepare($sql);
//执行
$stm->execute($_POST);

 

PDO预处理语句规避SQL注入攻击的更多相关文章

  1. MySQL pdo预处理能防止sql注入的原因

    MySQL pdo预处理能防止sql注入的原因: 1.先看预处理的语法 $pdo->prepare('select * from biao1 where id=:id'); $pdo->e ...

  2. 2017-07-25 PDO预处理以及防止sql注入

    首先来看下不做任何处理的php登录,首先是HTML页面代码 <html> <head><title>用户登录</title></head> ...

  3. php pdo预处理语句与存储过程

    很多更成熟的数据库都支持预处理语句的概念.什么是预处理语句?可以把它看作是想要运行的 SQL 的一种编译过的模板,它可以使用变量参数进行定制.预处理语句可以带来两大好处: 1.查询仅需解析(或预处理) ...

  4. php安全编程—sql注入攻击

    php安全编程--sql注入攻击 定义 SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因 ...

  5. PHP PDO 预处理语句与存储过程

    很多更成熟的数据库都支持预处理语句的概念. 什么是预处理语句?可以把它看作是想要运行的 SQL 的一种编译过的模板,它可以使用变量参数进行定制.预处理语句可以带来两大好处: 查询仅需解析(或预处理)一 ...

  6. 实例讲解 SQL 注入攻击

    这是一篇讲解SQL注入的实例文章,一步一步跟着作者脚步探索如何注入成功,展现了一次完整的渗透流程,值得一读.翻译水平有限,见谅! 一位客户让我们针对只有他们企业员工和顾客能使用的企业内网进行渗透测试. ...

  7. ADO。Net(二)——防止SQL注入攻击

    规避SQL注入 如果不规避,在黑窗口里面输入内容时利用拼接语句可以对数据进行攻击 如:输入Code值 p001' union select * from Info where '1'='1 //这样可 ...

  8. ADO.Net——防止SQL注入攻击

    规避SQL注入 如果不规避,在黑窗口里面输入内容时利用拼接语句可以对数据进行攻击 如:输入Code值 p001' union select * from Info where '1'='1 //这样可 ...

  9. day40:python操作mysql:pymysql模块&SQL注入攻击

    目录 part1:用python连接mysql 1.用python连接mysql的基本语法 2.用python 创建&删除表 3.用python操作事务处理 part2:sql注入攻击 1.s ...

随机推荐

  1. Core Data 应用程序实践指南(Core Data 应用程序实践指南)

    译者序 前言 勘误 1. 初次尝试Core Data应用程序 本书的基础,基本概念,能做什么,不能做什么.实现CoreDataHelper类,演示如何将Core Data同既有的应用程序相集成. 2. ...

  2. Java语言中IO流的操作规律学习笔记

    1,明确源和目的. 数据源:就是需要读取,可以使用两个体系:InputStream.Reader: 数据汇:就是需要写入,可以使用两个体系:OutputStream.Writer: 总结: 读:就是把 ...

  3. QT第二天学习

    回顾: qmake: qmake -project //生成*.pro文件 qmake //makefile make 注:if(qmake -v  >=5) then QT += widget ...

  4. Java学习之旅基础知识篇:数组及引用类型内存分配

    在上一篇中,我们已经了解了数组,它是一种引用类型,本篇将详细介绍数组的内存分配等知识点.数组用来存储同一种数据类型的数据,一旦初始化完成,即所占的空间就已固定下来,即使某个元素被清空,但其所在空间仍然 ...

  5. Web应用中监听者的通知顺序按照DD中的定义顺序

    Web应用中监听者的通知顺序按照DD中的定义顺序: XML: <?xml version="1.0" encoding="UTF-8"?> < ...

  6. ServletConfig、ServletContext属性遍历

    可以进行属性遍历: package com.stono.servlet; import java.io.IOException; import java.util.Enumeration; impor ...

  7. ASP.NET 页面之间传值的几种方式

    开篇概述 对于任何一个初学者来说,页面之间传值可谓是必经之路,却又是他们的难点.其实,对大部分高手来说,未必不是难点. 回想2016年面试的将近300人中,有实习生,有应届毕业生,有1-3年经验的,有 ...

  8. 创建 OVS vlan101 并部署 instance - 每天5分钟玩转 OpenStack(139)

    前面我们创建了 OVS vlan100 并部署了 instance,今天继续创建 vlan101. subnet IP 地址为 172.16.101.0/24. 底层网络发生了什么变化 Neutron ...

  9. Javascript中的async await

    async / await是Javascript是ES7的重要特性之一,也是目前社区里公认的优秀异步解决方案.目前,async / await这个特性已经是stage 3的建议,可以看看TC39的进度 ...

  10. [CSS3] 学习笔记-CSS选择器

    CSS3中,选择器的分类很多,有元素选择器.类选择器.ID选择器.属性选择器.后代选择器.子元素选择器.相邻兄弟选择器. 1.最常见的选择器就是元素选择器,文档的元素就是最基本的选择器,例如,h1{} ...