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

如何检测网站采用的身份验证方式?Python请求认证异常排查

检测网站身份验证方式的方法

你遇到的问题根源在于:https://github.com/是公开可访问页面,不需要身份验证,所以无论你传入的Basic Auth信息是否有效,服务器都不会校验,直接返回200。要测试身份验证逻辑,得请求需要权限才能访问的页面/接口,比如GitHub的用户信息接口https://api.github.com/user。

以下是检测网站身份验证方式的具体步骤:

  • 确定目标测试页面
    先找到网站中需要登录才能访问的资源(比如用户中心、个人数据接口),这类资源才会触发身份验证校验。

  • 通过响应头判断验证类型
    当服务器要求身份验证时,会返回401 Unauthorized状态码,同时响应头的WWW-Authenticate字段会明确标注支持的验证方式:

    • 若字段值为Basic realm="xxx":说明采用HTTP Basic认证;
    • 若包含Bearer:说明支持OAuth2 Bearer Token认证;
    • 若为Digest realm="xxx":说明是HTTP Digest认证;
    • 若返回302 Redirect跳转到登录页,或返回带登录表单的200页面:则大概率是表单认证(Form-based Authentication),这是大部分网站常用的方式。
  • 实操测试示例
    以GitHub的需认证接口为例,修改你的代码测试:

    import requests
    from requests.auth import HTTPBasicAuth
    
    username = 'fake_user'
    password = 'fake_pass'
    # 请求需要登录权限的用户信息接口
    response = requests.get('https://api.github.com/user', auth=HTTPBasicAuth(username, password))
    print('状态码:', response.status_code)
    print('验证方式头:', response.headers.get('WWW-Authenticate'))
    

    执行后会返回401 Unauthorized,且WWW-Authenticate头会显示Basic realm="GitHub", Bearer realm="GitHub",说明GitHub同时支持Basic和Bearer两种认证方式。

  • 表单认证的检测与模拟
    如果目标网站使用表单认证,需要:

    1. 访问登录页面,查看HTML结构中的表单action属性(即提交地址);
    2. 识别表单必填字段(通常包含用户名、密码,还有CSRF令牌,比如csrfmiddlewaretoken);
    3. 用会话保持工具(如requests.Session())提交表单数据,模拟登录流程:
      import requests
      from bs4 import BeautifulSoup  # 需要先安装bs4:pip install beautifulsoup4
      
      session = requests.Session()
      # 获取登录页面,提取CSRF令牌
      login_page = session.get('https://example.com/login')
      soup = BeautifulSoup(login_page.text, 'html.parser')
      csrf_token = soup.find('input', {'name': 'csrfmiddlewaretoken'}).get('value')
      # 构造登录数据
      login_data = {
          'username': 'fake_user',
          'password': 'fake_pass',
          'csrfmiddlewaretoken': csrf_token
      }
      # 提交登录请求
      response = session.post('https://example.com/login', data=login_data)
      # 验证登录结果(比如检查响应是否跳转到首页,或页面内容包含用户信息)
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 09:24:17