美文网首页
is_numeric的理解&多字节字符解析模式带来的安全隐患

is_numeric的理解&多字节字符解析模式带来的安全隐患

作者: __周__ | 来源:发表于2018-06-27 10:31 被阅读0次

is_numeric的理解

$num=$_GET['num'];
if(!is_numeric($num))
{
echo $num;
if($num==1)
echo 'flag{**********}';
}

空格、\t、\n、\r、\v、\f、+、-能够出现在参数开头,“点”能够在参数任何位置,E、e只能出现在参数中间(在这个题目中%00,“,‘ 也是可以的)


多字节字符解析模式带来的安全隐患

通俗的说,在php中有些函数只能处理单字节字符,如:var_export() 、addslashes()等,当开启多字节解析模式的时候,这些单字节处理函数去处理多字节就带来了安全隐患。

比如:%ab%27经过addslashes处理变成%ab%5C%27,在多字节模式输出的时候%ab%5C被识别成一个字符,最后使得addslashes转义失效

相关文章

  • is_numeric的理解&多字节字符解析模式带来的安全隐患

    is_numeric的理解 空格、\t、\n、\r、\v、\f、+、-能够出现在参数开头,“点”能够在参数任何位置...

  • PHP(一)

    PHP is_numeric()函数is_numeric() 函数用于检测变量是否为数字或数字字符串。语法:boo...

  • codecs模块-完成字符编码

    字符的编码是按照某种规则在单字节字符和多字节字符之间进行转换的某种方法。从单字节到多字节叫做decoding,从多...

  • 宽字节注入

    宽字节注入 原理:宽字节(两字节)带来的安全问题主要是吃ASCII字符(一字节)的现象,使用一些特殊字符来”吃掉“...

  • 深入理解Emoji(三) —— Emoji详解

    深入理解Emoji(一) —— 字符集,字符集编码深入理解Emoji(二) —— 字节序和BOM Emoji字符是...

  • Java IO框架

    可从IO的类层次,IO框架的设计模式来论述。 总体来说,IO可以分为字节流和字符流,不同在于字符流由字节流包装而来...

  • 关于 Java IO(一):装饰模式

    Java 的 IO 系统采用了装饰器设计模式。其 IO 分为面向字节和面向字符两种,面向字节以字节为输入输出单位,...

  • Java IO 装饰模式简析

    Java 的 IO 系统采用了装饰器设计模式。其 IO 分为面向字节和面向字符两种,面向字节以字节为输入输出单位,...

  • Java IO中的设计模式

    1、适配器模式 以上就是适配器模式的体现,FileInputStream是字节流,而并没有字符流读取字符的一些ap...

  • Python 正则表达式

      模式和被搜索的字符串既可以是 Unicode 字符串 (str) ,也可以是 8 位字节串 (bytes)。 ...

网友评论

      本文标题:is_numeric的理解&多字节字符解析模式带来的安全隐患

      本文链接:https://www.haomeiwen.com/subject/crqbyftx.html