Skip to main content

Command menu

Jump to a page or search the catalog

AI Tools & Scripts

Slack App Safety Check

Check Slack apps before you deploy: tokens, signing secrets and webhook URLs in code, env and CI files, Events API and slash command endpoints with no signature check, Bolt checks turned off, admin scopes and @channel posts with user text.

$5.00

What you get: 1 file · 50.33 KB · ZIP

See purchase options

Product description

A Flask route that answers Slack's url_verification challenge but never checks X-Slack-Signature accepts fake events and button clicks from anyone who finds the URL, and one signatureVerification: false in a Bolt app does the same. This skill finds those and eleven other Slack app mistakes before you deploy, and tells you how to fix each one.

Your agent runs a scanner on JavaScript, TypeScript and Python files that use Slack (Bolt, slack_sdk, @slack/web-api, Slack tokens, URLs, headers or request fields only Slack sends), on Slack app manifests in JSON or YAML, and on env, config and CI files for tokens and webhook URLs. It knows Bolt's defaults (the signature check is on unless you turn it off, Socket Mode needs none), the verification helpers in slack_sdk and @slack/bolt, edge frameworks that verify by default, and when a check may live in middleware, a hook, a decorator or a helper it cannot read (then it says REVIEW, not BLOCK). It reads .gitignore, so a token in a .env file that git ignores is counted in one line instead of reported. Placeholders from Slack's docs are ignored, comments and test files are skipped, and nothing is run or sent to Slack. It returns BLOCK, REVIEW, or NOT FLAGGED, with the file, line, reason, and a safer approach. Tokens, secrets and webhook URLs are never printed.

What it checks

BLOCK (fix before shipping)

  • K01: Slack tokens (xoxb, xoxp, xapp, rotating and refresh tokens) in code, manifests, env, config or CI files git would commit
  • K02: signing secrets, client secrets or verification tokens written as literals or literal fallbacks in code
  • K03: incoming webhook or workflow webhook URLs in code, env, config or CI files git would commit
  • K04: a whole-server file that handles Slack events, slash commands or interactivity with nothing that could check X-Slack-Signature
  • K05: Bolt's signature check turned off (signatureVerification: false, request_verification_enabled=False) outside Socket Mode

REVIEW (check before release)

  • K11: a hand-made signature check with no five-minute timestamp limit
  • K12: a hand-made signature check that compares with == instead of a constant-time function
  • K13: a Slack request handler whose signature check, if any, lives in middleware, hooks, decorators, helpers or files the scan cannot read
  • K14: handlers that trust the deprecated verification token
  • K15: admin scopes and user-token history or search scopes (also optional scopes) in manifests and OAuth settings
  • K16: http (not https) OAuth redirect, Events, interactivity and slash command URLs
  • K17: @channel, @here or @everyone messages, or link_names, whose call carries user or request text
  • K18: OAuth state verification turned off or the state secret written in the code

What's included

  • The scanner (Python 3.9+, standard library only)
  • A rules guide with the reason, safer approach and Slack documentation link for each rule
  • A risky and a safe example Slack app (Bolt app, manifest, Flask service and Express routes), and the real report the scanner produces on the risky one

Limits

It reads each file as written: settings made in Slack's app configuration pages, values from environment variables or other modules, and what middleware or helpers in other files actually do are not seen. A handler that never names Slack is not checked. Only JavaScript, TypeScript and Python code is read; Bolt for Java and apps in Go, Ruby or PHP are not checked. Env, config and CI files are read for tokens and webhook URLs only. One finding is shown per rule and line. Test files are skipped. NOT FLAGGED is not a guarantee.

Contents

One ZIP file with 24 files: SKILL.md, the scanner in scripts/ (7 Python files), references/rules.md (every rule with its reason and safer approach), and examples/ (14 example files plus report.md, the real scanner output on the risky example).

How to use: This is an agent skill: a folder with a SKILL.md file and Python scripts that an AI coding agent such as Claude Code, Cursor, or Codex CLI can run. Unzip it into your agent's skills folder (for Claude Code: ~/.claude/skills/), then ask your agent to check your project. The scripts also run on their own with Python 3.9 or newer, with nothing to install. They read your files only: no network access, and nothing is sent anywhere.

What you get

1 file · 50.33 KB

  • slack-app-safety-check-1.0.0.zipZIP · 50.33 KB
LicenseCommercial use allowed
Package checkPassed

Getly opened the uploaded files and found nothing that would stop them opening. It is not a virus scan or a quality rating.

PublishedNov 12, 2026
File size50.33 KB
File formatZIP
Versionv1.0

Tags

slackbotswebhooksoauthsecurityai agent skill
R
RR HH

Frequently asked questions

Do I get access instantly?

Yes. This is a digital product - you can download it right after checkout, straight from your library.

Can I use it for commercial projects?

Yes. Commercial use is allowed: use it in your own business and in things you sell. You may not resell or redistribute the file itself.

What's your refund policy?

You can request a refund within 30 days. If something isn't right, request it from your order and the Getly team reviews it.

What file formats and sizes will I get?

You'll download 1 file - ZIP - 50.33 KB in total.

Do I get free updates?

Yes - when the seller ships a new version, you can re-download the latest files from your library at no extra cost. Check the changelog for recent updates.

Price

$5.00