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攻击所带来的危险 目录: 第1章 什么是SQL注入 1.1 概述 1.2 理解Web应用的工作原理 1.2.1 一种简单的应用架构 1.2.2 ...
查找代码中SQL注入时的提示和技巧 使用SQL注入创建利用 通过设计来避免由SQL攻击所带来的危险 第1章 什么是SQL注入 1 1.1 概述 2 1.2 理解Web应用的工作原理 2 1.2.1 一种简单的应用架构 3 1.2.2 一种较复杂的...
由于SQL注入攻击针对的是应用开发过程中的编程不严密,因而对于绝大多数防火墙来说,这种攻击是“合法”的。问题的解决只有依赖于完善编程。专门针对SQL注入攻击的工具较少,Wpoison对于用asp,php进行的开发有一定...
3. 防止SQL注入攻击:为防止黑客通过SQL注入攻击获取或篡改系统数据,我们在编写程序时采用了参数化查询的方式,有效防止了SQL注入攻击。 4. 系统日志记录:为了方便系统管理员跟踪和分析系统运行情况,我们在系统中...
第4~6章则介绍常见漏洞的审计方法,分别对应基础篇、进阶篇以及深入篇,涵盖SQL注入漏洞、XSS漏洞、文件操作漏洞、代码/命令执行漏洞、变量覆盖漏洞以及逻辑处理等漏洞;第7章介绍二次漏洞的挖掘方法;第8章介绍...
浅谈Php安全和防Sql注入,防止Xss攻击,防盗链,防CSRF 前言: 首先,笔者不是web安全的专家,所以这不是web安全方面专家级文章,而是学习笔记、细心总结文章,里面有些是我们phper不易发现或者说不重视的东西。所以...
本书详细介绍代码审计的设计思路以及所需要的工具和方法,不仅用大量案例介绍了实用方法,而且剖析了各种代码安全问题的成因与预防方案。无论是应用开发人员还是安全技术人员都能从本书获益。本书共分为三个部分。第...
内容含DevSecOps参考设计指南、软件安全构建成熟...js,php,防SQL注入)、华为Java语言编程规范、软件安全设计原则、企业软件安全开发实践、Microsoft SDL实施、S-SDLC企业最佳安全实践、API安全、精简版SDL落地实践等等
php 编程安全 来自sebug php 安全 sql注入 xss csrf
编程语言+PHP+动态网页+安全防护**:这是一个关于PHP编程语言的动态网页的安全防护的资源,适合有一定PHP基础的开发者。它介绍了PHP的特点、优势、劣势和应用领域,以及如何使用PHP来开发动态网页,包括表单、文件、...
介绍关于PHP安全编程的相关知识: 包括SQL注入、表单与URL安全、验证与授权、会话与cookie、文件及命令等~
我们还使用了依赖注入和面向接口编程等技术,以降低代码的耦合度和提高代码的可扩展性。 总之,我们的通用性PHP开发项目源码采用了一系列先进的技术和框架,以提供高效、可扩展和可靠的Web应用程序。无论您是初学者...
教程名称:MySQL韩顺平数据库编程陷阱【8集】教程...韩顺平.PHP视频教程.Mysql编程陷阱1.sql注入原理解释【】传智播客PHP培训.韩顺平.PHP视频教程.Mysql编 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
PHP代码安全和XSS,SQL注入等对于各类网站的安全非常中用,尤其是UGC(User Generated Content)网站,论坛和电子商务网站,常常是XSS和SQL注入的重灾区。这里简单介绍一些基本编程要点, 相对系统安全来说,php安全...
我们还使用了依赖注入和面向接口编程等技术,以降低代码的耦合度和提高代码的可扩展性。 总之,我们的通用性PHP开发项目源码采用了一系列先进的技术和框架,以提供高效、可扩展和可靠的Web应用程序。无论您是初学者...
最近在折腾 PHP + MYSQL 的编程。了解了一些 PHP SQL 注入攻击的知识,总结一下经验。在我看来,引发 SQL 注入攻击的主要原因,是因为以下两点原因
PHP代码安全和XSS,SQL注入等对于各类网站的安全非常中用,尤其是UGC(User Generated Content)网站,论坛和电子商务网站,常常是XSS和SQL注入的重灾区。这里简单介绍一些基本编程要点, 相对系统安全来说,php安全...
通常在编程中程序员要考虑的问题不仅是代码效率与代码复用性,而且还要考虑一些安全问题
安全性方面,该系统内置了多种安全机制,如输入验证、SQL注入防护等,以确保网站的安全稳定运行。同时,系统还支持HTTPS加密传输,保护用户数据的隐私和安全。 总之,PHP新闻网站系统是一个功能强大、灵活易用、...