MicroFish/backend/app/services
Yo-LRK ed840c7a00 security: H5 traceback gate + MED tier (upload sniff, path validation, CSP)
H5 (traceback leak, completing the prior log-level fix): new app/utils/security.py
safe_traceback() logs the full stack server-side and returns it to clients only when
FLASK_DEBUG; all 53 traceback.format_exc() in api/{graph,report,simulation}.py now call
it (import traceback removed).

Upload content sniff: upload_content_ok() magic-byte check — pdf must start %PDF-,
txt/md/markdown rejected if they contain NUL bytes (BOM-prefixed UTF-16/32/8 text
allowed). Wired into the graph.py upload loop so a renamed binary can't pass the
extension whitelist.

Path validation: validate_id() (^[A-Za-z0-9_-]{1,64}$) blocks traversal before every
id->filesystem sink — ProjectManager._get_project_dir, SimulationManager._get_simulation_dir,
ReportManager._get_report_folder + the two Report*Logger __init__, and a new
SimulationRunner._run_dir() that all RUN_STATE_DIR joins route through.

CSP / security headers: CSP <meta> in index.html, vite preview.headers
(X-Frame-Options/nosniff/Referrer-Policy + CSP frame-ancestors), and a Flask
after_request that sets the same headers on API responses.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13 18:00:28 +07:00
..
__init__.py Implement Interview feature for agent interactions in simulations 2025-12-08 15:55:39 +08:00
graph_builder.py fix(i18n): pass locale to background threads via thread-local storage 2026-04-01 16:55:51 +08:00
oasis_profile_generator.py feat(i18n): replace remaining Chinese in config generator and profile generator 2026-04-01 17:19:12 +08:00
ontology_generator.py Merge pull request #428 from Ghostubborn/feat/i18n 2026-04-02 14:27:04 +08:00
report_agent.py security: H5 traceback gate + MED tier (upload sniff, path validation, CSP) 2026-06-13 18:00:28 +07:00
simulation_config_generator.py feat(i18n): replace remaining Chinese in config generator and profile generator 2026-04-01 17:19:12 +08:00
simulation_ipc.py Implement Interview feature for agent interactions in simulations 2025-12-08 15:55:39 +08:00
simulation_manager.py security: H5 traceback gate + MED tier (upload sniff, path validation, CSP) 2026-06-13 18:00:28 +07:00
simulation_runner.py security: H5 traceback gate + MED tier (upload sniff, path validation, CSP) 2026-06-13 18:00:28 +07:00
text_processor.py Introduce Project ID for context management, finalizing the stateful API pipeline from file submission to graph construction. 2025-11-28 17:21:08 +08:00
zep_entity_reader.py feat(graph): implement pagination for fetching nodes and edges; add utility functions for streamlined data retrieval 2026-02-27 15:53:29 +08:00
zep_graph_memory_updater.py fix(i18n): pass locale to background threads via thread-local storage 2026-04-01 16:55:51 +08:00
zep_tools.py feat(i18n): replace all user-visible Chinese logger messages in zep_tools.py 2026-04-01 17:46:39 +08:00