T09 · Insecure Skill Coding Practices
- Location
scripts/track_events.py:56- Finding
Unrestricted source fetching enables SSRF and external data relay
- Content
View full analysis
{e}") return None ``` Configured source URLs are passed directly to this function: ```python for source in sources: if not source.get("enabled", True): print(f"\n⏭️ 跳过:{source['name']}") continue print(f"\n🔍 抓取:{source['name']} ({source['url']})") html = fetch_url(source["url"]) if not html: print(f" ❌ 抓取失败") continue print(f" ✅ 抓取成功,{len(html)} 字符") parser = PARSERS.get(source["id"]) if not parser: print(f" ⚠️ 无解析器,使用通用解析") text = extract_text(html, 5000) title_match = re.search(r"(.*?)", html, re.IGNORECASE | re.DOTALL) title = title_match.group(1).strip() if title_match else source["name"] events = [{ "id": make_id(source["id"], title), "source_id": source["id"], "name": title, "summary": text[:300], "type": source.get("category", "未知"), "organizer": source.get("organizer", ""), "status": "未知", ...[truncated 3657 chars]- Remediation
View remediation
