长亭百川云

长亭百川云

技术讨论长亭漏洞情报库IP 威胁情报SLA在线工具
热门产品
雷池 WAF 社区版
IP 威胁情报
网站安全监测
百川漏扫服务
云堡垒机
百川云
技术文档
开发工具
长亭漏洞情报库
网安百科
安全社区
CT STACK 安全社区
雷池社区版
XRAY 扫描工具
长亭科技
长亭科技官网
万众合作伙伴商城
长亭 BBS 论坛
友情链接
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备2024055124号-2

长亭百川云

热门应用
查看更多
雷池 WAF 社区版
IP 威胁情报
网站安全监测
SSL 证书服务
https://rivers-collie.oss-accelerate.aliyuncs.com/cyber-wiki-prod/image/952d39f311aa1c4c23f32968b7cd45a1.png
雷池 WAF 社区版
智能语义算法 · 开箱即用 · 高性能高可用性
应用介绍
https://rivers-collie.oss-accelerate.aliyuncs.com/cyber-wiki-prod/image/ee8f2918e4d99d17f219cb46ec806fde.png
IP 威胁情报
IP 画像查询 · IP 库订阅 · 4 大应用场景
应用介绍
https://rivers-collie.oss-accelerate.aliyuncs.com/cyber-wiki-prod/image/5f3debe40bd86b430564010c75b2cb41.png
网站安全监测
敏感词监控 · 篡改监控 · 恶意链接 · 挂马监控
应用介绍
https://rivers-collie.oss-accelerate.aliyuncs.com/cyber-wiki-prod/image/4c6052bcaddaa7698c0257719b76cef2.png
SSL 证书服务
快速颁发 · 证书监控 · 极高性价比 · DV-OV-EV
应用介绍

热门讨论

查看更多

OIDC功能异常反馈

头像

苟天启

更新于 7 小时前

BUG 详情

问题描述

OIDC 登录成功后无法返回触发地址,只能跳转返回 / 根页面。

复现步骤

在非 / 目录触发 OIDC 认证。

问题猜测

前端请求 /.safeline/auth/api/pending 接口时,redirect 参数为空,导致后端无法正常跳转。

# 雷池 WAF

0

1

优化需求2条,第一条较急。

头像

放牛哥

更新于 16 小时前

Version 8.8.2
1)【攻击告警】:通知内容,对于白名单放行的未拦截攻击,能不能设置不发送通知。不然,通知内容量太多了,很容易漏掉拦截的攻击通知。
2)【身份认证】:LDAP认证登录,登录界面建议去掉【LDAP】字样,或允许自定义修改。

# 雷池 WAF

1

1

如何应对 AI 崛起带来的爬虫横行

头像

齐天大圣孙悟空

管理员

更新于 1 天前

大家好,我是雷池 WAF 社区版的开发者。

前几天在公司群里聊天,大家表示最近逛国内的很多技术论坛(segmentfault、oschina、gitee等等)都能看到雷池 WAF 的人机验证页面。

听到这个首先是非常荣幸,这说明雷池 WAF 得到了国内顶尖技术群体的认可。然后我们就在猜会不会是 AI 的崛起带来了爬虫的横行。

ChatGPT 的发布为技术工作者提供了很多便利,我自己日常也会通过豆包和 kimi 咨询很多技术问题,虽然 AI 回答的挺好,但是给我的答案大部分也来于各种技术论坛,典型的 ”拿你的数据,抢你的流量“。

image.png

和几个做技术社区的朋友交流了一番以后,证实了我们的想法。

“原先就被爬,AI 起来以后,防不胜防,爬的更狠了”——某位大论坛的 CEO 如是说。

传统的反爬虫

一般来说,在网站根目录下放一个 robots.txt 文件,可以用于告知爬虫哪些链接可以爬,哪些链接不能爬,然而 99% 的爬虫都不会遵守 robots 协议。

最高人民检察院在 2022 年就发布了对于网络爬虫的相关处罚条例,然而还是有很多恶意爬虫逍遥法外。

除了管理规范以外,技术上一般会用以下方式来防止网站被爬:

  1. 检查 User-Agent,封禁常见爬虫的 User-Agent 特征
  2. 检查 Referer,封禁不合法的 Referer 特征
  3. 限制访问频率,对访问超过限制的 IP 实施封禁
  4. 检查 Cookie,给认证过的合法用户颁发 Cookie,阻断 Cookie 不合法的用户
  5. JS 动态渲染,关键术语使用 JS 加密后动态生成

传统反爬虫的无奈

针对以上讲到的传统反爬虫方式,其实有很多破解方案,可以轻易逃过检测:

  1. 检查 User-Agent:对于这种方式,直接在客户端伪造 HTTP 请求头即可绕过
  2. 检查 Referer:对于这种方式,直接在客户端伪造 HTTP 请求头即可绕过
  3. 限制访问频率:对于这种方式,可以使用代理池来获得大量源 IP,每个 IP 实际访问量都不高
  4. 检查 Cookie:对于这种方式,可以让先人工获得 Cookie,再把 Cookie 拿给爬虫使用
  5. JS 动态渲染:对于这种方式,调用无头浏览器即可绕过

高阶的反爬虫思路

  1. 请求签名:绑定客户端和 SESSION,随意修改 IP、User-Agent、浏览器指纹等信息后 SESSION 自动吊销
  2. 识别行为:检测鼠标键盘的使用习惯,检测浏览器窗口的拜访位置,综合判断是不是真人行为
  3. 识别无头浏览器:识别本地浏览器的客户端特征,禁止无头浏览器访问
  4. 识别自动化调用:识别本地浏览器是不是被自动化程序控制,禁止自动化控制的浏览器访问
  5. 交互识别:让用户参与网页交互验证码,比如滑动验证、识别图片、识别文字等
  6. 算力验证:注入算力验证脚本,消耗 CPU 资源,抬高客户端的访问成本,让原本每秒可以访问 1000 次的设备,在被雷池保护后每秒只能访问 1 次
  7. 防止请求重放:增加一次性验证,让 HTTP 请求脱离浏览器后无法重复发送,让复制后的 Cookie 失效
  8. 打乱 HTML 结构:对 HTML 代码结构进行动态打乱,让爬虫无法识别网页特征
  9. 混淆 JS 代码:对 JS 代码进行动态混淆,让攻击者无法识别有效的网页逻辑

怎么用雷池防爬虫

雷池 WAF 包含了市面上绝大部分的反爬虫技术,而且可以免费使用。

关于怎么安装雷池,请参考官网的技术文档:https://waf-ce.chaitin.cn/

安装好雷池 WAF 以后开启防爬虫相关的功能即可生效,如下图:

image.png

image.png

不出意外的话,1 分钟就能完成配置。完成配置以后,访问被雷池 WAF 防护的网站,就会看到雷池正在检查客户端环境的安全性。

image.png

合法用户等待两三秒以后真正的网页内容会自动载入,恶意用户则会被阻拦。

如果检测到本地客户端被自动化程序控制,访问依然会被阻止,如下图:

image.png

验证通过后查看网页源代码,会发现 HTML 和 JS 代码也都做了动态加密保护,虽然是相同的网页,但每次刷新看到的 HTML 代码结构都不同。

看一个例子,服务端的 HTML 文件如下图:

image.png

经过雷池动态防护以后,浏览器里看到的 HTML 文件如下图:

image.png

这里要说一下,雷池的人机识别是采用的是云端验证方式,每一次验证都会调用长亭的云端 API 来辅助验证,结合长亭的 IP 威胁画像数据,浏览器指纹数据,最终对于爬虫的识别率超过 99.9%。于此同时,云端的算法和 JS 逻辑会持续自动更新,即使被厉害的大佬破解,破解的也只是过去的版本,我们永远跑在攻击者的前面。

另外,如果有人能绕过雷池的人机验证,欢迎来长亭办公室找我,我请你吃一个月的 KFC。

看着这么高的识别率,网站站长们肯定会担心这会不会影响 SEO,会不会影响搜索引擎对于网站页面的收录情况。

答案当然是 “不会”,雷池贴心的提供了各大搜索引擎的爬虫 IP 列表,如果对 SEO 有需求,只需要对这些 IP 加白即可。

image.png

最后

最后,对爬虫技术、或者反爬虫技术、或者 WAF 技术感兴趣的同学,欢迎扫描下方二维码加入雷池社区版技术交流群与我们一起交流。

image.png

# 雷池 WAF
技术资料
精华

4

4

雷池规则广场:测试

头像

Echo

更新于 17 小时前

规则地址

规则库说明

测试一下

# 雷池 WAF

0

1

雷池管理面板如何绑定域名?

头像

老陈爱刷机

更新于 21 小时前

小白求问

雷池WAF的管理面板怎么绑定域名?感觉用IP有点不好记

# 雷池 WAF

0

2

雷池统一认证页面无法打开,提示404

头像

OTWS

更新于 21 小时前

雷池自动生成的配置,将统一认证的地址配到了192.168.0.10,本地可ping通,但是端口无法访问,打不开网页,提示 NS_ERR_CONNECTION_REFUSED

查看本地连接,发现服务器自身ip多了个safeline的,但也不是192.168.0.10

safeline-ce: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:9a:4a:b2:0b brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.1/24 brd 192.168.0.255 scope global safeline-ce
       valid_lft forever preferred_lft forever
    inet6 fe80::42:9aff:fe4a:b20b/64 scope link 
       valid_lft forever preferred_lft forever
    location ^~ /.safeline/auth/ {
        proxy_set_header X-SLCE-Portal 1;
        set_real_ip_from 127.0.0.0/8;
        real_ip_header proxy_protocol;
        proxy_set_header X-Real-IP $proxy_protocol_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass http://192.168.0.10:8088/auth/;
        t1k_intercept off;
        tx_intercept off;
    }
    location ^~ /api {
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass http://192.168.0.10:8088/portal/api;
        include proxy_params;
        set_real_ip_from 127.0.0.0/8;
        real_ip_header proxy_protocol;
        proxy_set_header X-Real-IP $proxy_protocol_addr;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-For $proxy_protocol_addr;
        add_header Strict-Transport-Security $hsts_header always;
        t1k_intercept off;
        tx_intercept off;
    }
    location ^~ / {
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass http://192.168.0.10:8088/portal/frontend/;
        include proxy_params;
        set_real_ip_from 127.0.0.0/8;
        real_ip_header proxy_protocol;
        proxy_set_header X-Real-IP $proxy_protocol_addr;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-For $proxy_protocol_addr;
        add_header Strict-Transport-Security $hsts_header always;
        t1k_intercept off;
        tx_intercept off;
    }
}
# 雷池 WAF

0

2

IP 威胁情报

查看更多

当前 IP

查看 IP 风险画像
地理信息
ISP
运营商
最后更新时间
-

长亭漏洞情报库

查看更多
金蝶应用服务器V10.0 IIOP反序列化远程代码执行漏洞
泛微OA E-cology SQL注入漏洞
Vite 信息泄露漏洞
Vite 安全漏洞
Kubernetes ingress-nginx 输入验证错误漏洞
Vite 任意文件读取漏洞
Next.js 中间件绕过漏洞
Apache Tomcat Partial PUT远程代码执行漏洞
VMware ESXi/Workstation VMCI堆溢出漏洞
Ollama 未授权访问漏洞
雷池 WAF 社区版
智能语义算法 · 开箱即用 · 高性能高可用性
应用文档
IP 威胁情报
IP 画像查询 · IP 库订阅 · 4 大应用场景
应用文档
网站安全监测
敏感词监控 · 篡改监控 · 恶意链接 · 挂马监控
应用文档
SSL 证书服务
快速颁发 · 证书监控 · 极高性价比 · DV-OV-EV
应用文档

OIDC功能异常反馈

头像

苟天启

更新于 7 小时前

BUG 详情

问题描述

OIDC 登录成功后无法返回触发地址,只能跳转返回 / 根页面。

复现步骤

在非 / 目录触发 OIDC 认证。

问题猜测

前端请求 /.safeline/auth/api/pending 接口时,redirect 参数为空,导致后端无法正常跳转。

# 雷池 WAF

0

1

优化需求2条,第一条较急。

头像

放牛哥

更新于 16 小时前

Version 8.8.2
1)【攻击告警】:通知内容,对于白名单放行的未拦截攻击,能不能设置不发送通知。不然,通知内容量太多了,很容易漏掉拦截的攻击通知。
2)【身份认证】:LDAP认证登录,登录界面建议去掉【LDAP】字样,或允许自定义修改。

# 雷池 WAF

1

1

如何应对 AI 崛起带来的爬虫横行

头像

齐天大圣孙悟空

管理员

更新于 1 天前

大家好,我是雷池 WAF 社区版的开发者。

前几天在公司群里聊天,大家表示最近逛国内的很多技术论坛(segmentfault、oschina、gitee等等)都能看到雷池 WAF 的人机验证页面。

听到这个首先是非常荣幸,这说明雷池 WAF 得到了国内顶尖技术群体的认可。然后我们就在猜会不会是 AI 的崛起带来了爬虫的横行。

ChatGPT 的发布为技术工作者提供了很多便利,我自己日常也会通过豆包和 kimi 咨询很多技术问题,虽然 AI 回答的挺好,但是给我的答案大部分也来于各种技术论坛,典型的 ”拿你的数据,抢你的流量“。

image.png

和几个做技术社区的朋友交流了一番以后,证实了我们的想法。

“原先就被爬,AI 起来以后,防不胜防,爬的更狠了”——某位大论坛的 CEO 如是说。

传统的反爬虫

一般来说,在网站根目录下放一个 robots.txt 文件,可以用于告知爬虫哪些链接可以爬,哪些链接不能爬,然而 99% 的爬虫都不会遵守 robots 协议。

最高人民检察院在 2022 年就发布了对于网络爬虫的相关处罚条例,然而还是有很多恶意爬虫逍遥法外。

除了管理规范以外,技术上一般会用以下方式来防止网站被爬:

  1. 检查 User-Agent,封禁常见爬虫的 User-Agent 特征
  2. 检查 Referer,封禁不合法的 Referer 特征
  3. 限制访问频率,对访问超过限制的 IP 实施封禁
  4. 检查 Cookie,给认证过的合法用户颁发 Cookie,阻断 Cookie 不合法的用户
  5. JS 动态渲染,关键术语使用 JS 加密后动态生成

传统反爬虫的无奈

针对以上讲到的传统反爬虫方式,其实有很多破解方案,可以轻易逃过检测:

  1. 检查 User-Agent:对于这种方式,直接在客户端伪造 HTTP 请求头即可绕过
  2. 检查 Referer:对于这种方式,直接在客户端伪造 HTTP 请求头即可绕过
  3. 限制访问频率:对于这种方式,可以使用代理池来获得大量源 IP,每个 IP 实际访问量都不高
  4. 检查 Cookie:对于这种方式,可以让先人工获得 Cookie,再把 Cookie 拿给爬虫使用
  5. JS 动态渲染:对于这种方式,调用无头浏览器即可绕过

高阶的反爬虫思路

  1. 请求签名:绑定客户端和 SESSION,随意修改 IP、User-Agent、浏览器指纹等信息后 SESSION 自动吊销
  2. 识别行为:检测鼠标键盘的使用习惯,检测浏览器窗口的拜访位置,综合判断是不是真人行为
  3. 识别无头浏览器:识别本地浏览器的客户端特征,禁止无头浏览器访问
  4. 识别自动化调用:识别本地浏览器是不是被自动化程序控制,禁止自动化控制的浏览器访问
  5. 交互识别:让用户参与网页交互验证码,比如滑动验证、识别图片、识别文字等
  6. 算力验证:注入算力验证脚本,消耗 CPU 资源,抬高客户端的访问成本,让原本每秒可以访问 1000 次的设备,在被雷池保护后每秒只能访问 1 次
  7. 防止请求重放:增加一次性验证,让 HTTP 请求脱离浏览器后无法重复发送,让复制后的 Cookie 失效
  8. 打乱 HTML 结构:对 HTML 代码结构进行动态打乱,让爬虫无法识别网页特征
  9. 混淆 JS 代码:对 JS 代码进行动态混淆,让攻击者无法识别有效的网页逻辑

怎么用雷池防爬虫

雷池 WAF 包含了市面上绝大部分的反爬虫技术,而且可以免费使用。

关于怎么安装雷池,请参考官网的技术文档:https://waf-ce.chaitin.cn/

安装好雷池 WAF 以后开启防爬虫相关的功能即可生效,如下图:

image.png

image.png

不出意外的话,1 分钟就能完成配置。完成配置以后,访问被雷池 WAF 防护的网站,就会看到雷池正在检查客户端环境的安全性。

image.png

合法用户等待两三秒以后真正的网页内容会自动载入,恶意用户则会被阻拦。

如果检测到本地客户端被自动化程序控制,访问依然会被阻止,如下图:

image.png

验证通过后查看网页源代码,会发现 HTML 和 JS 代码也都做了动态加密保护,虽然是相同的网页,但每次刷新看到的 HTML 代码结构都不同。

看一个例子,服务端的 HTML 文件如下图:

image.png

经过雷池动态防护以后,浏览器里看到的 HTML 文件如下图:

image.png

这里要说一下,雷池的人机识别是采用的是云端验证方式,每一次验证都会调用长亭的云端 API 来辅助验证,结合长亭的 IP 威胁画像数据,浏览器指纹数据,最终对于爬虫的识别率超过 99.9%。于此同时,云端的算法和 JS 逻辑会持续自动更新,即使被厉害的大佬破解,破解的也只是过去的版本,我们永远跑在攻击者的前面。

另外,如果有人能绕过雷池的人机验证,欢迎来长亭办公室找我,我请你吃一个月的 KFC。

看着这么高的识别率,网站站长们肯定会担心这会不会影响 SEO,会不会影响搜索引擎对于网站页面的收录情况。

答案当然是 “不会”,雷池贴心的提供了各大搜索引擎的爬虫 IP 列表,如果对 SEO 有需求,只需要对这些 IP 加白即可。

image.png

最后

最后,对爬虫技术、或者反爬虫技术、或者 WAF 技术感兴趣的同学,欢迎扫描下方二维码加入雷池社区版技术交流群与我们一起交流。

image.png

# 雷池 WAF
技术资料
精华

4

4

雷池规则广场:测试

头像

Echo

更新于 17 小时前

规则地址

规则库说明

测试一下

# 雷池 WAF

0

1

雷池管理面板如何绑定域名?

头像

老陈爱刷机

更新于 21 小时前

小白求问

雷池WAF的管理面板怎么绑定域名?感觉用IP有点不好记

# 雷池 WAF

0

2

雷池统一认证页面无法打开,提示404

头像

OTWS

更新于 21 小时前

雷池自动生成的配置,将统一认证的地址配到了192.168.0.10,本地可ping通,但是端口无法访问,打不开网页,提示 NS_ERR_CONNECTION_REFUSED

查看本地连接,发现服务器自身ip多了个safeline的,但也不是192.168.0.10

safeline-ce: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:9a:4a:b2:0b brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.1/24 brd 192.168.0.255 scope global safeline-ce
       valid_lft forever preferred_lft forever
    inet6 fe80::42:9aff:fe4a:b20b/64 scope link 
       valid_lft forever preferred_lft forever
    location ^~ /.safeline/auth/ {
        proxy_set_header X-SLCE-Portal 1;
        set_real_ip_from 127.0.0.0/8;
        real_ip_header proxy_protocol;
        proxy_set_header X-Real-IP $proxy_protocol_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass http://192.168.0.10:8088/auth/;
        t1k_intercept off;
        tx_intercept off;
    }
    location ^~ /api {
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass http://192.168.0.10:8088/portal/api;
        include proxy_params;
        set_real_ip_from 127.0.0.0/8;
        real_ip_header proxy_protocol;
        proxy_set_header X-Real-IP $proxy_protocol_addr;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-For $proxy_protocol_addr;
        add_header Strict-Transport-Security $hsts_header always;
        t1k_intercept off;
        tx_intercept off;
    }
    location ^~ / {
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass http://192.168.0.10:8088/portal/frontend/;
        include proxy_params;
        set_real_ip_from 127.0.0.0/8;
        real_ip_header proxy_protocol;
        proxy_set_header X-Real-IP $proxy_protocol_addr;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-For $proxy_protocol_addr;
        add_header Strict-Transport-Security $hsts_header always;
        t1k_intercept off;
        tx_intercept off;
    }
}
# 雷池 WAF

0

2

查看更多