PHP反序列化
反序列化是当前较为热门的一个漏洞,主要产生原因是太过信任客户端提交的数据,开发者容易忽略一些安全因素,进而可能会导致可执行任意命令或代码,安全方面的影响较大。
漏洞成因 序列化和反序列化是一种常用的技术,通常用于对象状态的保存和恢复。序列化是将对象转换为可以存储或传输的数据格式的过程,而反序列化则是将这些数据恢复为原始对象的过程。尽管这些操作在多种编程环境中都非常有用,但如果处理不当,也可能成为安全漏洞的来源。
在某些情况下,应用程序在实现如身份验证、文件读写、数据传输等关键功能时,可能会将序列化数据通过网络传输或保存在外部存储中。如果这些序列化数据未经加密或签名处理,或者加密实现不当(例如使用硬编码的密钥,如在Apache Shiro 1.2.4中见到的问题),则这些数据可以被恶意用户读取或篡改。
此外,已知存在安全缺陷的序列化库(如早期版本的Fastjson)进行数据处理,也会增加应用程序受攻击的风险。这些库可能存在缺陷,允许攻击者构造特定的序列化数据来执行未授权的代码或命令。
序列化与反序列化序列化:把变量或对象转化为可以传输的字节序列的过程反序列化:把字节序列还原为变 ...
Pytorch学习
近期准备开始做毕设,因为要用来实现一些算法的功能,因此在对比了各种框架后还是选择了pytorch。相较于其他的深度学习框架,pytorch的使用更加的简洁,也易于理解,并且,还有一个选择它的原因在于Github上有很多的开源代码都是使用PyTorch进行开发的。而且Pytorch也有着越来越完善的扩展库,可以说正处于当打之年。
Pytorch加载数据 如何使用pytorch加载读取数据,主要涉及到两个类 Dataset 和 Dataloader 。
Dataset 对数据进行加载时,例如对一堆数据,例如此时图中的”垃圾“,dataset主要是告诉我们如何获取数据,例如提取可回收数据,并对其进行一个编号。同时还会获取数据相应的label,因此dataset主要是提供一种方式来获取数据及其真实的label。
Dataloader 可用来对dataset整理出来的数据进行打包,主要是为了为后面的网络提供不同的数据形式。
对Dataset来说,如何获取每一个数据及其label、告诉我们总共有多少个数据,是它主要实现的功能。
以下是一个读取数据示例:
12345678910111213 ...
