T09 · Insecure Skill Coding Practices
- Location
seo_checker.py:20- Finding
Unrestricted URL Fetching Enables SSRF and External Disclosure of Retrieved Content
- Content
View full analysis
tuple[requests.Response, float]: """获取页面并记录耗时""" start = time.time() resp = requests.get( url, headers={ "User-Agent": ( "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) " "AppleWebKit/537.36 (KHTML, like Gecko) " "Chrome/120.0.0.0 Safari/537.36" ), }, timeout=timeout, allow_redirects=True, ) elapsed = time.time() - start return resp, elapsed ``` ```python def ai_analysis(url: str, raw_html: str) -> str: """调用 AI 进行增强分析""" try: from openai import OpenAI except ImportError: return "错误: 需要安装 openai 库。运行: pip install openai" api_key = os.environ.get("OPENAI_API_KEY") if not api_key: return "错误: 请设置环境变量 OPENAI_API_KEY" model = os.environ.get("OPENAI_MODEL", "gpt-4o-mini") client = OpenAI(api_key=api_key) # 提取前 5000 字符进行 AI 分析 text = BeautifulSoup(raw_html, "html.parser").get_text(separator=" ", strip=True)[:5000] prompt = textwrap.dedent(f"""\ 你是一位 SEO 专家。请对以下网页内容进行 SEO 分析,给出具体的优化建议。 URL: {url} 页面内容(前5000字符): {text} 请以 Markdown 格式输出分析报告,包含以下内容: 1. 内容质量评估(原创性、价值性、相关性) 2. 关键词策略建议(推荐的核心关键词) 3. 内容优化建议(标题改进、内容补充方向) 4. 用户体验建议(可读性、结构、CTA等) 5. 优先级排序(哪些改进最紧急) 注意:输出不要太长,但要具体可执行。 """) resp = client.chat.completions.create( model=model, messages=[ {"role": "system", "content": "你是一位资深的 SEO 优化专家,精通百度 SEO 和 Google SEO。"}, {"role": "user", "content": prompt}, ], temperature=0.5, ) return resp.choices[0].message.content or "" ``` ```py ...[truncated 3859 chars]- Remediation
View remediation
