0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Discord】サーバーに導入していないはずのBOTのコマンドで荒らされた時の対処法

Last updated at Posted at 2025-03-12

こんにちは、りょうです。
今回はサーバーに導入していないしていないBOTのコマンドで荒らされた場合の対処方法の紹介です。
最近それ専用の荒らしBOTも作られているのでやられる前に早めの対策をしておくと良いと思います

なぜ導入していないはずなのに実行できるのか

まずDiscordのBOTには以下の2種類があります

  • サーバーに導入して使うBOT(こっちが普通のやつ)
  • ユーザーに導入して使うBOT(こっちが今回話す方)

ユーザーインストールという機能で、そのBOTが導入されていない場所でもスラッシュコマンドを実行することができるようになります。
これを悪用した荒らしが今回のケースになります。このタイプの場合BANやキックができません。
なので正しい対処法を知っておくことが大切です

対処法

ユーザーインストールコマンドを実行できないようにする(他の人には見えないようにする)ことが必要です。

1: サーバー設定→ロール→メンバー用のロール(もしくはeveryone)を選択。
2: 権限設定を開く

image.png

3: 下にスクロールして外部のアプリを使用の項目をオフにする

image.png

これで完了です。ただし、個別に設定されている場合はそのチャンネルでは引き続き使用できます
あとは当然ですがコマンド実行した人BANすれば終わります

実行者の確認

実行者はコマンドのメッセージの インタラクション情報を表示 からかくにんできます
image.png

BOT開発者側での対応

ユーザーインストールコマンドの場合はephemeralをかけるのがいいんじゃないでしょうか。
あと特に何も設定しないとサーバー、DM等どこでも使えるので制限するのもいいと思います。
discord.js

// ...
  data: new SlashCommandBuilder()
    .setName('command')
    .setDescription('command')
    .setContexts(InteractionContextType.Guild) //  ここで実行場所を決める
    .setIntegrationTypes(ApplicationIntegrationType.GuildInstall, ApplicationIntegrationType.UserInstall) // ここでGuild, Userを決める

discord.py

# ...
from discord.app_commands import (
    CommandTree,
    allowed_installs, guild_install, user_install, # ここでサーバー、ユーザーどちらにインストールするか決める
    allowed_contexts, dm_only, guild_only, private_channel_only, # ここで使用できる場所を決める
)

まとめ

今回はユーザーインストールコマンドを悪用した荒らしへの対処法の紹介でした。
正直使うこと無いんで権限オフにしておくのがいいと思います

もしわからないことがあればコメントしてもらえれば。

Discordに湧く荒らしの情報や対策方法の共有をしている自鯖↓

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?