Weaknesses of type CWE-473

5 results

Modificação de variáveis externas em PHP

Fraqueza que ocorre quando PHP permite que variáveis globais ou superglobais sejam sobrescritas por entrada do usuário (via GET, POST, cookies, etc.), sem validação ou isolamento adequado. Isso acontece principalmente quando se usa `register_globals` ativado ou quando se confia diretamente em `$_GET`, `$_POST` sem filtro, permitindo que um atacante altere lógica crítica da aplicação.

Example

Um script PHP que faz `if ($_GET['is_admin']) { $is_admin = $_GET['is_admin']; }` deixa um atacante definir `is_admin=1` na URL para ganhar privilégios. Ou pior: em versões antigas com `register_globals`, submeter `admin=true` via formulário criava automaticamente a variável `$admin` como global.

How to mitigate

Valide e sanitize explicitamente toda entrada externa; use `filter_var()` ou bibliotecas dedicadas; mantenha `register_globals = Off` (já é padrão em PHP 5.4+); use `$_SESSION` para dados sensíveis como autenticação, nunca confie em GET/POST direto; aplique listas brancas de valores aceitos para variáveis críticas.