我设想中的是:
/something_like_password/1145
/something_like_password/1919
/not_password/810
第一条和第二条,路径第一部分是正确的(当作简单鉴权用),就解析第二部分,得到的数字就作为端口号,也就是说 WebSocket 连接建立后,数据分别被软件转发到本机的 1145 和 1919 端口(并建立 TCP 双向连接)
第三条,『密码』对不上(包括其他非法路径格式),不予连接
在网上找了找,似乎没有成品实现的,不知道是我找的方法不对还是真的没有?
1
momocraft 2023-06-22 10:49:03 +08:00
要求这么具体自己写啦
|
2
opengps 2023-06-22 11:21:58 +08:00
这种需求与主流防御方案不符合(主流的防火墙不会这么随意的开放端口),所以要这么明确的用法,那就需要匹配自研的软件了,而且不能有防火墙规则阻拦
|
3
1423 2023-06-22 14:26:00 +08:00
拿 gost 改,写过 go 的话一天基本可以搞定
|
4
huahsiung 2023-06-22 17:45:39 +08:00
这玩意不是 nginx location 不就行了吗?
location /something_like_password/1145 { .... } location /something_like_password/1919 { .... } location / { #未匹配成功,默认匹配 return 444; #444 为 nginx 的默认断开,不发送任何数据 } |
6
huahsiung 2023-06-22 19:02:09 +08:00
@MFWT
不是可以用模糊匹配前辍? location ~ /something_like_password { ... } 然后把$url 切出来。 nginx 里面有一个变量$url ,就是代表当前 url ,https://web.com/something_like_password/1145 。 可以写一个 lua |
8
xuanbg 2023-06-25 12:31:10 +08:00
为何不固定端口?我去年也被人带坑里去,要求给每个群一个特定端口。最后遗留的问题就是没法做反向代理,端口也容易被垃圾数据包攻击。前一阵子回过神来,改成一个固定端口,然后加上身份认证,就是客户端创建链接的时候带两个 url 参数。现在用起来好得很。
|