首页 > 其他分享 >小技巧:将waf部署到用户的浏览器

小技巧:将waf部署到用户的浏览器

时间:2024-04-08 20:23:00浏览次数:19  
标签:浏览器 技巧 waf coraza 签名 coreruleset go run 请求

首先推荐一个开源WAF: https://github.com/corazawaf/coraza

该产品改造了coreruleset为coraza-coreruleset以保证适配性: https://github.com/corazawaf/coraza-coreruleset

在研究过程中我发现他有个在线网址提供给大家测试WAF防护策略: https://playground.coraza.io/

也是工作习惯了,用yakit抓了个包想看看是怎么发送到后台的,结果发现点击左上角run(就是直觉上的发送键),但是一个请求都没到后台

于是寻找到了这个页面的源码一探究竟: https://github.com/k4n5ha0/coraza-playground

看完源代码了解到这个系统将go语言写的coraza编译成了wasm文件让js调用,在浏览器内就将http请求包含的威胁判断了出来

所以我们来试一下,操作系统win10,、go1.22.2、git环境:

该waf不兼容windows请在git客户端下执行编译命令

go run mage.go build

之后通过以下命令执行

go run mage.go run

之后就可以使用浏览器访问如下图:

在代码目录中,编译生成的www目录我们可以找到编译成功的前端代码

其中app.js中就包含了调用wasm的代码如下图

 

最终设计:

1)设计系统时应要求前端使用统一的请求发送方法,前端代码应强混淆强加密

2)系统在发送请求之前应调用coraza执行请求过滤策略(也就是coraza-coreruleset中REQUEST为开头的策略),如无风险后增加一个签名后才能向后台服务器发送,服务器获取到请求后如签名不正确则丢弃该请求

3)服务器将响应包增加签名后发送给当前请求

4)前端在获取到响应包后对签名进行校验,如果签名通过则将响应包发送给coraza执行响应过滤策略(也就是coraza-coreruleset中RESPONSE为开头的策略),如果通过则视为无问题

5)上述前端的签名校验和加密策略应放到wasm之中,并且对wasm做混淆加密防止被逆向

 

谢谢

标签:浏览器,技巧,waf,coraza,签名,coreruleset,go,run,请求
From: https://www.cnblogs.com/k4n5ha0/p/18122442

相关文章

  • 【顶部距离计算】计算元素顶部与浏览器顶部的距离
    在开发中,我们常常需要计算某个元素顶部与浏览器视口顶部的距离,只需要一个方法即可计算解决:使用getBoundingClientRect()方法代码示例:接收一个参数element表示需要计算的元素//计算该元素的顶部距离浏览器的顶部距离constgetElementTop=element=>{constrect......
  • 面试常问问题——浏览器访问网址发生了什么?
    总体来说分为以下几个过程:DNS解析TCP连接发送HTTP请求服务器处理请求并返回HTTP报文浏览器解析渲染页面连接结束 1.域名解析2.发起TCP的3次握手3.建立TCP连接后,发起http请求4.服务器响应http请求,浏览器得到html代码5、浏览器解析html代码,并请求html代码中的资源(......
  • BOSHIDA DC电源模块的调试和故障排除技巧
    BOSHIDADC电源模块的调试和故障排除技巧下面是DC电源模块调试和故障排除的一些技巧: 1.确保输入电源稳定:首先要确保输入电源的稳定性,使用稳压器、滤波器等装置来保持输入电压的稳定。2.检查输出电压:使用万用表或示波器检查输出电压是否达到预期值。如果输出电压不正常,可能......
  • 甘特图/横道图制作技巧 - 任务组
    在甘特图中通过合理的任务分组可以让项目更加清晰,修改也更方便。 列如上面的甘特图一眼不太容易看清楚整体的进度。或者需要把所有的任务整体的延迟或者提前只能这样一个一个的任务调整,就比较麻烦。 通过给任务分组,看这上面整体的进度就非常清晰了。整体的进度调整任务进......
  • Chrome浏览器前端开发调试时强制更新js、css静态资源文件缓存的方法
    以Chrome浏览器为例,国产浏览器未做全面测试。前端开发静态文件时,浏览器访问会缓存样式、图片、js等,怎么快速更新缓存。以下方法特别适合只想清除某个网页的缓存,而不想清除全部浏览器缓存可以采用以下方法。一、强制刷新同时按住ctrl+f5或ctrl+shift+r进行访问页面强制刷新,一般......
  • <datalist>大多数浏览器不支持,用html.css 自己实现<datalist>功能
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>CustomDropdown</title><styl......
  • 解决WordPress页面错位问题的实用技巧
    解决WordPress页面错位问题的实用技巧WordPress作为世界上最流行的内容管理系统之一,提供了强大的功能和灵活的定制性,使得许多网站管理员和开发人员选择使用它来搭建自己的网站。然而,有时候在使用WordPress创建页面时,可能会遇到页面错位的问题,导致页面布局混乱,影响用户体验。那么,......
  • 【随笔】Git 高级篇 -- 提交的技巧(上) rebase & commit --amend(十八)
    ......
  • 手把手教你做阅读理解题-初中中考阅读理解解题技巧013-dearMars Project
    PDF格式公众号回复关键字:ZKYD013阅读理解技巧,在帮助读者有效获取和理解文本信息方面发挥着重要作用,熟练掌握如下6个技巧,可快速突破阅读理解1预览文章结构在开始深入阅读之前,快速浏览文章的标题、段落开头和结尾,可以迅速把握文章的主题、大致内容和结构标题通常能概括文章......
  • VS Code 使用技巧
    VSCode使用技巧1.常用快捷键自动格式化 Shift+Alt+F向下复制行 Shift+Alt+下箭头,可以改成Ctrl+D选中多个 Alt+鼠标点击切换单行注释 Ctrl+/切换多行注释Shitf+Alt+A可以改成Ctrl+Shift+/Ctrl+/ ——同时多个单行注释Shift+Alt+f——给整篇代码对齐shi......