cf的5秒盾就是当我们第一次访问使用 CloudFlare 加速的网站时,网站就会出现让我们等待 5 秒种的提示。
这个主要是防止cc攻击了,有效抵御了通过爬虫软件对网站的爬取,但是现在出现了cfscrape可以绕开cf的5秒盾了。
使用pip install cfscrape安装cloudflare-scrape,同时确认本地是否安装node.js开发环境,如果没有,需要安装配置nodejs开发环境。
使用实例
处理 get 请求的 CloudFlare
import cfscrape处理 post 请求的 CloudFlare
# 实例化一个create_scraper对象
scraper = cfscrape.create_scraper()
# 请求报错,可以加上时延
# scraper = cfscrape.create_scraper(delay = 10)
# 获取网页源代码
web_data = scraper.get("https://example.com/").content
print(web_data)
# import cfscrapehttpguard是一款由OpenResty实现防CC攻击的高性能CDN系统,有免费版本与商业版本。
# 实例化一个create_scraper对象
scraper = cfscrape.create_scraper()
# 获取真实网页源代码
web_data = scraper.post("http://example.com").content
print(web_data)
github地址:https://github.com/centos-bz/HttpGuard
HttpGuard也是基于lua的,所以还是要安装lua,如果没有安装的可以安装这里的来:linux nginx服务器安装verynginx防止CC攻击
一、下载HttpGuard免费版本
创建文件夹
mkdir HttpGuard
cd HttpGuard
下载解压
wget https://www.zhujitop.com/test/x/master.zip
unzip master.zip
转移文件夹
cp -r HttpGuard-master/ /usr/local/nginx/HttpGuard
是为了把HttpGuard放到nginx文件夹里面去
配置文件
在nginx.conf文件http区域内增加
lua_package_path "/usr/local/nginx/HttpGuard/?.lua";
lua_shared_dict guard_dict 100m;
lua_shared_dict dict_captcha 70m;
init_by_lua_file '/usr/local/nginx/HttpGuard/init.lua';
access_by_lua_file '/usr/local/nginx/HttpGuard/runtime.lua';
lua_max_running_timers 1;
修改HttpGuard配置文件
打开 /usr/local/nginx/HttpGuard/config.lua
把basedir后面的路径修改了
这里也可以顺便修改下验证配置:
limitReqModules这句,图2中,代表10秒内超过10次刷新,访问,就出现验证码。
安装验证码(好像可以不安装)
cd /usr/local/nginx/HttpGuard/captcha/
/usr/local/php/bin/php getImg.php
这个是用linux命令操作的,然后重启下nginx
测试,动态页面才有效,不是动态的,测试的时候,静态页面无所谓CC攻击。
比较:
httpguard的防cc攻击方式更有效、更灵活,需要手动输入验证码,cf的5秒盾完全无需用户操作,等待5秒即可,比较方便,但是容易被破解。
网友回复