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不考虑连接的当前字符集。
分享到:
相关推荐
综上所述,理解和应用360通用ASP防护代码对于任何ASP开发者来说都是至关重要的,它不仅可以防止SQL注入,还能帮助建立安全意识,提升整体的编程实践。在部署和维护ASP应用程序时,务必重视代码的安全性,确保用户...
在这个"SQL注入漏洞演示源代码"中,我们可以深入理解这种攻击方式的工作原理,并学习如何防止它。 SQL注入是通过在输入字段中插入恶意的SQL语句来利用不安全的Web应用程序的漏洞。当应用程序将用户输入的数据直接...
"PHP 网站设计中 SQL 注入的安全防御" 本文将深入探讨 PHP 网站设计中 SQL 注入的安全防御问题,讨论 SQL 注入的原理、类型、防御方法,并提出了一些实用的防御技术。 SQL 注入是一种常见的网络攻击方式,它可以...
《信息安全技术:SQL注入的防御编程》 在信息安全领域,SQL注入是一种常见的攻击手段,它利用了应用程序对用户输入数据的不恰当处理,允许攻击者执行恶意的SQL命令,从而获取、修改、删除数据库中的敏感信息,甚至...
1. 广泛性:SQL 注入可以发生在各种 web 应用程序中,无论是使用哪种编程语言或数据库管理系统。 2. 隐蔽性:SQL 注入攻击往往是隐蔽的,很难被发现,需要具备专业的安全知识和经验来检测和防御。 3. 危害大:SQL ...
标题 "PHP+Mysql 带SQL注入源码 下载" 暗示这是一个关于PHP编程语言和MySQL数据库系统的项目,其中包含一个存在SQL注入漏洞的源代码示例。SQL注入是网络安全领域的一个重要问题,它允许攻击者通过在输入字段中插入...
在网络安全领域,SQL注入是一种常见的攻击手段,尤其在PHP编程中更为常见。本文将深入探讨PHP SQL注入漏洞的原理、类型、影响以及防范措施,旨在帮助开发者更好地理解并避免此类安全问题。 一、SQL注入漏洞概述 SQL...
查找代码中SQL注入时的提示和技巧 使用SQL注入创建利用 通过设计来避免由SQL攻击所带来的危险 目录: 第1章 什么是SQL注入 1.1 概述 1.2 理解Web应用的工作原理 1.2.1 一种简单的应用架构 1.2.2 ...
在Web测试领域,安全测试是至关重要的一环,它旨在确保应用程序免受恶意攻击,保护用户数据的安全。SQL注入是其中一种常见的...同时,教育开发者养成良好的编程习惯,提高整体的安全意识,是防止SQL注入的根本之道。
SQL注入是一种常见的Web应用程序安全漏洞,它允许攻击者将恶意SQL代码插入到查询中,以操纵数据库的行为或提取敏感信息。这种攻击之所以能够成功,主要是由于程序员在编写代码时未能正确验证用户输入的数据,从而...
查找代码中SQL注入时的提示和技巧 使用SQL注入创建利用 通过设计来避免由SQL攻击所带来的危险 第1章 什么是SQL注入 1 1.1 概述 2 1.2 理解Web应用的工作原理 2 1.2.1 一种简单的应用架构 3 1.2.2 一种较复杂的...
开发代码安全规范防SQL注入和XSS跨站攻击代码编写规范样本 随着技术的高速发展,Web应用被广泛使用,但同时也伴随着各种安全隐患。为了提高编程人员的安全意识和安全编程经验,本规范提供了防止SQL注入和XSS跨站...
【SQL注入防御与绕过策略】 SQL注入是一种常见的网络...总之,SQL注入防御需要结合多种技术手段,包括编程最佳实践、防火墙策略以及服务器配置等。同时,了解并研究攻击者的绕过技巧,有助于提升系统的安全防护水平。
在本文中,我们将深入探讨如何使用PHP和PDO(PHP Data Objects)进行数据库操作,包括事务处理、新增记录、更新数据以及防止SQL注入。这个PHPDemo是针对初学者和开发者的实用示例,它展示了如何安全有效地与MySQL...
数据库SQL注入攻击是一种常见的网络安全威胁,它主要针对使用SQL(结构化查询语言)的数据库系统。这类攻击通过在用户输入的数据中嵌入恶意SQL代码,从而欺骗数据库服务器执行非授权的操作,获取敏感信息,甚至完全...
SQL注入漏洞是一种常见的网络安全问题,尤其在Web应用程序中尤为突出。这种漏洞允许攻击者通过在输入字段中插入恶意SQL(结构化查询语言)代码来操纵数据库查询,从而获取未经授权的数据,甚至完全控制数据库系统。...
SQL注入是一种常见的网络安全威胁,它允许攻击者通过输入恶意的SQL代码来操纵数据库。这种攻击方式的威力在于,攻击者可以利用网站应用程序的漏洞获取、修改、删除敏感数据,甚至完全控制数据库。根据描述,70%以上...
在提供的压缩包中,"phpsql防注入类.txt"和"asp防止sql注入.txt"可能包含了具体的类或函数实现,用于帮助开发者更方便地实现上述防护措施。这些类通常会包含输入验证、自动转义等功能,简化了代码中防止SQL注入的...