跨站请求伪造
参考资料Web漏洞之CSRF(跨站请求伪造漏洞)详解 - 知乎 (zhihu.com)
介绍跨站请求伪造,在用户访问B网站时,B网站中有通往A网站的攻击连接,用户点击后会在不知情中对A网站进行操作。
若用户在A网站中先进行登录,A网站为了保存用户的登录状态,会向浏览器中存储cookie。此时若用户在没有关闭浏览器的情况下,访问的B网站,点击了B网站中的攻击连接,B网站会发起一个向A网站的操作并携带A网站的cookie,模拟登录用户的操作。
条件
用户访问A并产生了cookie
用户在没有关闭浏览器的情况下访问了网站B
防御验证请求中的Referer字段Referer字段为浏览器产生的,表示该请求的来源,服务端可通过该字段判断请求是否从A网站发起的,若是通过B网站发起的请求,则Referer会指向B,则服务器可拒绝请求。
优点:操作简单,只需要在处理请求之前先验证Referer头即可,往后的业务基本无感。
缺点:安全性依赖于浏览器的安全性,若浏览器构造的Referer字段被攻击,则此方法无效,且由于有些用户认为Referer字段侵犯了用户的隐私权,故浏览器可以设置不发送Referer ...
Junit
注解
@Test
@Test(expected=XX.class) 预期出现的异常
@Test(timeout=) 设置超时时间
@Ignore 修饰的测试方法会被测试运行器忽略
@RunWith 更改测试运行器
@BeforeClass 在@Test之前执行一次
@BeforeMethod 在每次@Test之前都执行一次
测试API
Assertions.assertEquals(表达式1,表达式2),判断两个表达式的结果是否相同
Lombok
安装
在idea插件市场找到lombok插件进行安装:Lombok
新版idea会默认安装
在idea的设置中启用 enable annotation processing
Build, Execution, Deployment > Compuler > Annoation Processors
导入LomBok依赖
1234567<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --><dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.30</version> <scope>provided</scope></dependency>
构造器相关
@AllArgsConstruc ...
http
超文本传输协议当前已有http2和http3,但通常使用的都是http1.1
定义交互
客户端和服务端交互的方式
请求 客户端向服务端发送
响应 服务端向客户端响应
客户端和服务端交互的数据格式
请求报文
请求行
请求头
请求体
响应报文
响应行
响应头
响应体
长连接和短连接http协议底层为tcp/ip协议支持,tcp是面向连接的协议。
短连接:每次获取资源都重新建立tcp连接,资源获取到后关闭连接(http 1.0)
长连接:第一次获取资源建立tcp连接,接着保持连接开启,直到资源获取完毕将连接关闭(http 1.1)
缓存客户端会将获取过的文件先进行缓存,下次先看缓存(http 1.1)
请求报文
请求行
请求方式(GET/POST……)
请求路径(/hello/……)
请求协议(HTTP/1.1)
请求头
key-value格式
常见头
Host: 127.0.0.1:8080 // 服务器的ip和端口号
Connection: keep-alive // ...
tomcat
官网Apache Tomcat® - Welcome!
Apache Tomcat® - 我应该用哪个版本?
常见的JavaWeb服务器
Tomcat 应用最广
Jetty 轻量级
JBoss
GlassFish
Resin
WebLogic(Oracle) 付费
WebSphere(IBM) 付费
特点
技术更新速度快
性能好
免费
安装前置条件需要配置对应版本的jvm,参考Apache Tomcat® - 我应该用哪个版本?
下载
注意tomcat10开始,原来的javax包命名由于版权原因更新为jakarta包,故之前开发的应用如果用到了javax会无法运行。(同样反向也不可),故不要项目开发到一半更换tomcat
迁移工具 https://github.com/apache/tomcat-jakartaee-migration
下载压缩包后直接解压到某目录即可
启动进入tomcat目录下的bin,执行startup.bat
验证访问 tomcat首页
停止进入tomcat目录下的bin,执行shutdown.bat
解决控制台乱码乱码的原因是控制台的默认编码不是utf- ...
DOM4J
使用步骤
导入依赖
*注意:jdk1.8之前的版本(不包括1.8)需要使用dom4j 2.0.的版本,与其后版本不兼容
创建解析器对象(SAXReader)
解析xml获得Document对象
获取根节点RootElement
获取根节点下的子节点
案例123456SAXReader saxReader = mew SAXReader();// 通过类加载器获取项目目录下的内容InputStream in = TestClass.class.getClassLoaser().getResourceAsStream("jdbc.xml")Document doc = saxReader.read(in);// 获取根标签Element root = doc.getRootElement();
Node
element 标签
attribute 标签属性
text 标签中的内容文本
子元素12// 获取子元素listList<Element> list = element.elements();
获取标签名1element.getName ...
xml
XMLEXtensible Markup Language 可扩展标记语言
常用于做配置文件
声明1<?xml version="1.0" encoding="UTF-8"?>
特点
根标签只能有一个
第一行永远是声明,前不可有任何注释
xml可以有约束,用于约束xml中可以出现的内容
dtd 语法简单,相对不细致,后缀为dtd
schema 复杂,相对细致,后缀为xsd
hana数据库
参考资料安装:https://www.easysap.com/article-39.html
jdbc 连接 https://blog.csdn.net/u010978399/article/details/117327475
HANA Studio 安装双击安装包,选择安装路径后一直继续即可
HANA Studio 连接数据库
JDBC连接HANA12345<dependency> <groupId>com.sap.cloud.db.jdbc</groupId> <artifactId>ngdbc</artifactId> <version>2.8.12</version></dependency>
1234567891011121314151617181920212223242526 /** * @param args */public static void main(String[] args) { getConnection();} ...
mulvus相关知识
参考资料https://www.bilibili.com/video/BV11a4y1c7SW/?spm_id_from=333.880.my_history.page.click
https://milvus.io/
向量给定一个数据,提取其多维度的特征,这些维度中的特征共同组成了该数据在坐标系中的坐标点,从原点指向数据坐标点的带有方向和大小的数据称为向量,一个向量即可在一个坐标系中表示一个数据
向量之间的最近距离可以反应数据的相似程度,从而可以搜索给定数据的近似数据,类似的应用如”以图搜图”,
向量数据库的应用便是,给定一个查询向量,从数据库中找到与查询数据最为相似的一些向量,具有一定模糊性
最近邻
暴力搜索/平坦搜索:给定向量与所有数据库中向量进行比较,搜索质量完美,时间过长
减小搜索范围
聚类
先对数据库中数据使用聚类算法分类,在与查询向量最近的类中查询近似向量
位置敏感哈希
增大哈希碰撞的可能性,用于分桶,桶作为查询范围
对哈希值进行分段分桶
内存开销乘积量化用聚类的中心也叫质心来代替这个范围的向量,会丢失向量的具体值,但可以省去内存开销
给每个类的质 ...
xfire服务的搭建
参考资料SpringBoot2 整合 XFIRE 服务端和客户端_springboot xfire_gblfy的博客-CSDN博客
Attribute “singleton” must be declared for element type “bean”._singletonattribute-CSDN博客
原因某项目有个使用了xfire框架的webservice服务,报错:
sap pi中间件请求会出现此问题,但soapui请求不会,为了在soapui上复现该问题,搭建了一个xfire服务
搭建pom注意springboot版本
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" ...