You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Cypress访问Akamai托管登录页时遭遇403 Forbidden错误

解决Cypress访问Akamai托管网站时的403 Forbidden错误

我使用以下Cypress脚本访问Akamai托管的网站:

/// <reference types="cypress" />

describe('Store login', () => {
  it('login to Store', () => {
    cy.visit("https://store.qlsit.qantas.com/",{
      headers: {
        "Accept" : "application/json, text/plain, */*",
        "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36",
        "LOYALTY-PARTNER-FORWARD": "D19313AA-5BFF-4586-947A-C3AE8D78CEA4"
      }
    })
  })
})

运行后出现403 Forbidden错误,更换不同User-Agent也无法解决,不确定需要添加哪些请求头才能绕过Akamai的拦截。

可行的解决方向:

  • 复制真实浏览器的完整请求头:Akamai会校验请求头的完整性,仅设置User-Agent远远不够。打开Chrome开发者工具的Network面板,访问目标网站后,查看首次请求的全部Request Headers,将除Host(Cypress自动处理)、Cookie(可后续通过登录流程获取)之外的所有头信息添加到cy.visit的headers配置中,比如Accept-Language、Referer、Connection、Cache-Control等。

  • 禁用自动化检测特征:Akamai能识别自动化工具的特征,在cypress.config.js中添加启动参数,避免被检测:

module.exports = defineConfig({
  e2e: {
    setupNodeEvents(on, config) {},
  },
  chromeWebSecurity: false,
  modifyObstructiveCode: false,
  browserLaunchOptions: {
    chrome: {
      args: ['--disable-blink-features=AutomationControlled']
    }
  }
})
  • 校验自定义授权头:你设置的LOYALTY-PARTNER-FORWARD头属于特定业务授权头,确认该值是否有效、是否过期,或者是否需要配合Authorization等其他身份相关头信息一起使用。

  • 保持会话连贯性:如果目标子域名需要从主站跳转进入,Akamai可能会校验Referer或会话状态。尝试先访问主站(如qantas.com),再导航到目标子域名,维持会话的完整性。

内容的提问来源于stack exchange,提问作者Sneha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 19:55:15