Skip to content

O comando de shutdown funciona sem ser dono. #7

Description

@noadevbr

Fui testar o bot e achei um comando chamado /shutdown. Fui usar despretensiosamente, esperando que não funcionasse mas por incrível que pareça FUNCIONOU.

Fui ver a source e parece que sim está sendo feito uma verificação mas quem disse que a verificação funciona.

Bom, ele diferencia literalmente qualquer valor definido no .env, não o dono do bot.

O problema é que OWNER_ID está sendo tratado apenas como uma string existente. Então se existir qualquer valor em OWNER_ID, a condição passa e o bot executa o shutdown normalmente.

O código atual:

if not OWNER_ID:
    await interaction.response.send_message("Tá querendo me desligar é? **Você não tem permissão para me desativar!**")
else:
    await client.stop_app(SQUARE_APP_ID)

não verifica quem executou o comando, apenas verifica se a variável OWNER_ID existe.

Na prática, isso significa que qualquer usuário consegue desligar o bot desde que o .env esteja configurado corretamente.

O correto seria comparar o ID do usuário que executou o comando com o OWNER_ID, algo como:

if str(interaction.user.id) != OWNER_ID:
    await interaction.response.send_message(
        "Tá querendo me desligar é? **Você não tem permissão para me desativar!**"
    )
    return

await client.stop_app(SQUARE_APP_ID)

Porque atualmente a lógica funciona assim:

  • OWNER_ID existe → shutdown liberado pra qualquer pessoa.
  • OWNER_ID não existe → ninguém consegue usar.

Ou seja, a verificação de permissão simplesmente não existe de fato.

Image Image

https://github.com/TheLuaBot/LuaBot/blob/main/command/dev/shutdown.py

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions