nginx+lua 实现简单的防机器程序访问

这个比较简单,我只是觉得这个思路不错,借鉴了别人思路而已,可以学习。



    location /cookie {
   	    default_type 'text/html';
        rewrite_by_lua '
            local random = ngx.var.cookie_random

            if(random == nil) then
                random = ngx.md5(math.random(999999) .. os.time() .. math.random(999999))
            end

            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.scheme .. "://" .. ngx.var.host .. ngx.var.uri)
            end
        ';
        content_by_lua_block {
            ngx.say("ok2")
    	}
    }
但是要注意了,这个不是万能神药,不能解决所有的问题。同时也要注意了,如果是蜘蛛的之类的也设置下白名单,因为他们可能获取不到 cookie 导致循环中。。。




上一篇: 利用openresty+lua+redis 实现封杀频繁恶意访问IP地址
下一篇: openresty+Lua构建高性能、高可靠、安全的登陆校验

目前还没有人评论,您发表点看法?
发表评论

评论内容 (必填):