`
liboxlu
  • 浏览: 63203 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

php中防sql注入的安全代码编程

阅读更多
int get_magic_quotes_gpc ( void )

Returns the current configuration setting of magic_quotes_gpc (0 for off, 1 for on).

<?php
echo get_magic_quotes_gpc();         // 1
echo $_POST['lastname'];             // O\'reilly
echo addslashes($_POST['lastname']); // O\\\'reilly

if (!get_magic_quotes_gpc()) {
    $lastname = addslashes($_POST['lastname']);
} else {
    $lastname = $_POST['lastname'];
}

echo $lastname; // O\'reilly
$sql = "INSERT INTO lastnames (lastname) VALUES ('$lastname')";
?>
string addslashes ( string str )

返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符)。

一个使用 addslashes() 的例子是当你要往数据库中输入数据时。例如,将名字 O'reilly 插入到数据库中,这就需要对其进行转义。大多数据库使用 \ 作为转义符:O\'reilly。这样可以将数据放入数据库中,而不会插入额外的 \。当 PHP 指令 magic_quotes_sybase 被设置成 on 时,意味着插入 ' 时将使用 ' 进行转义。

默认情况下,PHP 指令 magic_quotes_gpc 为 on,它主要是对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。不要对已经被 magic_quotes_gpc 转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。

许多数据库本身就提供这种输入数据处理功能。例如PHP的MySQL操作函数中有addslashes()、 mysql_real_escape_string()、mysql_escape_string()等函数,可将特殊字符和可能引起数据库操作出错的字符转义。那么这三个功能函数之间有什么却别呢?下面我们就来详细讲述下。

虽然国内很多PHP程序员仍在依靠addslashes防止SQL注入,还是建议大家加强中文防止SQL注入的检查。addslashes的问题在于黑客可以用0xbf27来代替单引号,而addslashes只是将0xbf27修改为0xbf5c27,成为一个有效的多字节字符,其中的0xbf5c仍会被看作是单引号,所以addslashes无法成功拦截。

当然addslashes也不是毫无用处,它是用于单字节字符串的处理,多字节字符还是用mysql_real_escape_string吧。

总结一下:


    * addslashes() 是强行加;
    * mysql_real_escape_string()  会判断字符集,但是对PHP版本有要求;
    * mysql_escape_string不考虑连接的当前字符集。
分享到:
评论

相关推荐

    SQL注入攻击与防御(安全技术经典译丛)

     查找代码中SQL注入时的提示和技巧  使用SQL注入创建利用  通过设计来避免由SQL攻击所带来的危险 目录: 第1章 什么是SQL注入  1.1 概述  1.2 理解Web应用的工作原理  1.2.1 一种简单的应用架构  1.2.2 ...

    SQL注入攻击与防御

     查找代码中SQL注入时的提示和技巧  使用SQL注入创建利用  通过设计来避免由SQL攻击所带来的危险 第1章 什么是SQL注入 1 1.1 概述 2 1.2 理解Web应用的工作原理 2 1.2.1 一种简单的应用架构 3 1.2.2 一种较复杂的...

    Web环境下SQL注入攻击的检测

    由于SQL注入攻击针对的是应用开发过程中的编程不严密,因而对于绝大多数防火墙来说,这种攻击是“合法”的。问题的解决只有依赖于完善编程。专门针对SQL注入攻击的工具较少,Wpoison对于用asp,php进行的开发有一定...

    基于PHP+SQL考勤系统安全性实现的毕业设计(源代码+毕设文档+答辩PPT+指导书),提高企业内部考勤管理的效率和安全性

    3. 防止SQL注入攻击:为防止黑客通过SQL注入攻击获取或篡改系统数据,我们在编写程序时采用了参数化查询的方式,有效防止了SQL注入攻击。 4. 系统日志记录:为了方便系统管理员跟踪和分析系统运行情况,我们在系统中...

    代码审计 企业级Web代码安全架构

    第4~6章则介绍常见漏洞的审计方法,分别对应基础篇、进阶篇以及深入篇,涵盖SQL注入漏洞、XSS漏洞、文件操作漏洞、代码/命令执行漏洞、变量覆盖漏洞以及逻辑处理等漏洞;第7章介绍二次漏洞的挖掘方法;第8章介绍...

    PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等)

    浅谈Php安全和防Sql注入,防止Xss攻击,防盗链,防CSRF 前言: 首先,笔者不是web安全的专家,所以这不是web安全方面专家级文章,而是学习笔记、细心总结文章,里面有些是我们phper不易发现或者说不重视的东西。所以...

    代码审计:企业级Web代码安全架构

    本书详细介绍代码审计的设计思路以及所需要的工具和方法,不仅用大量案例介绍了实用方法,而且剖析了各种代码安全问题的成因与预防方案。无论是应用开发人员还是安全技术人员都能从本书获益。本书共分为三个部分。第...

    软件安全开发指南资料合集.zip

    内容含DevSecOps参考设计指南、软件安全构建成熟...js,php,防SQL注入)、华为Java语言编程规范、软件安全设计原则、企业软件安全开发实践、Microsoft SDL实施、S-SDLC企业最佳安全实践、API安全、精简版SDL落地实践等等

    php编程安全

    php 编程安全 来自sebug php 安全 sql注入 xss csrf

    编程语言+PHP+动态网页+安全防护

    编程语言+PHP+动态网页+安全防护**:这是一个关于PHP编程语言的动态网页的安全防护的资源,适合有一定PHP基础的开发者。它介绍了PHP的特点、优势、劣势和应用领域,以及如何使用PHP来开发动态网页,包括表单、文件、...

    关于PHP安全编程的使用技巧

    介绍关于PHP安全编程的相关知识: 包括SQL注入、表单与URL安全、验证与授权、会话与cookie、文件及命令等~

    PHP+SQL考勤系统安全性实现(源代码+lw+指导书).zip

    我们还使用了依赖注入和面向接口编程等技术,以降低代码的耦合度和提高代码的可扩展性。 总之,我们的通用性PHP开发项目源码采用了一系列先进的技术和框架,以提供高效、可扩展和可靠的Web应用程序。无论您是初学者...

    MySQL韩顺平数据库编程陷阱【8集】

    教程名称:MySQL韩顺平数据库编程陷阱【8集】教程...韩顺平.PHP视频教程.Mysql编程陷阱1.sql注入原理解释【】传智播客PHP培训.韩顺平.PHP视频教程.Mysql编 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。

    基于PHP开发中的安全防范知识详解

    PHP代码安全和XSS,SQL注入等对于各类网站的安全非常中用,尤其是UGC(User Generated Content)网站,论坛和电子商务网站,常常是XSS和SQL注入的重灾区。这里简单介绍一些基本编程要点, 相对系统安全来说,php安全...

    PHP+SQL公共课平时成绩查询系统(源代码+lw).zip

    我们还使用了依赖注入和面向接口编程等技术,以降低代码的耦合度和提高代码的可扩展性。 总之,我们的通用性PHP开发项目源码采用了一系列先进的技术和框架,以提供高效、可扩展和可靠的Web应用程序。无论您是初学者...

    PHP+SQL 注入攻击的技术实现以及预防办法

    最近在折腾 PHP + MYSQL 的编程。了解了一些 PHP SQL 注入攻击的知识,总结一下经验。在我看来,引发 SQL 注入攻击的主要原因,是因为以下两点原因

    php网站制作时安全防范知识

    PHP代码安全和XSS,SQL注入等对于各类网站的安全非常中用,尤其是UGC(User Generated Content)网站,论坛和电子商务网站,常常是XSS和SQL注入的重灾区。这里简单介绍一些基本编程要点, 相对系统安全来说,php安全...

    细谈php中SQL注入攻击与XSS攻击

    通常在编程中程序员要考虑的问题不仅是代码效率与代码复用性,而且还要考虑一些安全问题

    php项目-PHP新闻网站系统.rar

    安全性方面,该系统内置了多种安全机制,如输入验证、SQL注入防护等,以确保网站的安全稳定运行。同时,系统还支持HTTPS加密传输,保护用户数据的隐私和安全。 总之,PHP新闻网站系统是一个功能强大、灵活易用、...

Global site tag (gtag.js) - Google Analytics