ESN Guardian › Guides

Webhooks

Discord webhook security

By ESN Systems, makers of ESN Guardian. Updated November 3, 2026.

A Discord webhook URL works like a password: anyone who has it can post in your channel. Here is how webhooks get abused, a checklist to lock them down, and what to do when one leaks.

Guardian is on every server at no cost. Setup takes about five minutes.

Add Guardian to DiscordGrade your server first

What a Discord webhook is

A webhook is a URL that posts messages into one channel. Discord's Intro to Webhooks article shows how they are made: Server Settings → Integrations → Webhooks, or the channel's own settings. Tools like GitHub, YouTube notifiers and status pages use them to post updates without a full bot.

The catch is in how they work. Discord's webhook developer docs describe executing a webhook as a request to its URL with the token in it, and no Discord login is needed. Anyone who has the URL can post as that webhook, with any name and avatar they like, as often as Discord's rate limits allow. The URL is the password.

How webhooks get abused

Webhook security checklist

  1. Limit Manage Webhooks. Only admins and the bots that really need it. Never give it to @everyone. Our permissions checker flags it in any permission number or bot invite link.
  2. Review webhooks regularly. Server Settings → Integrations lists every webhook and who created it. Delete the ones nothing uses.
  3. Treat URLs like passwords. Keep them in environment variables or a secrets store, not in code you commit or files you share.
  4. Leaked a URL? Replace it. Delete the webhook and make a new one. Changing its name doesn't change the URL.
  5. Check after any incident. After a raid, nuke or hacked mod account, look for webhooks created during it.
  6. Mind the mentions. If an integration doesn't need to ping @everyone, post it in a channel where @everyone mentions are off.

Guardian watches webhook creation and replaces a spamming webhook with a fresh URL.

Add ESN Guardian

How ESN Guardian protects your webhooks

Set it up

  1. Add Guardian and run /guardian setup.
  2. Run /watchtower status to see the webhook guard and how it is set.
  3. Run /audit run and fix any Manage Webhooks findings it shows.
  4. Take a snapshot with /snapshot take so you have a copy of your current webhook list.

Sources: Discord's Intro to Webhooks article and webhook developer docs. Checked November 3, 2026.

Questions

Can anyone use my Discord webhook URL?

Yes. Anyone who has the URL can post through the webhook without logging in. Treat it like a password, and delete and recreate the webhook if it leaks.

How do I stop webhook spam on Discord?

Delete the spamming webhook and create a new one, remove Manage Webhooks from roles that don't need it, and review Server Settings → Integrations for webhooks you don't recognise. Guardian can rotate a spamming webhook to a new URL for you.

Does renaming a webhook change its URL?

No. Only deleting and recreating the webhook gives it a new URL.

Who can see webhook URLs in my server?

Members with the Manage Webhooks permission can see and create webhooks in the channels they manage, so keep that permission to admins and the bots that need it.

Running your own Discord bot? ESN Hosting runs Discord bots 24/7, from $0.50/mo →

More guides