【相关概念记录】

名词解释:
容器:容器是一种轻量级虚拟化技术,能够一次构建到处运行。Docker 的本质就是宿主机的一个进程,通过 namespace 实现资源隔离,通过 cgroup 实现资源限制,通过写时复制技术(copy-on-write)实现了高效的文件操作。
容器逃逸:攻击者通过劫持容器化业务逻辑或直接控制等方式,已经获得了容器内某种权限下的命令执行能力,攻击者利用这种命令执行能力,借助一些手段,进一步获得该容器所在直接宿主机上某种权限下的命令执行能力。
堡垒机, 即在一个特定的网络环境下,为了保障网络和数据不受来自外部和内部用户的入侵和破坏,而运用各种技术手段监控和记录运维人员对网络内的服务器、网络设备、安全设备、数据库等设备的操作行为,以便集中报警、及时处理及审计定责。
蜜罐, 是一个包含漏洞的系统,它模拟一个或多个易受攻击的主机,给黑客提供一个容易攻击的目标。由于蜜罐没有其他的任务需要完成,因此所有连接的尝试都被视为是可疑的。蜜罐的另一个用途是拖延攻击者对其真正有价值的内容将不受侵犯。
Sandbox(又叫沙箱、沙盘)即是一个虚拟系统程序,允许你在沙盘环境中运行浏览器或其他程序,因此运行所产生的变化可以随后删除。它创造了一个类似沙盒的独立作业环境,在其内部运行的程序并不能对硬盘产生永久性的影响。 在网络安全中,沙箱指在隔离环境中,用以测试不受信任的文件或应用程序等行为的工具。

linux文件权限相关
Linux 系统是一个典型的多用户系统,不同的用户处于不同的地位。为了保护系统的安全性,Linux系统对不同用户访问同一文件的权限做了不同的规定。
对于一个 Linux 系统中的文件来说,它的权限可以分为三种:读的权限、写的权限和执行的权限,分别用 r、w 和 x 表示。不同的用户具有不同的读、写和执行的权限。

/etc/passwd 文件,由于该文件允许所有用户读取,易导致用户密码泄露,因此 Linux 系统将用户的密码信息从 /etc/passwd 文件中分离出来,并单独放到了此文件中。
用户名:密码:UID(用户ID):GID(组ID):描述性信息:主目录:默认Shell

/etc/shadow 文件,用于存储 Linux 系统中用户的密码信息,又称为“影子文件”。
文件中每行代表一个用户,同样使用 “:” 作为分隔符,不同之处在于,每行用户信息被划分为 9 个字段。
用户名:加密密码:最后一次修改时间:最小修改时间间隔:密码有效期:密码需要变更前的警告天数:密码过期后的宽限时间:账号失效时间:保留字段

1. Web应用安全测试技术
经过多年的发展,目前业界常用的技术主要分为3大类别。
DAST:动态应用程序安全测试(Dynamic Application Security Testing)技术在测试或运行阶段分析应用程序的动态运行状态。它模拟黑客行为对应用程序进行动态攻击,分析应用程序的反应,从而确定该Web应用是否易受攻击。

SAST:静态应用程序安全测试(Static Application Security Testing)技术通常在编码阶段分析应用程序的源代码或二进制文件的语法、结构、过程、接口等来发现程序代码存在的安全漏洞。

IAST:交互式应用程序安全测试(Interactive Application Security Testing)是2012年Gartner公司提出的一种新的应用程序安全测试方案,通过代理、VPN或者在服务端部署Agent程序,收集、监控Web应用程序运行时函数执行、数据传输,并与扫描器端进行实时交互,高效、准确的识别安全缺陷及漏洞,同时可准确确定漏洞所在的代码文件、行数、函数及参数。IAST相当于是DAST和SAST结合的一种互相关联运行时安全检测技术。

2. 序列化与反序列化
当两个进程进行远程通信时,可以相互发送各种类型的数据,包括文本、图片、音频、视频等, 而这些数据都会以二进制序列的形式在网络上传送。当两个 Java 进程进行通信时,需要 Java 序列化与反序列化实现进程间的对象传送。
序列化:将 Java 对象转换成字节流的过程

public interface Serializable {}
ObjectOutputStream objectOutputStream = new ObjectOutputStream( new FileOutputStream( new File("xxx.txt") ) );     //文件名
objectOutputStream.writeObject( ClassName );    //类名
objectOutputStream.close();

反序列化:将字节流转换成 Java 对象的过程
以面向对象的方式将数据存储到磁盘上的文件。

ObjectInputStream objectInputStream = new ObjectInputStream( new FileInputStream( new File("xxx.txt") ) );
XXX xxx = (XXX) objectInputStream.readObject();
objectInputStream.close();

serialVersionUID 是一个常数,用于唯一标识可序列化类的版本。从输入流构造对象时,JVM 在反序列化过程中检查此常数。如果正在读取的对象的 serialVersionUID 与类中指定的序列号不同,则 JVM 抛出InvalidClassException。这是为了确保正在构造的对象与具有相同 serialVersionUID 的类兼容。

JVM 在序列化过程中会跳过瞬态变量。这意味着在序列化对象时不会存储 age 变量的值。因此,如果成员变量不需要序列化,则可以将其标记为瞬态。

3. OGNL表达式 (可以方便地操作对象属性的开源表达式语言)
Object-Graph Navigation Language 表达式语法导航对象图
操作对象:基于当前对象的上下文。 #、%和$符号

使用:
属性名称:如对象user的属性username,可以使用user.username来获取.
方法调用:可以使用user.hashCode()返回当前对象的哈希码.
数组元素:对于userlist数组对象,可以使用userlist[0]来引用其中的某一个元素.

Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值