Valentine escreveu:Lembre-se que o sinal ";" também é bloqueado, então nesse caso não daria pra usar o comando nocivo dessa forma.gladistony escreveu:Valentine escreveu:Mas elas contem algumas expressões que impedem executar uma string diferente de sua finalidade. Além do mais, eu irei melhor mais ainda a segurança.Paulo Soreto escreveu:Tags <13>, <14>, <15>, <16>, <17> ainda utilizam o eval(), que executa qualquer string, essa é uma brecha grande no netplay isso deixa em risco os computadores dos jogadores.
Cara, esse if que você colocou não resolve em quase nada o problema.
Por exemplo, no caso da tag <13>, basta você incluir $ABS dentro da string é pronto, ela será executada.
Segue abaixo um exemplo:
- Código:
"<13> a = '$ABS'; Comando nocivo <\13> \n"
Na minha opinião você deveria remover todos os Eval(), mesmo que pra isso você coloque 10 novas tags para cada eval, no final acho que melhoraria muito a questão de segurança.
Sim, mas existem muitas outras maneiras, por exemplo eu posso dividir o comando em 2 mensagens:
MSG 1
- Código:
"<13> $ABSV = 'Comando nocivo' <\13> \n"
- Código:
"<13> eval($ABSV) <\13> \n"
Outra forma seria criar um arquivo .bat e executar ele depois ou colocar ele nas pasta inicializar do windows. (Isso não é algo trivial, mas da pra fazer)
Ainda da pra ativar win32api criando a variável com o nome $ABS.