Skip to content

クイックスタート

所要時間: 約5分

インストール

bash
npm install @pii-firewall/sdk

最初の3行

javascript
const { createFirewall } = require("@pii-firewall/sdk");
const fw = createFirewall();
const { masked } = fw.mask("田中太郎のメールは tanaka@example.com、電話は 090-1234-5678 です");
console.log(masked);
// → 田中太郎のメールは [SECURED:type=email,id=a1b2...] 、電話は [SECURED:type=phone,id=c3d4...] です

これだけです。 AIに渡す前に .mask() を通すだけで、個人情報はAIに届きません。

AIと組み合わせる基本パターン

javascript
async function secureChat(userMessage) {
  // ① AIに送る前にマスク
  const { masked } = fw.mask(userMessage);

  // ② AIにはトークンしか届かない
  const aiResponse = await callYourAI(masked);   // OpenAI / Claude など

  // ③ ユーザーに返す前に元の値に復元
  return fw.restoreAll(aiResponse);
}
ユーザー入力          あなたのサーバー               AI
"tanaka@example.com" → fw.mask() → [SECURED:xxx] → Claude / GPT

"tanaka@example.com" ← fw.restoreAll() ← "件名: [SECURED:xxx] 宛に送信しました"

インジェクション攻撃もまとめてブロック

javascript
async function secureChatWithGuard(userMessage) {
  // インジェクション攻撃を検知(1行追加するだけ)
  const threats = fw.detectInjection(userMessage);
  if (threats.some(t => t.level === "critical")) {
    throw new Error("Security: Prompt injection detected");
  }

  // 通常通りマスク → AI → 復元
  const { masked } = fw.mask(userMessage);
  const aiResponse = await callYourAI(masked);
  return fw.restoreAll(aiResponse);
}

動作確認(ターミナルで即確認)

bash
node -e "
const { createFirewall } = require('@pii-firewall/sdk');
const fw = createFirewall();

const { masked, detections } = fw.mask('連絡先: sato@example.com / 080-9876-5432');
console.log('マスク後:', masked);
console.log('検知数:', detections.length, '件');

const restored = fw.restoreAll(masked);
console.log('復元後:', restored);
"

期待される出力:

マスク後: 連絡先: [SECURED:type=email,id=xxxx] / [SECURED:type=phone,id=yyyy]
検知数: 2 件
復元後: 連絡先: sato@example.com / 080-9876-5432

オプション設定

javascript
const fw = createFirewall({
  extraTypes: ["name"],   // 氏名の検出を追加(デフォルト: OFF)
  dpMode:     false,      // 差分プライバシー(数値ノイズ): Businessプラン
  engine:     "XOR",      // "XOR"(無料)/ "SHAMIR"(Starterプラン以上)
});
オプションデフォルト説明プラン
extraTypes[]追加検出タイプ。"name" で氏名も検出Free+
dpModefalse数値データにラプラスノイズを付加(統計的匿名化)Business
engine"XOR""SHAMIR" にするとShamir秘密分散(より高セキュリティ)Starter+

次のステップ

Privacy by Design.