T09 · Insecure Skill Coding Practices
- Location
scripts/mindmap_tools.py:219- Finding
Unescaped JSON Content Allows Stored HTML and SVG Injection
- Content
View full analysis
★{note.get("text","")}') svg.append('') return '\n'.join(svg) def render_node(nd): parts = [''] if nd.get('text'): parts.append(f'{nd["text"]}') if nd.get('eq'): parts.append(f'') return '\n'.join(parts) ``` Additional unescaped insertion points in `render_html` include: ```python secs.append(f'{nd["eq"]}') extra = nd.get('extra') if extra: parts.append(f'{extra}') if nd.get('tag'): for t in nd['tag'].split('|'): cls = {'常考': 'tag-red', '易错': 'tag-yellow', '可推': 'tag-green', '必须记': 'tag-gray'}.get(t.strip(), 'tag-gray') parts.append(f'{t.strip()}') parts.append('') branch_html.append( f'▸ {sec.get("title","")}{nodes}' f'') {meta.get('module','')}|三层思维导图{b.get("id", idx+1)}{b.get("title","")}' + ''.join(secs) + '{meta.get('module','')}|三层思维导图
主题式包装:{meta.get('theme','')} | {meta.get('grade_region','')} · {meta.get('textbook','')} | 配套教案:mifu-chemistry-lesson-prep{stats_line} | validate: {data.get('_validate_status','未运行')} | 生成日期:{today} | 米赋教育教研中心 · mifu-chem-mindmap v{meta.get('skill_ver ...[truncated 2413 chars]- Remediation
View remediation
` elements - Event-handler attributes - SVG element termination - Quotes in SVG coordinates and IDs - Remote image or frame elements ]]>
