Eu acho que o risco real é quando você mistura a entrada do usuário em um desses exec()
. É aí que entra a maior parte do risco, já que você está permitindo que os usuários forneçam dados que, quando misturados à CLI, podem fazer coisas perigosas, como inserir ponto e vírgula ( ;
) em uma caixa de texto e executar comandos depois de terem fornecido argumentos.
Portanto, em geral, executar comandos de maneira não somente leitura não deve mais ser perigoso do que fazer outra coisa.
É basicamente o mesmo problema que com um ataque de injeção de SQL, com o qual você pode estar mais familiarizado.