如何通过CURL GET请求模拟多设备访问测试Web服务器规则
CURL 伪装设备请求验证Web设备识别规则实现方案
核心判定逻辑
绝大多数Web服务的设备识别规则,核心匹配字段是HTTP请求携带的User-Agent(简称UA)。通过精准传入对应设备的真实UA字符串,CURL可以在不依赖本地设备、不使用第三方代理的前提下,模拟指定设备的请求特征,触发服务端对应的规则分支,输出定制化内容或是触发拦截逻辑。
分设备可直接复用的测试命令
执行测试前,将所有命令末尾的https://your-target.com/test-path替换为实际需要测试的目标页面/接口地址。命令自带-i参数,可直接打印响应状态码、响应头和响应内容,无需额外配置抓包工具。
- 安卓手机模拟(Android 14+ 主流移动Chrome浏览器)
curl -i -A "Mozilla/5.0 (Linux; Android 14; SM-S918B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.6422.165 Mobile Safari/537.36" https://your-target.com/test-path - iPhone模拟(iOS17 系统自带Safari浏览器)
curl -i -A "Mozilla/5.0 (iPhone; CPU iPhone OS 17_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Mobile/15E148 Safari/604.1" https://your-target.com/test-path - iPad模拟(iPadOS17 系统自带Safari浏览器)
curl -i -A "Mozilla/5.0 (iPad; CPU OS 17_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Mobile/15E148 Safari/604.1" https://your-target.com/test-path - 智能电视模拟(Fire TV / Android TV 通用端)
curl -i -A "Mozilla/5.0 (Linux; Android 11; AFTMM Build/RT11.220720.0043) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.48 Safari/537.36" https://your-target.com/test-path - Windows桌面端模拟(Win11 系统下Edge浏览器)
curl -i -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.6422.112 Safari/537.36 Edg/125.0.2535.92" https://your-target.com/test-path
识别失效的补充调整
碰到仅修改UA仍然返回404的情况,基本是目标服务叠加了多维度校验规则,按需补充以下请求头即可提升伪装匹配度:
- 移动端(安卓/iPhone/iPad)请求统一增加
-H "Sec-CH-UA-Mobile: ?1"头,桌面端/智能电视端增加-H "Sec-CH-UA-Mobile: ?0"头,适配现代Chromium内核站点的客户端提示校验逻辑 - 补充统一语言头
-H "Accept-Language: zh-CN,zh;q=0.9",避免被判定为无真实用户属性的爬虫 - 避免使用年代过久的UA字符串,主流设备识别库(如云WAF、CDN自带规则)会将UA版本与当前时间差超过3年的请求直接判定为恶意扫描,触发404拦截
内容的提问来源于stack exchange,提问作者Georgi Stoyanov
相关产品推荐
相关产品推荐

