Peça ajuda com código sem entregar suas credenciais
Nomes de tabelas, colunas e funções contam o que o seu sistema guarda e como ele funciona. O Developer Shield troca esses nomes por pseudônimos antes do envio, e a detecção de segredos cuida das credenciais no meio do código.
- Estado padrão
- Desligado. Ligue em Configurações ou escolha o perfil Desenvolvimento.
- Cobertura
- 13 linguagens e dialetos em Produção, de PostgreSQL a PowerShell.
- Onde a análise roda
- No seu navegador, dentro da extensão.
- Navegadores
- Chrome, Microsoft Edge e Firefox (versão 140 ou mais recente), todos com suporte verificado.
Antes e depois
Exemplos sintéticos com a saída real da extensão.
SQL
Antes
SELECT nome, documento, renda_mensal
FROM clientes_pf
WHERE uf = 'ES' AND documento = '123.456.789-09';Depois, com o Developer Shield ligado: o que a IA recebe
SELECT TI_COLUMN_NAME_NAME_2VNXFSFX, TI_COLUMN_NAME_RECORD_2M83AD8B, TI_COLUMN_NAME_FIELD_Y70GZ1PA
FROM TI_TABLE_NAME_CUSTOMER_9YN4D88A
WHERE TI_COLUMN_NAME_FIELD_HD72ZG8C = 'ES' AND TI_COLUMN_NAME_RECORD_2M83AD8B = '{cpf:qzt6k2x8}';Com o Developer Shield ligado, a tabela e as colunas viram pseudônimos e o CPF vira um marcador. A sintaxe continua válida. Sem o Developer Shield, só o CPF é trocado.
Python
Antes
import boto3
AWS_SECRET_ACCESS_KEY = "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
s3 = boto3.client("s3", region_name="sa-east-1")Depois, no padrão
Envio bloqueado. O texto não é enviado, e a Tiuri mostra “Envio bloqueado pela política de proteção. Edite o texto ou cancele; o texto continua no campo.”
Com “Bloquear segredos críticos” desligado: o que a IA recebe
import boto3
AWS_SECRET_ACCESS_KEY = "{aws_secret:1ma517xj}"
s3 = boto3.client("s3", region_name="sa-east-1")A chave secreta da AWS só é reconhecida com o pacote TI/DevOps, ligado nos perfis Trabalho, Desenvolvimento e Rigoroso; no perfil padrão (Equilibrado), esse pacote fica desligado. Com ele ligado, a chave é um segredo crítico e, por padrão, o envio é bloqueado.
Configuração
Antes
DATABASE_URL=postgres://app:S3nh4@10.0.4.12:5432/prodDepois, no padrão
Envio bloqueado. O texto não é enviado, e a Tiuri mostra “Envio bloqueado pela política de proteção. Edite o texto ou cancele; o texto continua no campo.”
Com “Bloquear segredos críticos” desligado: o que a IA recebe
DATABASE_URL={connection_string:yck4kqx2}A string de conexão com senha é reconhecida em qualquer perfil. É um segredo crítico: por padrão, o envio é bloqueado. Para trocar o valor por um marcador, desligue “Bloquear segredos críticos” nas configurações da extensão.
O que o Developer Shield reconhece
Nomes internos, trocados por pseudônimos consistentes em todas as ocorrências.
Em SQL
- schemas
- tabelas
- colunas
- views
- funções
- procedures
- triggers
- índices
- variáveis de rotinas
- sequências
Em código
- classes
- funções
- métodos
- pacotes
- namespaces
- módulos relativos
- variáveis, parâmetros e campos com nome de negócio
Ficam como estão, de propósito
idataresultbase_url- APIs da plataforma
Nomes genéricos, nomes compostos só de palavras genéricas e APIs da plataforma não são trocados.
Segredos no código
Pegos pela detecção de segredos, que funciona com ou sem o Developer Shield.
Sempre ligados
- Chaves privadas (PEM, OpenSSH, PGP)
- Chaves de API com prefixo conhecido (OpenAI, Anthropic, Google, GitHub, Slack, Stripe e chave de acesso da AWS)
- Tokens de acesso usados como credencial (cabeçalho Bearer, access_token)
- Cookies de sessão e credenciais HTTP Basic
- Strings de conexão com banco de dados que trazem senha
- Tokens JWT soltos (revisados e trocados por marcador, sem bloquear)
Com o pacote TI/DevOps
Ligado nos perfis Trabalho, Desenvolvimento e Rigoroso.
- AWS Secret Access Key
- Tokens de npm, PyPI, SendGrid, Discord e Twilio
- Credenciais de Firebase e Azure Storage
- Strings de conexão JDBC
- Endereços IP privados e endereços MAC
Por padrão, a opção “Bloquear segredos críticos” vem ligada: quando a Tiuri encontra um segredo crítico, como uma chave privada, uma chave de API, um token de acesso, um cookie de sessão ou uma string de conexão com senha, ela bloqueia o envio até você removê-lo, em qualquer modo.
Linguagens e formatos
13 linguagens e dialetos no nível Produção, o mais alto da extensão: a proteção funciona de ponta a ponta nos testes. O nível vem dos testes, não é declarado à mão, e os limites de cada linguagem estão abaixo.
| Linguagem / formato | Suporte | O que protege |
|---|---|---|
| PostgreSQL | Produção | Schema, tabela, coluna, view, função, procedure, trigger, índice, sequência, papel, política, tipo, variável |
| T-SQL / SQL Server | Produção | Schema, tabela, coluna, view, função, procedure, índice, sequência |
| MySQL / MariaDB | Produção | Schema, tabela, coluna, view, índice, procedure, função, trigger, variável |
| SQLite | Produção | Schema, tabela, coluna, view, índice, trigger |
| Oracle / PL/SQL | Produção | Schema, tabela, coluna, view, índice, sequência, procedure, função, pacote, trigger, tipo, variável |
| JavaScript / TypeScript | Produção | Classes, funções, métodos, módulos relativos e nomes de negócio |
| Python | Produção | Classes, funções, métodos e nomes de negócio |
| Java | Produção | Pacotes, classes, métodos e nomes de negócio |
| C / C++ | Produção | Namespaces, classes, funções, nomes de negócio e nomes de macros definidas no trecho |
| C# | Produção | Namespaces, classes, records, interfaces, métodos e nomes de negócio |
| Go | Produção | Pacotes, tipos, funções, métodos e nomes de negócio |
| Shell (bash) | Produção | Nomes de funções e variáveis locais com nome de negócio, inclusive quando aparecem dentro de strings com aspas duplas |
| PowerShell | Produção | Funções, classes, métodos, propriedades e nomes de negócio (o $ é mantido) |
Limites por linguagem (13)
- PostgreSQL
- Corpos de rotinas PL/pgSQL e LANGUAGE sql são analisados; SQL montado em strings (concatenação ou format()) não é.
- T-SQL / SQL Server
- Literais de EXEC('...') e sp_executesql N'...' são analisados; SQL montado em strings (concatenação, variáveis) não é.
- MySQL / MariaDB
- Sintaxe exclusiva do MariaDB (por exemplo, tabelas versionadas pelo sistema) bloqueia o envio. Scripts com DELIMITER e PREPARE ... FROM '...' com um único literal são analisados.
- SQLite
- SQL sem marcas de dialeto é tentado com PostgreSQL, MySQL, SQLite, T-SQL e, por último, Oracle; vale o primeiro que aceita o texto inteiro.
- Oracle / PL/SQL
- Blocos PL/SQL, procedures, funções, pacotes, triggers e tipos são analisados, inclusive EXECUTE IMMEDIATE '...' com um único literal; SQL montado por concatenação ou em variáveis não é, e apelidos de tabela ficam como estão.
- JavaScript / TypeScript
- Nomes genéricos, chaves de objeto, nomes JSX e APIs da plataforma ficam como estão.
- Python
- Nomes genéricos e métodos especiais (dunder) ficam como estão.
- Java
- Nomes genéricos e métodos como toString e equals ficam como estão.
- C / C++
- Parâmetros e corpo de macros nunca são reescritos; nenhuma macro é renomeada se o trecho usa # ou ##.
- C#
- Nomes genéricos, hooks do framework (ToString, Dispose…) e APIs chamadas ficam como estão.
- Go
- Imports, funções chamadas e hooks de interface (String, Error…) ficam como estão.
- Shell (bash)
- Variáveis em MAIÚSCULAS ou exportadas, comandos, parâmetros posicionais e o texto literal das strings não são renomeados.
- PowerShell
- Variáveis automáticas e com escopo, cmdlets e membros externos ficam como estão. O mesmo nome escrito com outras maiúsculas recebe o mesmo pseudônimo.
A resposta volta legível
Se a resposta da IA usar os pseudônimos, como em TI_TABLE_NAME_CUSTOMER_9YN4D88A, a Tiuri mostra o nome original na sua tela. A ferramenta de IA continua sem ter recebido o nome.
Marcadores que não estão no cofre desta conversa ficam como estão; a Tiuri nunca tenta adivinhar o valor. Quando um identificador de código da resposta não pode ser restaurado, a Tiuri avisa.