`
zhengdl126
  • 浏览: 2531590 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

php 注入处理

阅读更多


-------------addslashes mysql_real_escape_string

需要注意的是.这个函数在调用mysql_real_escape_string这个API之前.先是判断了是否连接上了数据库

我们终于明白为什么那么多开源的程序比如Discuz用addslashes而不用mysql_real_escape_string了.

所以呢.以后也就用addslashes好了..暂时可以忘记掉mysql_real_escape_string了:)

手册上addslashes转义的字符是单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符)
虽然两者都会增加转义字符,但是不会写入数据库中,所有出库的时候不需要任何处理。


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

if (!get_magic_quotes_gpc())
        $this->column[$col] = mysql_real_escape_string(htmlspecialchars($v));
else
        $this->column[$col] = htmlspecialchars($v);

最好对magic_quotes_gpc已经开放的情况下,还是对$_POST[’lastname’]进行检查一下


mysql_real_escape_string 必须在(PHP 4 >= 4.3.0, PHP 5)的情况下才能使用。否则只能用 mysql_escape_string ,两者的区别是:
mysql_real_escape_string 考虑到连接的当前字符集,而mysql_escape_string 不考虑。


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

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



---------------htmlspecialchars
将特殊字符转成 HTML 格式。

这些特殊字符包括:

& (和) 转成 &
" (双引号) 转成 "
< (小于) 转成 &lt;
> (大于) 转成 &gt;

$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $new; // &lt;a href='test'&gt;Test&lt;/a&gt;
如果没有经过此函数,在网页上就会显示TEST而用过此函数之后就会显示<a href='test'>Test</a>。注意是在网页上。


$a="hj gh'jhjk>hj<br>kh\"k&hgg";
echo addslashes($a);//hj gh\'jhjk>hj<br>kh\"k&hgg

echo "<br>";
echo htmlspecialchars($a);//hj gh'jhjk&gt;hj&lt;br&gt;kh&quot;k&amp;hgg

分享到:
评论

相关推荐

    PHP注入工具 2.1

    4. **命令注入防御**:PHP注入工具2.1还关注命令行接口(CLI)的使用情况,确保系统函数如`exec()`、`shell_exec()`和`system()`在接收到用户输入时进行了足够的安全处理,防止攻击者执行恶意命令。 5. **文件包含...

    PHP注入工具超强工具包

    在IT安全领域,PHP注入是一种常见的网络安全威胁,它利用了网站应用程序对用户输入处理不当的漏洞。PHP注入工具被安全专家用于检测和测试系统是否存在这种脆弱性,以便于预防或修复潜在的安全问题。这个"PHP注入工具...

    php注入文件读取器

    PHP注入是一种常见的网络安全漏洞,通常发生在网站应用程序中,由于不恰当的数据处理,使得攻击者能够向PHP脚本发送恶意输入,从而控制或操纵数据库、读取服务器上的敏感信息,甚至执行系统命令。在这个名为"php注入...

    PHP注入点常用关键字

    ### PHP注入点常用关键字解析 在网络安全领域,SQL注入是一种常见的攻击方式,通过将恶意代码插入到应用程序查询中,以获取未授权的数据访问权限或控制权。PHP作为一种广泛使用的服务器端脚本语言,常常成为SQL注入...

    PHPSQL注入漏洞学习

    6. 使用ORM(对象关系映射)框架:如Laravel的Eloquent,自动处理SQL注入问题。 7. 定期更新和打补丁:保持PHP和数据库系统的最新版本,修复已知的安全漏洞。 总结,PHP SQL注入漏洞是开发过程中必须重视的问题。...

    360提供的php防sql注入代码修改类

    总的来说,"360提供的php防sql注入代码修改类"是一个实用的工具,旨在帮助开发者提高PHP应用的安全性,减少SQL注入和HTTP跨站攻击的风险。通过理解并应用这个类,我们可以更好地保护我们的网站和用户数据。在实践中...

    PHP+Mysql 带SQL注入源码 下载

    这个"PHP+Mysql 带SQL注入源码 下载"的主题涉及到一个常见的安全问题——SQL注入,以及如何处理和预防这种情况。下面将详细讨论SQL注入、PHP与MySQL的结合使用,以及如何防范SQL注入。 **SQL注入** SQL注入是一种...

    ASP工具注入+手工注入+PHP注入+中转注

    预防PHP注入的最佳实践是避免在PHP代码中直接拼接用户输入到执行语句中,而是采用预编译语句、过滤函数或者使用安全的PHP函数如htmlspecialchars来处理用户输入。 4. 中转注入:中转注入(也称作中间人注入)是指...

    php+mysql注入攻击.pdf

    标题和描述概述的知识点主要集中在PHP与MySQL注入攻击这一领域,尤其强调了新手教育和深入理解。以下是对这些知识点的详细解析,旨在提供一个全面且深入的理解。 ### PHP与MySQL注入攻击简介 #### 1. **PHP与MySQL...

    比较好用的PHP防注入漏洞

    本文将基于提供的PHP代码片段来解析如何实现有效的SQL注入防护措施,并从中提炼出相关的知识点。SQL注入是一种常见的网络安全攻击手段,通过在应用程序接收的数据中插入恶意SQL语句来操纵数据库。为了防止这类攻击,...

    php注入语句大全.txt

    ### PHP注入语句详解 #### 一、PHP注入概述 SQL注入是一种常见的Web应用程序安全漏洞,攻击者通过向Web应用程序提交恶意SQL代码,利用程序设计缺陷执行非预期的查询或命令,进而达到非法访问数据库的目的。PHP作为...

    简单的PHP防注入类库

    SQL注入是指攻击者通过在Web表单中输入恶意的SQL代码,利用不恰当的输入验证或处理来欺骗服务器执行非预期的数据库操作。这可能导致数据泄露、数据篡改甚至整个数据库的瘫痪。因此,对于任何处理用户输入并将其与...

    PHP、mysql(手工注入)

    PHP手工注入,全称MySQL手工SQL注入,是指攻击者通过输入恶意的SQL语句,利用应用程序对用户输入数据的不恰当处理,从而操控数据库,获取敏感信息或执行非授权操作。这种攻击方式通常发生在开发者未对用户输入进行...

    灵活的php注入.txt

    ### 知识点:灵活的PHP注入 #### 一、PHP注入概述 PHP注入是一种常见的Web应用程序安全漏洞,攻击者通过向应用程序提交恶意构造的数据,从而执行非预期的SQL指令,进而获取敏感信息、篡改数据甚至控制整个数据库...

    菜鸟跟我学php注入拿系统权限

    在网络安全领域,PHP注入是一种常见的攻击手段,尤其对新手开发者来说,如果不了解其原理和防范措施,可能会导致严重的系统安全问题。"菜鸟跟我学php注入拿系统权限"这个主题,旨在帮助初学者理解PHP注入的基本概念...

    php通用防注入类.zip

    "php通用防注入类.zip"中的内容可能是一个预设计划好的PHP类,用于帮助开发者在处理用户输入时确保数据的安全性。 这个防注入类可能会包含以下关键功能: 1. **预处理语句**:预处理语句是防止SQL注入的最有效方法...

    CmsEasy crossall_act.php SQL注入漏洞.md

    漏洞复现涉及到实际操作步骤,包括通过网络测绘技术查找存在漏洞的文件路径(如lib/default/crossall_act.php),构造恶意的输入(如body="cmseasyedit")并注入到相应的处理函数中,以达到复现漏洞的目的。...

    PHP+MySql注入工具

    当我们谈论"PHP+MySQL注入工具"时,我们通常是指用于测试和检测系统安全性的工具,特别是针对SQL注入漏洞。 SQL注入是一种常见的网络安全威胁,攻击者通过在输入字段中插入恶意SQL代码,来获取、修改或删除数据库中...

    PHP注入工具

    【PHP注入工具】是一种专门用于测试和检测PHP应用程序安全性的工具。在Web开发中,PHP是一种广泛应用的服务器端脚本语言,但如果不慎处理用户输入,可能会引发SQL注入、命令注入等安全问题。PHP注入工具就是针对这类...

    PHP手工注入

    首先,PHP注入是一种攻击手法,攻击者通过输入特定的SQL语句到程序的输入字段,使得程序在处理这些输入时,执行非预期的数据库操作。这种攻击通常发生在应用程序没有正确过滤或验证用户输入的情况下。例如,当一个...

Global site tag (gtag.js) - Google Analytics