电脑通带你了解什么是PHP反序列化安全
PHP是世界上最好的语言
曾几何时,这句话也是让php程序员感到一股暖流,但好景不长,随着安全技术的发展及安全意识的提升,越来越多安全漏洞相继爆发出来,比如SQL注入、XSS等高危漏洞可以直接威胁到企业的业务系统,影响极大。
PHP语法简洁且对编程初学者很友好。同样是一个web开发项目,假如用Java语言写可能需要3个多月,而用PHP写只用一个月就够了。这也就当时人们普遍使用PHP作为网站编程的热点语言语言
而令人惊讶的是,这些漏洞出现的编程语言大多是PHP。从而就造成人们对PHP的误解,以为这个语言不安全。其实这样理解是有失偏颇的,PHP语言本身是很安全的,只是使用这个语言去写程序的人在编程的时候忽略了安全性才导致出现漏洞的。所以,说PHP语言不安全是不正确的。
今天以PHP反序列化漏洞为例,简单理解一下PHP编程常见的安全问题。
php反序列化漏洞又称对象注入。那什么是对象,想和大家普及一下编程的概念:
类:人
变量:姓名
方法:吃饭睡觉打豆豆
对象:就是对类进行实例化,如小明在睡觉
PHP反序列化原理
1.序列化和反序列化
序列化是将变量转换为可保存或传输的字符串的过程。
反序列化是在适当的时候把这个字符串再转化成原来的变量使用。
2.php序列化和反序列化函数
serialilze:可将变量转换为字符串并且在转换中可以保存当前变量的值。
unserialize:可以将serialize生成的字符串变换回变量。
php进行序列化的目的是保存一个对象方便以后重用。
怎么去发现PHP反序列化漏洞
在代码审计过程中,先要找一个可控的反序列化函数,通过这个反序列化函数我们去调用一些类,这些类可能会包含一些魔法函数,在这些魔法函数中可能会有一些我们可控的危险操作,从而就触发反序列化漏洞。
如何产生的反序列化漏洞
如果一个PHP代码中使用了unserialize函数去调用某一类,该类中会自动执行一些自定义的magic method。这些magic method中如果包含了一些危险的操作或者这些magic method会去调用类中其他带有危险的操作的函数,如果这些危险操作是可控的,那就可以对象注入。
注:魔法函数是指在php的语法中,有一些系统自带的方法名,这类函数都是以__下划线开头,并在特定的情况下被调用。如__construct() 和 __destruct()、__get() 和 __set()、__isset() 和 __unset()__call() 和 __callStatic()... ... 他们在面向对象编程中起着至关重要的作用。
所以,PHP代码的安全还是要依赖开发人员自身的安全意识是否足够。
请将你的笔记本电脑摄像头遮上!因为黑客正在……
怎样通过一张照片定位他人的地理位置?
教你三行代码制作文件加密隐藏神器
举报/反馈
上一篇:电脑截截屏的三种方法
下一篇:电脑清理之清理痕迹篇
最近更新科技资讯
- 22年过去了,《透明人》依然是尺度最大的科幻电影,没有之一
- 人类基因编辑技术及其伦理问题
- 不吹不黑,五阿哥版的《嫌疑人》能过及格线
- 论Lacan心理公众号的“双标”特质
- 猎罪图鉴:犯罪实录 女性伦理
- 清入关的第一位皇帝是谁,清朝入关后有几位皇帝?
- 描写露台的优美句子
- 谭德晶:论迎春悲剧的叙事艺术
- 中秋节的好词好句
- 《三夫》:一女侍三夫,尺度最大的华语片要来了
- 赛博朋克的未来,在这里
- 文件1091/721/2A:反概念武器实体的一封信件
- 尤战生:哥伦比亚大学点点滴滴
- 韩国最具独特魅力的男演员(安在旭主演的电视剧有哪些)
- 乃至造句
- 请保护好我们的医生,他们太难了
- GCLL06-土木工程的伦理问题-以湖南凤凰县沱江大桥大坍塌事故为例
- 黄金宝典:九年级道德与法治核心考点必背篇
- 【我心中的孔子】伟大的孔子 思想的泰山
- CAMKII-δ9拮抗剂及其用途
- 选粹 | 郑玉双:法教义学如何应对科技挑战?——以自动驾驶汽车为例
- 苍井空37岁宛若少女,携子送祝福遭热讽,下架所有视频母爱无私
- 日韩新加坡怎么对待影视剧中的裸露镜头
- 中西方文化中的颜色词
- 土豪家的美女摸乳师——关于电影《美人邦》