目录
百战程序员,全站22050+开发课程+文档 ,学习精选优质好课快人一步!观看视频 快捷键ALT+N

JAVA全系列 教程

3762个小节阅读:7088.3k

收藏
全部开发者教程

C语言快速入门

JAVA全系列 教程

面向对象的程序设计语言

Python全系列 教程

Python3.x版本,未来主流的版本

人工智能 教程

顺势而为,AI创新未来

大厂算法 教程

算法,程序员自我提升必经之路

C++ 教程

一门通用计算机编程语言

微服务 教程

目前业界流行的框架组合

web前端全系列 教程

通向WEB技术世界的钥匙

大数据全系列 教程

站在云端操控万千数据

AIGC全能工具班

A

A A

White Night

阅读(88)
赞(0)

服务网关_Higress策略配置-跨域配置

image-20231017173416747

为什么会出现跨域问题

出于浏览器的同源策略限制。同源策略是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。

什么是跨域

当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域

当前页面url被请求页面url是否跨域原因
http://www.test.com/http://www.test.com/index.html同源(协议、域名、端口号相同)
http://www.test.com/https://www.test.com/index.html跨域协议不同(http/https)
http://www.test.com/http://www.baidu.com/跨域主域名不同(test/baidu)
http://www.test.com/http://blog.test.com/跨域子域名不同(www/blog)
http://www.test.com:8080/http://www.test.com:7001/跨域端口号不同(8080/7001)

跨域问题演示

在resources中创建templates文件夹,在编写index页面

问题出现

image-20220215170827023

Higress解决如何允许跨域

image-20220225213035768

CORS

  • 如何允许跨域,一种解决方法就是目的域告诉请求者允许什么来源域来请求,那么浏览器就会知道B域是否允许A域发起请求。
  • CORS("跨域资源共享"(Cross-origin resource sharing))就是这样一种解决手段。

CORS使得浏览器在向目的域发起请求之前先发起一个OPTIONS方式的请求到目的域获取目的域的信息,比如获取目的域允许什么域来请求的信息。

实时效果反馈

1.当一个请求url的____之间任意一个与当前页面url不同即为跨域。

A 协议、域名

B 协议、端口

C 协议、域名、请求类型

D 协议、域名、端口

2.最常用解决跨域的手段是____

A CORS

B COS

C COR

D 以上都是错误

答案

1=>D 2=>A

服务网关_Higress策略配置-重试机制

服务网关_Higress策略配置-基于Key限流

生活中的限流

春运,一项全人类历史上最大规模的迁移活动,抢火车票一直是每年跨年以后的热点话题。

image-20220120152227156

key-rate-limit插件实现了基于特定键值实现限流,键值来源可以是 URL 参数、HTTP 请求头

配置字段

名称数据类型填写要求默认值描述
limit_by_headerstring选填,limit_by_header,limit_by_param 中选填一项-配置获取限流键值的来源 http 请求头名称
limit_by_paramstring选填,limit_by_header,limit_by_param 中选填一项-配置获取限流键值的来源 URL 参数名称
limit_keysarray of object必填-配置匹配键值后的限流次数

limit_keys中每一项的配置字段说明

名称数据类型填写要求默认值描述
keystring必填-匹配的键值
query_per_secondnumber选填,query_per_second,query_per_minute,query_per_hour,query_per_day 中选填一项-允许每秒请求次数
query_per_minutenumber选填,query_per_second,query_per_minute,query_per_hour,query_per_day 中选填一项-允许每分钟请求次数
query_per_hournumber选填,query_per_second,query_per_minute,query_per_hour,query_per_day 中选填一项-允许每小时请求次数
query_per_daynumber选填,query_per_second,query_per_minute,query_per_hour,query_per_day 中选填一项-允许每天请求次数

配置示例

1、识别请求参数 apikey,进行区别限流

2、识别请求头 x-ca-key,进行区别限流

服务网关_Higress策略配置-机器人拦截

功能说明

bot-detect插件可以用于识别并阻止互联网爬虫对站点资源的爬取

配置字段

名称数据类型填写要求默认值描述
allowarray of string选填-配置匹配 User-Agent 请求头的正则表达式,匹配命中时将允许其访问
denyarray of string选填-配置匹配 User-Agent 请求头的正则表达式,匹配命中时将屏蔽请求
blocked_codenumber选填403配置请求被屏蔽时返回的 HTTP 状态码
blocked_messagestring选填-配置请求被屏蔽时返回的 HTTP 应答 Body

注意:

allowdeny 字段可以均不配置,则执行默认的爬虫判断逻辑,通过配置 allow 字段可以将原本命中默认爬虫判断逻辑的请求放行,通过配置 deny 字段可以增加额外的爬虫判断逻辑。

默认的爬虫判断正则表达式集合如下:

配置示例

放行原本命中爬虫规则的请求

若不作该配置,默认的 Golang 网络库请求会被视做爬虫,被禁止访问

增加爬虫判断

根据该配置,下列请求将被禁止访问:

北京市昌平区回龙观镇南店村综合商业楼2楼226室

©2014-2023 百战卓越(北京)科技有限公司 All Rights Reserved.

京ICP备14032124号-2