http{
...
limit_req_zone $cookie_token zone=session_limit:3m rate=1r/s;
limit_req_zone $binary_remote_addr $uri zone=auth_limit:3m rate=1r/m;
}
location /{
limit_req zone=session_limit burst=5;
rewrite_by_lua '
local random = ngx.var.cookie_random
if (random == nil) then
return ngx.redirect("/auth?url=" .. ngx.var.request_uri)
end
local token = ngx.md5("opencdn" .. ngx.var.remote_addr .. random)
if (ngx.var.cookie_token ~= token) then
return ngx.redirect("/auth?url=".. ngx.var.request_uri)
end
';
}
location /auth {
limit_req zone=auth_limit burst=1;
if ($arg_url = "") {
return403;
}
access_by_lua '
local random = math.random(9999)
local token = ngx.md5("opencdn" .. ngx.var.remote_addr .. random)
if (ngx.var.cookie_token ~= token) then
ngx.header["Set-Cookie"] = {"token=" .. token, "random=" .. random}
return ngx.redirect(ngx.var.arg_url)
end
';
}
Had_req_zone $binary_remote_addr $uri zone=auth_limit:3m rate=1r/m adalah betul; (Kemas kini limit_req_zone menyokong berbilang pembolehubah, jadi $binary_remote_addr $uri adalah betul)
Apakah lagi yang perlu saya lakukan selain kod ini jika saya mahu menggunakannya pada nginx saya?
Dilampirkan alamat pos asal, saya tidak tahu sama ada ia pos asal: http://www.92csz.com/30/1255....
Idea ini sangat kasar dan tidak munasabah. Pada dasarnya, ia sama seperti menafikan akses tanpa memasukkan kata laluan akaun.
Tetapi adakah ini realistik?
Bagi pengguna baharu, bagaimana cara untuk mengetahui kata laluan akaunnya. Melainkan ia telah diperuntukkan terlebih dahulu, tetapi bagaimanakah pra-peruntukan boleh mengelak daripada diperuntukkan kepada penyerang?
Masalah kembali kepada asal.
Jadi perkara ini tidak berguna dan ia hanya menghalang
CC
pada tahap tertentu, tetapi ia tidak dapat menghalangDDOS
.CC
,但不能防止DDOS
。为什么说只是一定程度上呢?因为这个cookies总要是给用户的,cc攻击一样能拿到。
如果你真的要尝试的话,需要在安装
🎜Jika anda benar-benar mahu mencubanya, anda perlu memasang modulnginx_lua
模块,或者使用openresty
Mengapa anda mengatakan ia hanya pada tahap tertentu? Kerana kuki ini mesti sentiasa diberikan kepada pengguna, serangan CC juga boleh mendapatkannya.nginx_lua
atau gunakanopenresty
.🎜