cron-job.org执行Byethost站点PHP文件返回需启用JS响应的解决方案问询
问题根因
这是Byethost免费主机默认接入的JS反爬验证机制,所有非浏览器请求都会被Nginx接入层拦截,返回你拿到的包含AES加密逻辑的JS页面:要求客户端执行JS生成__test Cookie后,携带该Cookie重新发起请求才能转发到实际的PHP脚本。cron-job.org的定时请求为纯HTTP请求,不支持JS执行,因此无法通过验证。
可行解决思路
- 手动获取Cookie配置到请求头
用桌面浏览器访问一次你的PHP文件地址,F12打开开发者工具,在「应用」-「Cookie」分类下找到当前域名的__testCookie,复制完整值。进入cron-job.org的定时任务配置页,在自定义请求头中添加Cookie: __test=你复制的Cookie值即可。该Cookie默认过期时间为2037年,只要站点加密密钥不更换就长期有效,失效后重新抓取配置即可。 - 使用支持JS渲染的定时任务服务
更换为支持无头浏览器模拟的定时任务平台,这类平台会自动执行页面内的JS逻辑生成Cookie并重发请求,无需手动处理加密验证流程。 - 更换无强制反爬的托管服务
更换为无接入层JS验证的免费PHP主机,普通HTTP请求即可直接触发PHP脚本执行,无需额外处理验证逻辑。 - 自建定时任务执行环境
如果你有自有VPS或常驻运行的设备,可以自行编写定时任务脚本,用Puppeteer、Playwright等无头浏览器工具发起请求,自动执行JS完成验证后访问目标PHP脚本;也可以直接将PHP脚本部署在自有设备上执行定时任务,无需托管到Byethost。
内容的提问来源于stack exchange,提问作者pepqq
相关产品推荐
相关产品推荐

