概念

跨站点请求伪造预防备忘单

介绍

跨站点请求伪造 (CSRF) 是一种攻击,当恶意网站、电子邮件、博客、即时消息或程序导致用户的 Web 浏览器在用户经过身份验证时在受信任的站点上执行不需要的操作时,就会发生这种攻击。CSRF 攻击之所以有效,是因为浏览器请求自动包含所有 cookie(包括会话 cookie)。因此,如果用户通过了站点的身份验证,站点将无法区分合法的授权请求和伪造的经过身份验证的请求。当使用正确的授权时,这种攻击就会被阻止,这意味着需要一个挑战-响应机制来验证请求者的身份和权限。

成功的 CSRF 攻击的影响仅限于易受攻击的应用程序暴露的功能和用户的权限。例如,这种攻击可能会导致资金转移、更改密码或使用用户的凭据进行购买。实际上,攻击者使用 CSRF 攻击使目标系统在受害者不知情的情况下通过受害者的浏览器执行功能,至少在未经授权的交易提交之前是这样。

    

CSRF 和 X-CSRF-Token 的区别

CSRF 保护有多种方法。

传统方式(“同步器令牌”模式)通常涉及为每个请求设置唯一的有效令牌值,然后在随后发送请求时验证该唯一值。通常通过设置隐藏表单字段来完成。令牌值通常是短暂的并与该会话相关联,因此如果黑客尝试重用他们之前在页面上看到的值,或者尝试猜测该值,他们可能会失败。因此,只有来自您的应用程序的请求才有效,来自应用程序/域外部的伪造请求(也称为跨站点请求伪造)将会失败。

如何开始使用事件驱动的微服务

许多组织在其发展过程中达到了这样一个阶段,即曾经为他们提供良好服务的单一应用程序开始阻碍他们的发展。也许业务需要现有架构无法支持的新功能,或者需要更灵活的方法来存储和访问应用程序的数据。团队成长、相互冲突的性能需求和新的竞争性技术也会对单一的代码库构成挑战。采用事件驱动的微服务架构可以帮助企业应对这些挑战。…

JSON Web Tokens (jwt)简介

什么是 JSON Web Token?

JSON Web Token (JWT) 是一种开放标准 (RFC 7519),它定义了一种紧凑且独立的方式,用于在各方之间以 JSON 对象的形式安全地传输信息。此信息可以验证和信任,因为它是经过数字签名的。JWT 可以使用密钥(使用 HMAC算法)或使用 RSA 或 ECDSA 的公钥/私钥对进行签名。

尽管可以对 JWT 进行加密以在各方之间提供保密性,但我们将重点关注已签名的令牌。签名令牌可以验证其中包含的声明的完整性,而加密令牌可以向其他方隐藏这些声明。当使用公钥/私钥对对令牌进行签名时,签名还证明只有持有私钥的一方才是签名者.

什么时候应该使用JSON Web Tokens?

以下是 JSON Web Tokens

Memcache简介

什么是 Memcached?

免费开源、高性能、分布式内存对象缓存系统, 本质上是通用的,但旨在通过减轻数据库负载来加速动态 Web 应用程序d.

Memcached ( memcache )  是一种内存中的键值存储,用于缓存来自数据库调用、API 调用或页面呈现结果的任意小块数据(字符串、对象).

Memcached简单而强大. 其简单的设计促进了快速部署、易于开发,并解决了大数据缓存面临的许多问题。其 API 适用于大多数流行语言.…

gRPC简介

gRPC(Remote Procedure Calls)

概述

GRPC是一个高性能、通用的开源RPC框架,基于底层HTTP/2协议标准协议层Protobuf序列化协议开发,支持众多的开发语言。

gRPC 也是基于以下理念:定义一个服务,指定其能够被远程调用的方法(包含参数和返回类型)。在服务端实现这个接口,并运行一个 gRPC服务器来处理客户端调用。在客户端拥有一个存根能够像服务端一样的方法。

gRPC使用protocol buffers作为接口描述语言(IDL)以及底层的信息交换格式


优点

  1. 基于 HTTP/2 之上的二进制协议(Protobuf 序列化机制);
  2. 一个连接上可以多路复用,并发处理多个请求和响应;
  3. 多种语言的类库实现;
  4. 服务定义文件和自动代码生成(.proto 文件和 Protobuf 编译工具)。
  5. RPC 还提供了很多扩展点,用于对框架进行功能定制和扩展,例如,通过开放负载均衡接口可以无缝的与第三方组件进行集成对接(Zookeeper、域名解析服务、SLB 服务等)

原理

https://www.colabug.com/4616436.html


通信方式

Simple RPC

简单rpc ,这就是一般的rpc调用,一个请求对象对应一个返回对象

proto语法:

    

gRPC详解

1.什么是gRPC

gRPC是rpc框架中的一种,是rpc中的大哥

是一个高性能,开源和通用的RPC框架,基于Protobuf序列化协议开发,且支持众多开发语言。

面向服务端和协议端,基于http/2设计,带来诸如双向流,流控,头部压缩,单TCP连接上的多路复用请求等特性。这些特性使得其在移动设备上表现的更好,更省电和节省空间。

在 gPRC 里客户端可以向调用本地对象一样直接调用另一台不同机器上服务端应用的方法,使得您能够更容易地创建分布式应用和服务。

与许多RPC系统类似,gRPC也是基于以下理念:定义一个服务,指定其能够被远程调用的方法(包含参数和返回类型)。在服务端实现这个接口。并运行一个gRPC服务器来处理客户端调用。在客户端拥有一个存根能够向服务端一样的方法。

补充一个知识点(HTTP/2 与HTTP1.X的区别)

用于数据传输的二进制分帧

HTTP/2采用二进制格式传输协议,而非HTTP/1.x的文本格式。

img

多路复用

HTTP/2支持通过同一个连接发送多个并发的请求。

HTTP/1.x虽然通过pipeline也能并发请求,但多个请求之间的响应依然会被阻塞。

 

服务端推送

服务端推送是一种在客户端请求之前发送数据的机制。在HTTP/2中,服务器可以对客户端的一个请求发送多个响应。而不像HTTP/1.X一样,只能通过客户端发起request,服务端才产生对应的response

减少网络流量的头部压缩。

HTTP/2对消息头进行了压缩传输,能够节省消息头占用的网络流量。至于如何压缩的,可以查看这篇:HPACK: Header Compression for