T09 · Insecure Skill Coding Practices
- Location
scripts/export_html.py:23- Finding
Stored HTML and JavaScript Injection in Generated HTML Exports
- Content
View full analysis
str: if val is None: return default s = str(val).strip() return s if s else default ``` Project-level values are collected without escaping: ```python simple = { "project.title": safe_str(project.get("title")), "project.scene_type": safe_str(project.get("scene_type")), "project.duration_est": safe_str(project.get("duration_est")), "project.aspect_ratio": safe_str(project.get("aspect_ratio"), "16:9"), "project.genre": safe_str(project.get("genre")), "project.platform": safe_str(project.get("platform")), "project.language": safe_str(project.get("language"), "zh-CN"), "director_notes.vision": safe_str(director_notes.get("vision")), "script.logline": safe_str(script.get("logline")), "script.structure": safe_str(script.get("structure")), "script._meta.writer_revision": safe_str(resolve_path(script, "_meta.writer_revision", "1")), "script._meta.dp_revision": safe_str(resolve_path(script, "_meta.dp_revision", "1")), "script._meta.director_approved": safe_str(resolve_path(script, "_meta.director_approved", "false")), "_version": VERSION, "_generated_at": datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ"), "_panels_count": str(len(storyboard)), "_grid_layout": "2×3" if len(storyboard) <= 6 else "3×3", "_is_3x3": "true" if len(storyboard) > 6 else "", } de ...[truncated 4072 chars]- Remediation
View remediation
