Skip to content

fix: urlencode login params and add cmcc fallback#22

Open
KansChen wants to merge 1 commit into
s235784:mainfrom
KansChen:fix/cmcc-urlencode-plus-v2
Open

fix: urlencode login params and add cmcc fallback#22
KansChen wants to merge 1 commit into
s235784:mainfrom
KansChen:fix/cmcc-urlencode-plus-v2

Conversation

@KansChen
Copy link
Copy Markdown

背景

在 OpenWrt 路由器环境下,cmcc 账号自动登录失败,返回:

账号或密码错误(ldap校验)

但同账号同密码在网页手动登录正常。对照测试显示同设备下 ctcc 账号可正常自动登录,问题集中在 cmcc 请求参数处理。

问题分析

原脚本通过拼接 GET URL 传参,user_password 未做 URL 编码。
当密码包含 + 等特殊字符时,服务端可能按表单规则错误解析,导致 LDAP 校验失败。

此外,cmcc 账号后缀规则存在环境差异风险(@cmcc 不一定总可用)。

修改内容

  1. 登录请求改为 curl --get --data-urlencode,由 curl 统一编码参数:
    • user_account
    • user_password
    • wlan_user_ip
  2. user_account 改为原始字符串构造,不再手工预编码。
  3. cmcc 登录失败时增加回退尝试:
    • ,0,<id>@cmcc
    • ,0,<id>@njxy
    • ,0,<id>
  4. 输出中隐藏密码明文,避免日志泄露。

验证情况

  • OpenWrt(BusyBox ash + curl 7.82.0)环境下复现原问题。
  • 修复后可避免 + 等特殊字符导致的参数解析错误。
  • 脚本语法检查通过(bash -n)。

兼容性说明

本次修改不改变既有参数接口,仅增强参数编码和 cmcc 兼容策略。

@KansChen
Copy link
Copy Markdown
Author

#21 修复这个bug

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant