首页
学习
活动
专区
圈层
工具
发布

addslashes和stripslashes函数

addslashes() 函数返回在预定义字符之前添加反斜杠的字符串。 预定义字符是: 单引号(’) 双引号(”) 反斜杠(\) NULL echo "Who's Bill Gates?..."; echo addslashes("Who's Bill Gates?") 结果: Who's Bill Gates? Who\'s Bill Gates?...如果这个字符串入库的话,里面有单引号,可能会SQL注入,为了安全,使用此函数。 注:默认地,PHP 对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。...所以您不应对已转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。...比如你在表单里提交xiaoming’s dog 服务端收到的数据就是 xiaoming\’s dog 2 .stripslashes 反引用一个引用字符串 就是把\去了 PHP 中stripslashes函数表示

1K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    PHP addslashes()和stripslashes():字符串转义

    PHP 中使用 addslashes() 函数转义字符串。所谓字符串转义,就是在某些特殊字符前面加上转义符号\,这些特殊字符包括单引号'、双引号"、反斜线\与空字符NUL。...addslashes() 函数的语法格式如下: string addslashes ( string $str ) 该函数返回转义后的字符串,参数 $str 是要被转义的字符。...DBMS 没有一个转义函数,并且需要使用\来转义特殊字符,那么就可以使用 addslashes() 函数。...> 执行以上程序的结果为: I don\'t love you stripslashes() 函数可以还原经 addslashes()转义的字符串,它的语法格式如下: string stripslashes...( string $str ) 该函数返回未经转义的原始字符串,参数 $str 是转义后的字符串。

    5.3K30

    addslashes防注入的绕过案例(AFSRC获奖白帽子情痴)

    ,$key); $key这个可控变量在addslashes之后用iconv函数转换编码,造成宽字节注入 ?...第三种情况是可控做了addslashes之后,可控变量进入了各种函数比如,base64_decode,urldecode,json_encode,stripslashes,举个案例以前在审计某套系统的时候...,但是因为做了addslashes之后,又使用了unescape函数进行url解码,所以直接双重编码来绕过addslashes http://127.0.0.1/xxxxx\source\plugin\...的时候不会被转义,但是经过addslashes之后,又进入了unescape函数对数据一次url解码,这样%27就被解码成了’,带入sql语句,成功闭合了引号。...."')"); 这个时候有一个比较有趣的绕过思路$_POST[“content”]第两百个字符设置成’,然后被addslashes后就变成\’,然后进过substr函数,只截取前两百个字符

    4.4K90

    PHP过滤表单字段

    PHP过滤表单字段 函数名 释义 介绍 htmlspecialchars 将与、单双引号、大于和小于号化成HTML格式 &转成& "转成" ' 转成' <转成...kindedit编辑器: 从post来的进行addslashes后就可存入数据库了,取出后直接echo即可 普通的文本: 1.htmlspecialchars接着addslashes存入数据库...2.addslashes存入数据库,取出后htmlspecialchars输出。 说明: addslashes仅仅是为了让原来的字符正确地进入数据库。...这些转义是必须的,如果这个选项为off,那么我们就必须调用addslashes这个函数来为字符串增加转义。...代码如下 复制代码 当magic_quotes_gpc=On的时候,函数get_magic_quotes_gpc()就会返回1 当magic_quotes_gpc=Off的时候,函数get_magic_quotes_gpc

    4.1K20

    宽字节注入(2)

    加完addslushes函数就是这样,登录失败 ? ?...使用addslashes来防御(addslashes函数会把' " %00 \ 这些字符前面加上一个\来转义他们) 设置数据库字符为gbk导致宽字节注入 ? 这样是失败的 ?...关于绕过: 一:字符编码问题导致绕过 · 2.1、设置数据库字符为gbk导致宽字节注入 · 2.2、使用icon,mb_convert_encoding转换字符编码函数导致宽字节注入 二:编码解码导致的绕过...· 3.1、url解码导致绕过addslashes · 3.2、base64解码导致绕过addslashes · 3.3、json编码导致绕过addslashes 三:一些特殊情况导致的绕过 · 4.1...、没有使用引号保护字符串,直接无视addslashes · 4.2、使用了stripslashes · 4.3、字符替换导致的绕过addslashes 不一一列出来了,后面安全和开发是一个样子的….

    92840

    有关PHP、HTML单引号、双引号转义以及转成HTML实体的那些事!

    一、单引号和双引号转义在PHP的数据存储过程中用得比较多,即往数据库里面存储数据时候需要注意转义单、双引号; 先说几个PHP函数: 1、addslashes — 使用反斜线引用(转义)字符串;   返回字符串...默认情况下,PHP 指令 magic_quotes_gpc 为 on,它主要是对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。...不要对已经被 magic_quotes_gpc 转义过的字符串使用 addslashes(),因为这样会导致双层转义。...遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。 ...1的反函数 3、 htmlentities()这个是全部转换html实体,和htmlspecialchars()区别在于,这个函数是转义全部的字符,而htmlspecialchars()仅仅转义上面限定的

    4.7K70

    审计一套CMS中的SQL注入

    漏洞的挖掘也分为,点对点挖掘漏洞,和分散式挖掘漏洞,这我们主要使用点对点挖掘,在挖掘是我们需要找一些关键字,漏洞本身就是两个条件,可控的函数,和可控的变量。...1.首先打开about.php源代码,然后 $GET[r] 通过GET的方式接收一个传递参数,然后通过使用 addslashes 函数过滤,addslashes函数的作用是转义,将多余的单引号全部转义,...转义以后交给llink变量保存结果,然后拼接SQL查询语句,由于拼接代码 $llink中存在单引号,那我们需要手动闭合单引号,一旦闭合单引号addslashes函数就起了作用,会自动过滤掉单引号,所以这里无法被绕过...> 2.打开另一个 content.php 观察下方的PHP代码,虽然有很多处数据库的操作,但是带入查询时都是通过单引号括起来的,并且每一个语句都强制使用addslashes函数进行了不同程度的转义,这里并没有可利用的地方...r=submit 5.为了方便演示,我们在 submit.php 文件中加入以行打印函数,echo $mail; 打印出mail里面的参数 <?

    1.8K20

    php操作mysql防止sql注入(合集)

    1.魔术引用 (推荐指数3) addslashes()与stripslashes()是功能相反的函数。...在防注入方面,addslashes()可以防止掉大多数的注入,但是此函数并不会检查变量的编码,当使用例如中文gbk的时候,由于长度比较长 ,会将某些gbk编码解释成两个ascii编码,造成新的注入风险(...DBMS 没有一个转义函数,并且使用\来转义特殊字符,你可以使用这个函数。.../suihui/arch…) 由于addslashes()不检测字符集,所以有宽字节注入风险,所以php中添加了这个函数。...与addslashes()相比,不仅会将' " NOL(ascii的0)转义,还会把r n进行转义。同时会检测数据编码。 按php官方的描述,此函数可以安全的用于mysql。

    5.8K20

    PHP渗透基础入门其一

    database.php"); // $userName = $_POST['userName']; // $password = $_POST['password']; $userName = addslashes...($_POST['userName']); $password = addslashes($_POST['password']); getConnect(); $loginSQL = "select...(省略 )我们提交的账户就是变量 userName 密码就是变量 password 但是这里使用addslashes函数(函数过滤了 单引号(’)双引号(")反斜杠()) 呵???...password=xxx 注释我们可以使用/**/ 这样可以绕过过滤 username填写 1/* password */ 然后就成功啦 加强方案 1.替换参数各种敏感字符(# ’ or and 等) 仅仅用addslashes...函数是不安全的 保证参数的安全 2.使用pdo分两次发生sql语句 99.9%的安全 其中不安全原因来自于配置问题进行编码边缘操作 提示 现在程序的php sql注入几率很小,加上如果使用pdo 就基本不可能了

    62800

    seacms修复历程总结

    ,但是有一个问题,$order由于没有对其进行过滤是可以进行变量覆盖的,先丢在一边我们看当$searchtype==5时调用了parseIf()函数跟进来看。...数组,然后将数组中的$strIf取出来拼接到eval语句然后执行eval函数,中间并没有检查非法数据并且我们之前讲到$order是可以覆盖的。...addslashes(cn_substr($letter,20)); $state = RemoveXSS(stripslashes($state)); $state = addslashes(cn_substr...)); $order = addslashes(cn_substr($order,20)); 而这次爆出的poc也是构造的十分精致,通过多个变量拼接写入命令来getshell。...海洋CMS V6.55 在6.55中官方终于意识到漏洞出现parseIf函数,因而对在该函数中做了黑名单的过滤: function parseIf($content){ if

    2.2K70

    对PHP安全相关的函数

    addslashes() : 在将一些数据插入到数据库中时,这个函数会非常有用,它可以在单引号前加上反斜杠,使得数据在插入时不会出现错误。...对于PHP magic_quotes_gpc=on的情况, 我们可以不对输入和输出数据库的字符串数据作addslashes()和stripslashes()的操作,数据也会正常显示。...如果此时你对输入的数据作了addslashes()处理,那么在输出的时候就必须使用stripslashes()去掉多余的反斜杠。 2....对于PHP magic_quotes_gpc=off 的情况 必须使用addslashes()对输入数据进行处理,但并不需要使用stripslashes()格式化输出,因为addslashes()并未将反斜杠一起写入数据库...【stripslashes() :删除由 addslashes() 函数添加的反斜杠。】 htmlentities() : 一个非常有用的用来处理输出的函数。

    1.2K20
    领券