T09 · Insecure Skill Coding Practices
- Location
scripts/geekbi_auth.py:698- Finding
Credential-Bearing Requests Do Not Restrict the Destination or Transport
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill appears to provide legitimate AliExpress shop analytics, but its login-token handling and configurable authenticated API destination need review before installation.
Install only if you trust the GeekBI publisher and are comfortable with the skill storing GeekBI login tokens locally. Avoid custom --base-url values, keep the workspace private, and clear the skill's auth state when you no longer need authenticated access.
scripts/geekbi_auth.py:698Credential-Bearing Requests Do Not Restrict the Destination or Transport
scripts/geekbi_auth.py:68Bearer Tokens Are Stored in Plaintext Across Multiple Local Directories
声明的核心能力是“店铺详情及店铺商品分析”,关注店铺维度指标和竞店研究;而代码明确访问 goods/ai-search 商品搜索端点,参数也全部围绕商品关键词、类目、站点、价格、销量、评分、评论和时间范围等商品筛选条件展开。代码没有店铺 ID、店铺详情、粉丝、店铺类目结构、经营趋势分析等明显店铺维度能力。虽然声明中提到‘店铺商品’,与商品搜索有一定相关性,但该代码的主功能与声明的主要用途存在实质偏差,因此应判定为描述与实际行为不一致。
声明的核心用途是店铺与商品层面的经营分析(店铺销量、销售额、评分、粉丝、商品数量、类目结构、经营趋势等),面向店铺 ID、商品 ID、竞店调研等场景。实际代码则完全没有处理店铺或商品分析,也没有查询店铺详情、商品列表、销量或趋势数据,而是单纯拉取 AliExpress 站点清单并根据输入的国家/地区/站点 ID 做匹配解析。这属于主要目的和访问资源均明显不一致,不是简单的支撑性实现细节,因此应判定为描述与行为不匹配。
L15-L20 给出的调用示例是通用自然语言请求,如“分析这个…店铺的销售表现”和“查询该店铺…分析…”,与日常对话中的常见分析请求高度重叠。文档未说明明确触发条件、适用上下文或反例,容易导致技能在非预期场景下被误触发。
Without declared permissions the skill's intent is opaque and cannot be validated.
The display name, short description, and default prompt are all written to require operation in Chinese, with no indication that users may choose another language or that the skill is intentionally limited to a Chinese-language audience. This can violate language/locale policy because the skill appears to impose a specific language by default rather than offering opt-in or documenting a justified locale restriction.
The instruction "原样使用服务端中文 msg" requires the skill to present Chinese-language content as-is, which enforces a specific language without any user opt-in or alternative locale handling. This is a natural-language policy issue because it constrains output language regardless of user preference.
This code presents its user-facing description, argument help text, and error messages exclusively in Chinese, which constitutes a language/locale policy concern under the natural-language policy rule when no user opt-in or documented locale justification is provided. There is no indication that the tool is intentionally limited to a Chinese-only regional or compliance context.
This module is dedicated to agent authentication state management, including token acquisition, pending login flows, and persistent credential storage. The manifest describes querying and analyzing AliExpress shop and product data and explicitly frames the skill as read-only analytics; it does not mention any user login/session management capability as part of the skill behavior.
The file's docstrings, CLI descriptions, exception messages, and action prompts are presented exclusively in Chinese, with no indication that the user can choose language or locale. This creates a language/locale policy issue because the skill imposes a specific language on all users without opt-in or documented regional scope.
The code removes local auth state files via unlink() across all resolved stores, which is a destructive file operation. Although the CLI command name is 'clear', there is no confirmation prompt, no explicit warning comment/docstring near the deletion logic, and no user-facing disclosure that stored login state will be erased.
L01-L20 的说明和示例均强制以中文呈现,没有提供用户语言选择,也未说明该技能仅面向中文用户或特定区域。根据语言/locale 政策,这类默认强制单一语言且无用户选择的说明可构成自然语言政策问题。
This markdown file is entirely presented in Chinese and does not state that the user can choose another language or locale. Under the policy rule for natural-language violations, forcing a specific language without user opt-in can be a policy issue unless the locale restriction is documented and justified.
This Python file performs an authenticated HTTP request to an external API using the provided mall and site identifiers, but the code gives no user-facing notice beyond a generic CLI description. There is no confirmation prompt, explicit disclosure print, or comment/docstring warning that input data will be sent over the network.
This Python file contains user-facing natural-language text exclusively in Chinese in the module docstring and many exception messages, indicating the skill is designed to communicate in a fixed language. The file does not document that the skill is China-specific or that users can opt into this locale, which matches the language/locale policy concern for natural-language content in code files.
The storage_status function probes multiple local directories, tests readability/writability/locking, and returns exact filesystem paths. Detailed local storage diagnostics are operational/auth-management functionality rather than a direct requirement of shop analytics.
The file provides a standalone command-line interface for checking storage status and clearing auth state. Those operational capabilities are not part of the stated purpose of analyzing AliExpress stores/products and are not justified by the manifest's user-facing scope.