首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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函数表示

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

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 是转义后的字符串。

3.8K30

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函数,只截取前两百个字符

3.5K90

因str_replace导致的注入问题总结

一般sql注入的过滤方式就是引用addslashes函数进行过滤。 ? 他会把注入的单引号转换成\’,把双引号转换成\”,反斜杠会转换成\\等 写一段php代码: <!...php $x=$_GET['x']; $id=str_replace(addslashes($_GET['y']),'',addslashes($x)); echo "过滤后:".addslashes...</body </html 发现是引用了addslashes函数的: ? 一个单引号或者双引号直接被转义,字符串注入到这里基本上gg了。没戏了。   ...addslashes的问题:     addslashes会把%00转换成\0     addslashes会把单引号(‘)转换成\’     因为使用了str_replace函数,会替换那么输入%00...′ 就被addslashes函数自动添加\0\’,然后我们匹配0,就变成了\\’再次转换成\’,单引号成功逃逸。

1.3K30

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

3K20

宽字节注入(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 不一一列出来了,后面安全和开发是一个样子的….

71540

有关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()仅仅转义上面限定的

3.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.5K20

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 就基本不可能了

50100

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

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

4.2K20
领券