Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

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

Aberta
#1,565 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
35/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Ativa
Stack de tecnologia
dart, flutter, postgresql

Direção de pesquisa

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.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

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).
Linguagem predominante
Dart
Estrelas
23
Forks
1
Merge médio
31min
PRs com merge (30d)
570

Preparar o ambiente

Abrir no Codespaces

Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de QueryaHub/Querya-Desktop

Todas as issues de QueryaHub/Querya-Desktop

Issues semelhantes

Mais issues de Dart

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.