Skip to content

O comando de shutdown funciona sem ser dono. #7

@noadevbr

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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions