已掉线,重新登录

首页 > 绿虎论坛 > 移动设备 > 其他 (发帖)

短信现在似乎发不了包含网址的内容


『回复列表(43|隐藏机器人聊天)』

20.

@上善若水,我是被刷了9.53TB,它限制再高也不会有这么高吧。如果真这么高,那些跑PCDN刷下载流量的不如自己开个轻量服务器挂下载。

(/@Ta/2024-12-26 15:23//)

21.

@上善若水,它还真写的是不限流量……

image.png(43.63 KB)

(/@Ta/2024-12-26 15:29//)

22.

@上善若水,我现在已经买了一个,等我把 file.winegame.net 的流量导过去,到时候再被刷看看阿里云作何反应

20GB的系统盘用来做CDN缓存应该够用了。

image.png(87.38 KB)

(/@Ta/2024-12-26 15:54//)

23.

@老虎会游泳

只要连续点击5次 file.winegame.net 上的任意链接就会触发CDN超速。

试了下,连下 10 次,都没触发限速?

这个限速是服务器端实现的吗?没超速再跳转到实际链接(这个实际链接还是会被刷呀)?还是?

(/@Ta/2024-12-27 01:05//)

24.

@无名啊,cdn边缘节点会验证一个有效期30秒的key,如果key不正确就会跳转到acl.php进行获取。acl.php会输出加密js跳转到带key的下载地址,所以只有真正的浏览器能跳转到下载地址。还有,限速是10秒内5次,如果低于这个频率也不会触发。所以我说的是(10秒内)连续点击5次,而不是连续下载5次。

(/@Ta/2024-12-27 20:12//)

25.

@无名啊,我确实应该再添加一个下载次数限制。比如一小时内同一个文件下载次数不能超过5次之类的。不过判断方法得仔细想一想,要防止没下完重试的时候也被拒绝

可能最好的方法是添加一个流量配额,如果某个IP消耗了多少流量,就不让它继续下载。

对了,我还可以接入验证码,第二次下载同一个文件的时候直接要求输入验证码

(/@Ta/2024-12-27 20:46//)

26.

@老虎会游泳,阿里云的这个轻量云速度还挺快,不利用起来吗
一加ace2Pro(灰|24+1024)

(/@Ta/2024-12-27 20:46//)

27.

@上善若水,我得写一个做cdn的nginx配置,把文件滚动缓存到本地,快满了就删掉老的。你有类似的配置文件吗?

(/@Ta/2024-12-27 20:48//)

28.

@老虎会游泳,让ai写一个。
一加ace2Pro(灰|24+1024)

(/@Ta/2024-12-27 20:56//)

29.

@上善若水,嗯我在尝试

(/@Ta/2024-12-27 20:58//)

30.

@上善若水,我发现了一个好方法,我先用ossfs把阿里云对象存储挂载为本地路径,然后就可以直接把它设为nginx wwwroot了。
https://github.com/aliyun/ossfs/blob/master/README-CN.md

(/@Ta/2024-12-27 22:06//)

31.

@老虎会游泳

  1. CDN 节点,能自定义验证手段吗?(相当于一个性能弱的服务器了?)还是只能由厂家提供?(如限速等)

  2. 拿到带 key 的地址后,30 秒内就能无限刷了?甚至交给多台设备去刷?

    acl.php会输出加密js跳转到带key的下载地址

  3. 好像小网盘做得挺好,地址用一次就失效,下载时限速,同 IP 也不能(同时)下两个。。

(/@Ta/2024-12-27 22:43//)

32.

@老虎会游泳,宝塔面板好像有插件可以直接挂载oss为本地文件。
一加ace2Pro(灰|24+1024)

(/@Ta/2024-12-27 22:59//)

33.

@无名啊,阿里云CDN可以配EdgeScript自定义策略,我就是用它写了个签名验证规则:

image.png(411.4 KB)

(/@Ta/2024-12-27 23:45//)

34.

nginx的话,宝塔选装 tengine 就可以在配置文件里编写lua代码实现相同的功能:

    location / {
      rewrite_by_lua_block {
---------------------------------------------------------------------------------
local LUTRIS_ACL_KEY = '一个key'
local ALLOW_UA_LIST = {'一个User-Agent正则表达式列表'}

local function is_valid_key(key, url, ua)
    local t = ngx.time()
    local tMod = t - (t % 30)

    local signData = url .. LUTRIS_ACL_KEY .. tostring(tMod) .. ua
    local sign = ngx.md5(signData)

    return key == sign
end

local function is_allow_ua(ua)
    for _, allowUA in ipairs(ALLOW_UA_LIST) do
        if ngx.re.match(ua, allowUA) then
            return true
        end
    end
    return false
end

local ua = ngx.var.http_user_agent
local key = ngx.var.arg_k
local uri = ngx.var.uri

if not is_allow_ua(ua) then
    if not is_valid_key(key, uri, ua) then
        local newUrl = 'https://hu60.cn/q.php/lutris.acl.html?u=' .. ngx.escape_uri(uri)
        return ngx.redirect(newUrl)
    end
end
---------------------------------------------------------------------------------
      }
    }

备注:这个 lua 规则是 Github Copilot 帮我从阿里云 EdgeScript 翻译过来的,它一次就写对了,真是方便。不过阿里云 EdgeScript 的语法就很怪了,AI没办法帮我生成(它虽然能看懂并能转换为其他语言,但不能正确生成 EdgeScript 代码),我当初写这个规则用了几个小时,因为总是有奇怪的小问题导致代码没办法继续运行(比如 $arg_k 这种写法在URL中不包含?k=xxx时会导致代码无法继续运行,必须用req_uri_arg('k')才能避免这种情况):

LUTRIS_ACL_KEY = '一个key'
ALLOW_UA_LIST = ['一个User-Agent正则表达式列表']

def is_valid_key(key, url, ua) {
    t = now()
    tMod = sub(t, mod(t, 30))

    signData = concat(url, LUTRIS_ACL_KEY, tostring(tMod), ua)
    sign = md5(signData)

    return eq(key, sign)
}

def is_allow_ua(ua) {
    for _, allowUA in ALLOW_UA_LIST {
        if match_re(ua, allowUA) {
            return true
        }
    }
    return false
}

if not(is_allow_ua($http_user_agent)) {
    if not(is_valid_key(req_uri_arg('k'), $uri, $http_user_agent)) {
        newUrl = concat('https://hu60.cn/q.php/lutris.acl.html?u=', url_escape($uri))
        rewrite(newUrl, 'enhance_redirect')
    }
}
(/@Ta/2024-12-30 12:46//)

35.

拿到带 key 的地址后,30 秒内就能无限刷了

刷流量的人还没有那么饥渴,JS跳转就已经可以拦住他们了,key只是为了再增加一点难度让他们放弃我转投其他目标。

还有,我有一些客户端必须能够直接下载到文件,所以我在代码里刻意排除了这些User-Agent。如果这个列表暴露了,其他人也可以伪造此类请求来绕过验证。所以我也没必要把key做的特别安全的样子……

(/@Ta/2024-12-28 00:09//)

36.

@老虎会游泳,能自定义验证方法,确实灵活很多。

但简单瞄了下,只能验证单个请求,没法记录状态?(比如下载后该链接失效,记录下载用户累计流量等)

狠一点儿,URL 里加上身份信息,有身份的宽松点,没身份的 100 KB/s。。再加上 IP 验证,防止多处机器同时刷。。

另外,要是 00:29:59 请求 URL,00:30:00 再去下载,是不是就失效了?(tMod 变了)

(/@Ta/2024-12-28 00:30//)

37.

@无名啊要是 00:29:59 请求 URL,00:30:00 再去下载,是不是就失效了
对,不过失效了会再跳转到 acl 页面请求一次key。
至于进一步的身份验证和key使用数量限制,我准备以后再做,如果事态变得更严重我再做。

(/@Ta/2024-12-28 01:47//)

38.

@上善若水,我已经把 file.winegame.net 切到轻量云了,欢迎来测速:

https://file.winegame.net/runners/wine/lutris-ge/wine-lutris-GE-Proton7-32-x86_64.tar.xz

(/@Ta/2024-12-28 01:49//)

39.

@老虎会游泳,达到一定量好像,会被限速到20Mbps。
一加ace2Pro(灰|24+1024)

(/@Ta/2024-12-28 14:36//)

下一页 上一页 2/3页,共43楼

回复需要登录

6月29日 09:07 星期天

本站由hu60wap6驱动

备案号: 京ICP备18041936号-1