Shield

Blipit Shield はブルートフォース、クレデンシャルスタッフィング、スキャナー、インジェクションの試みをサーバー側で検知し、選択した場合はアプリの中でブロックします。Node と Next.js の SDK と Odoo モジュールは、Blipit が決めたリストを取得して適用するだけです。プロジェクトで有効にするまで Shield はオフのままです。

1Node.js

シークレットキーを使い、ルートより前にミドルウェアを追加します。プロキシやロードバランサーの後ろでは、trustProxy にアプリの前にあるプロキシの数を設定します。actor はサインイン先のアカウントを返し、ブロックされたアカウントも拒否されます。Fastify: app.addHook("onRequest", shield.fastify)。

js
import * as Blipit from "@blipit/node";
import express from "express";

const app = express();
app.use(express.json());
app.use(Blipit.shield({ trustProxy: 1, actor: (req) => req.body?.email }));

2Next.js

middleware.ts をラップします。Edge ランタイムで動作し、BLIPIT_SECRET_KEY を読み込みます。独自のミドルウェアを残すには渡してください: withBlipitShield(yourMiddleware)。

ts
import { withBlipitShield } from "@blipit/nextjs/shield";

export const middleware = withBlipitShield();

3Odoo

追加作業はありません。モジュールのバージョン 1.18.14 以降、Shield を有効にすると Odoo はすべてのページとすべてのサインインで同じリストを適用します。

4動作

  • ブロックされた IP とアカウントには短いテキストと 403 を返し、サインインのレート制限には Retry-After 付きの 429 を返します。
  • リストはバックグラウンドで 30 秒ごとに更新されるため、リクエストが Blipit を待つことはありません。Blipit に接続できない場合は最後のリストが有効なままです。
  • テストモードでは何もブロックせず、ブロックされたはずの数を Blipit が数えます。
  • アプリは 1 分に 1 回、各ブロックが適用された回数と、Shield が有効な間はリクエストの小さなサンプル(パス、メソッド、ステータス、IP、ユーザーエージェント、秘密情報を除いたクエリ文字列)を送信します。ヘッダー、Cookie、パスワード、リクエスト本文は送信しません。

お困りですか?support@blipit.io までメールしてください。各プロジェクトのキーとプロジェクト ID は app.blipit.io の「APIキー」にあります。