防止SQL注入的方法

方法1??addslashes();

方法2??mysql_escape_string();

方法3??开启魔术引号

方法4??控制用户输入的数据,如:

使用intval防止sql注入,intval()可以把变量转成整数类型,适用于接收纯整数数据
  $id=intval($_GET[‘id‘]);

方法5??用PDO对象的quote()方法控制用户输入的数据:

  会返回带引号的字符串,并通过反斜线转义来过滤字符串中的特殊字符

用法:  $username=$_POST(username);

     $username=$pdo->quote($username);

方法6??用PDO对象的prepare()、excute()方法:

用法:

  占位符形式1??:

      $username=$_POST(username);

      $passwd=$_POST(passwd);

      $sql="select * from users where username=:a and passwd=:b ;";

      $stmt=$pdo->prepare($sql);

      $stmt->execute(array(:a=>$username,:b=>$passwd));

  占位符形式2??:

      $username=$_POST(username);

      $passwd=$_POST(passwd);

      $sql="select * from users where username=? and passwd=? ;";

      $stmt=$pdo->prepare($sql);

      $stmt->execute(array($username,$passwd));

时间: 2024-12-27 07:11:48

防止SQL注入的方法的相关文章

避免SQL注入三大方法

要说SQL注入还要从看.NET视频开始说起,听说在程序开发过程中,我们经常会遇到SQL注入问题,也就是指令隐码攻击.具体的原理到底是怎么回事儿,查了些资料好像涉及到了编译原理,也没能够看明白,只是视频中讲到了这三种方法是经常用来避免SQL注入最常用的方法,于是查些资料希望能对现学的知识有一定的了解.下面是对这三种方法具体如何使用的一个简单的介绍. 一.存储程序 在学习数据库视频的时候接触过,它是存储在数据库中的一些事先编译好的指令.在用的时候不用重新编写,直接调用就好了.所以,使用它可以大大提高

在php中防止SQL注入的方法

摘要:我们php手手工安装的,php的默认配置文件在 /usr/local/apache2/conf/php.ini,我们最主要就是要配置php.ini中的内容,让我们执行 php能够更安全.整个PHP中的安全设置主要是为了防止phpshell和SQL Injection的攻击...转载请注明来源:在php中防止SQL注入的方法 [一.在服务器端配置] 安全,PHP代码编写是一方面,PHP的配置更是非常关键. 我们php手手工安装的,php的默认配置文件在 /usr/local/apache2/

防御SQL注入的方法总结

这篇文章主要讲解了防御SQL注入的方法,介绍了什么是注入,注入的原因是什么,以及如何防御,需要的朋友可以参考下 SQL 注入是一类危害极大的攻击形式.虽然危害很大,但是防御却远远没有XSS那么困难. SQL 注入可以参见:https://en.wikipedia.org/wiki/SQL_injection SQL 注入漏洞存在的原因,就是拼接 SQL 参数.也就是将用于输入的查询参数,直接拼接在 SQL 语句中,导致了SQL 注入漏洞. 1. 演示下经典的SQL注入 我们看到:select i

C#使用带like的sql语句时防sql注入的方法

本文实例叙述了在拼接sql语句的时候,如果遇到Like的情况该怎么办. 一般采用带like的SQL语句进行简单的拼接字符串时,需要开率遇到sql注入的情况.这确实是个需要注意的问题. 这里结合一些查阅的资料做了初步的整理. 如这样一个sql语句: select * from game where gamename like '%张三%' 用c#表示的话: string keywords = "张三"; StringBuilder strSql=new StringBuilder();

记录一下学习PDO技术防范SQL注入的方法

最近学习了使用PDO技术防范SQL注入的方法,在博客里当做一次笔记.若果有新的感悟在来添上一笔,毕竟也是刚开始学习.一. 什么是PDO PDO全名PHP Data Object PHP 数据对象 (PDO) 扩展为PHP访问数据库定义了一个轻量级的一致接口. PDO 提供了一个数据访问抽象层,这意味着,不管使用哪种数据库,都可以用相同的函数(方法)来查询和获取数据. 二.如何去使用PDO防范SQL注入?/防范sql注入这里使用quate()方法过滤特殊字符和通过预处理的一些方式以及bindPar

php中防止SQL注入的方法

[一.在服务器端配置] 安全,PHP代码编写是一方面,PHP的配置更是非常关键. 我们php手手工安装的,php的默认配置文件在 /usr/local/apache2/conf/php.ini,我们最主要就是要配置php.ini中的内容,让我们执行 php能够更安全.整个PHP中的安全设置主要是为了防止phpshell和SQL Injection的攻击,一下我们慢慢探讨.我们先使用任何编辑工具打开 /etc/local/apache2/conf/php.ini,如果你是采用其他方式安装,配置文件

(转)防SQL注入的方法

——选自<深入Ajax : 架构与最佳实践 = Advanced Ajax : architecture and best practices/ (美)Shawn M.Lauriat著;张过,宋会敏等译> SQL注入 SQL注入攻击是指利用数据库服务器支持的SQL语法,以开发人员意料之外的方式执行SQL命令.这种攻击的主要形式是滥用传递到SQL中的未转义字符串,即滥用原本与SQL代码无关的GET或POST输出.结果是攻击者可以运行应用程序的数据库用户有权运行的任何SQL语句.利用SQL注入,攻

输入值/表单提交参数过滤有效防止sql注入的方法

输入值/表单提交参数过滤,防止sql注入或非法攻击的方法: 代码如下: /** * 过滤sql与php文件操作的关键字 * @param string $string * @return string * @author zrp <[email protected]> */ private function filter_keyword( $string ) { $keyword = select|insert|update|delete|\|\/\*|\*|\.\.\/|\.\/|union

PHP防止SQL注入的方法

[一.在服务器端配置] 安全,PHP代码编写是一方面,PHP的配置更是非常关键. 我 们php手手工安装的,php的默认配置文件在 /usr/local/apache2/conf/php.ini,我们最主要就是要配置php.ini中的内容,让我们执行 php能够更安全.整个PHP中的安全设置主要是为了防止phpshell和SQL Injection的攻击,一下我们慢慢探讨.我们先使用任何编辑工具打开 /etc/local/apache2/conf/php.ini,如果你是采用其他方式安装,配置文