regex - HaProxy:从标头中获取字符串
问题描述
我有一个 007 任务:将 HaProxy 设置为从 CDN 发送的标头中获取字符串,如果检测到字符串,HaProxy 将仅允许对后端服务器的 HTTPS 请求。目标是阻止我们的 CDN 以外的非授权访问到达后端服务器。
到目前为止我最接近的。
前端:
acl allow_traffic_from_cdn req.hdr(STRING NAME HERE) -m str (STRING VALUE HERE)
http-request deny if !allow_traffic_from_cdn
当我尝试通过 CDN 访问服务器时,haproxy.log
确实显示了我期望的字符串,但仅此而已。只能访问主页,如果您尝试不访问任何其他页面,则会收到错误消息:(
我一直在阅读文档,但我无法完全理解此过程。
那么,如何设置 haproxy 以从允许访问的标头中获取值,但如果 HTTPS 请求没有访问,则阻止访问?
谢谢
...
解决方案
您可以创建 ACL 来搜索标头及其值是否存在。然后,拒绝所有缺少此 ACL 的请求:
acl from_cdn hdr(X-my-cdn-header) -i "your header value"
http-request deny if !from_cdn
推荐阅读
- javascript - 用户模型的安全返回盐数据吗?
- wordpress - Wordpress 和 AWS API Gateway 连接?
- css - 在 flexbox 内按比例缩放画布
- linux - 使用 awk 更改 no_proxy 环境变量值
- python-3.x - 我正在为每个 /profile/url 生成一个个人资料页面。我怎样才能只为我的网站上的帐户生成一个页面?
- react-native - 在 React Native 中按下按钮时如何更改 FlatList 项目的背景颜色
- c# - 在字典 C# 中存储为值的字符串列表
- php - 禁用 PHP 5.6.36 线程安全
- ios - 无法使用 ObjectMapper Swift 4.1 进行序列化
- javascript - 异步函数中没有定义睡眠?