OpenResty反爬虫
来源:互联网 发布:c 语言 编辑:程序博客网 时间:2024/05/06 02:56
近日网站的日志增长特别快,奇怪的是网商还没有上线,没有用户访问,哪来这么多出错日志,仔细查看日志发现,好多跟我们网站无关的请求,host也是一些什么,jd,58什么的。对于nginx我也是新手,当时就蒙了,第一反应是难道被攻击了,被人控制做什么操作了。由于不知道原因,上网查原因也无从下手,于是从openresty的安全入手开始查,在《OpenResty-Best-Practices.pdf》提到过b防火墙的demo,如下:
其中:access_by_lua:为每个请求在访问阶段的调用lua脚本进行处理。主要用于访问控制,能收集到大部分的变量。
在这里可以访问到nginx内置绑定的变量,这些可以增加nginx对网络行为的控制细度。这些变量大部分是在请求进入是解析的,并把它们缓存到会话中,以方便取用。这些变量有很多,并且还在不断迭代更新,我们来简单看几个变量:
1:host : 请求信息中的"Host"。(我的网站日志中就包括许多这样的信息,例如:“host: "ja.58.com"”)
2:remote_addr :客户端IP地址;
其实根据这两个变量就可以简单的把那个恶意的请求过虑掉,
例如:建 立一个 black_ips数组,把需要隔离的客户端IP存入,当进入access阶段时,获取remote_addr,进行比较,如果在隔离范围内,则直接返回ngx.exit(ngx.HTTP_FORBIDDEN);
示例代码:
access_by_lua '
if block_ips[ngx.var.remote_addr] then
ngx.exit(ngx.HTTP_FORBIDDEN);
end
';
但是这样有个问题,太麻烦,还要维护这个block_ips。
于是换了思路,检查请求中的host,只有host为我的网站的host时,才通过控制访问。如果证明是对的。
至此用一个比较简单的方法解了反爬虫和反代理的问题。但是作为新手没有对nginx有深入的了解,肯定还存在一些访问隐患。
没办法,只能战斗中成长。。。。。。
- OpenResty反爬虫
- Openresty+Lua+Memcached反爬虫策略
- 高频访问IP限制 --Openresty(nginx + lua) [反爬虫之旅]
- 反爬虫
- 反爬虫
- 反爬虫
- 反爬虫
- 反爬虫
- 反-反爬虫
- 爬虫-07-反爬虫
- OpenResty 反代理项目分享[严禁转载]
- 反反爬虫的招数
- 反反爬虫之见招拆招
- 反反爬虫相关机制
- 关于爬虫和反爬虫
- 关于爬虫和反爬虫
- 网站反爬虫
- 反爬虫技术
- MySQL索引原理
- C++指针的赋值运算
- 手机适配
- Java类集框架
- weak_ptr和shared_ptr,以及什么时候用weak_ptr
- OpenResty反爬虫
- ShareSDK各社交平台申请APPkey 的网址及申请流程汇总
- android获取gallery中的图片以及调用系统相机
- 终结Android项目的R文件报错问题
- lintcode ----搜索插入位置
- 后缀数组(SA)
- iOS打印功能
- gradle版本 gradle各种版本下载提供
- 小图标的位置实现