Hacktoberfest 2026:維護者為十月標記出來的 issue,仍然開放、適合新手。 瀏覽 Hacktoberfest issue

chore(review): small hardening items in MCP guard, RPC client, sandbox runner, CSV export, file launch

未關閉
#1,565 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視

維護者通常 1 天內回覆

還沒有人認領這個 Issue。

評估

難度
4/5
預估耗時
3-5 天
新手友好度
35/100
Issue 類型
缺陷
描述清晰度
基本清楚
活躍度
活躍
技術堆疊
dart, flutter, postgresql

研究方向

Start with the listed files: lib/core/mcp/mcp_sql_guard.dart, lib/core/mcp/mcp_socket_host.dart, lib/core/extensions/rpc/json_rpc_stdio_client.dart, lib/core/extensions/sandbox/sandbox_process_runner.dart, the CSV export files, and lib/core/platform/file_launch_service.dart. Read each relevant function and its existing tests, then choose one finding to address; the issue suggests splitting larger items. Done means the chosen behavior is fixed and covered by a focused test.

由索引模型根據 Issue 內容生成。

描述

core enhancement P3 stability

Small findings from a review of areas with no open issues. Split into separate issues if any grows.

  • MCP SQL guard (lib/core/mcp/mcp_sql_guard.dart:40-49): _forbiddenFunctions lacks QUERY_TO_XML* / CURSOR_TO_XML / TABLE_TO_XML*, PG_ADVISORY_*, PG_SLEEP, LO_*, NEXTVAL / SETVAL. No bypass found (the read-only session is the second layer), this is defence in depth. _explainForbidden includes REPLACE, which refuses EXPLAIN SELECT REPLACE(...) (false positive).
  • McpSocketHost (lib/core/mcp/mcp_socket_host.dart:90-95): a line before authentication has no length limit and the number of unauthenticated sockets is unbounded (loopback only, 5 s handshake).
  • JsonRpcStdioClient.sendRequest (lib/core/extensions/rpc/json_rpc_stdio_client.dart:86-95): _stdin.writeln is outside the try; on a closed sink it throws synchronously and leaves _pending[id] behind.
  • SandboxProcessRunner.start (lib/core/extensions/sandbox/sandbox_process_runner.dart:123-145): the scratch directory is created before SandboxLaunchCommand.build; an exception there leaks it.
  • CSV export (lib/core/csv/result_grid_csv.dart, save_result_grid_csv.dart): no UTF-8 BOM (Excel misreads Cyrillic), no formula-injection guard for cells starting with = + - @, \n instead of CRLF while documented as RFC 4180, the write error cause is swallowed.
  • FileLaunchService (lib/core/platform/file_launch_service.dart): hasPendingTarget duplicates hasPendingTargets; path comparison in resolveOrRegisterSqliteConnection is case-sensitive (duplicate connections on Windows/macOS).
主要語言
Dart
星號
23
分支
1
平均合併
31 分鐘
30 天內合併 PR
570

環境準備

在 Codespaces 中開啟

在瀏覽器裡用你自己的 GitHub 帳號啟動這個專案的開發容器。

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

QueryaHub/Querya-Desktop 的其他 Issue

查看 QueryaHub/Querya-Desktop 的全部 Issue

相似的 Issue

更多 Dart Issue

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。