Como as chaves de entrada são exploráveis ​​por usuários mal-intencionados?

NoCodeIgniter Framework PHP, existe uma função que roda automaticamente em cada requisição que, entre outras coisas,filtra as chaves do array GET / POST / COOKIEe mata o aplicativo se encontrar caracteres que considere inseguros.

Para evitar que usuários mal-intencionados tentem explorar as chaves, garantimos que as chaves sejam nomeadas apenas com texto alfanumérico e alguns outros itens.

Algo como:

<code>// foreach GET/POST/COOKIE keys as $str...
if ( ! preg_match("/^[a-z0-9:_\/-]+$/i", $str))
{
    exit('Disallowed Key Characters.');
}
</code>

Por exemplo, isso será acionado se você acidentalmente postar algo como<input name="TE$T"> ou ter uma string de consulta como?name|first=1.

Eu posso ver isso sendo uma boa maneira de reforçar os nomes de chaves do senso comum, ou pegar erros durante o desenvolvimento de um aplicativo, mas eu não entendo: Como um usuário mal-intencionado pode possivelmente "explorar chaves" em$_POST dados por exemplo? Especialmente desde (eu diria) entradavalores são tão exploráveis, o que isso realmente impede?

questionAnswers(5)

yourAnswerToTheQuestion