Hello there, ('ω')ノ
1. 概要を“商品キャッチコピー”に仕立てる
悪い例 「XSS がありました」
良い例 「顧客向けお知らせページの未エンコード出力により、 ログイン不要で任意 JavaScript 実行 → セッションクッキー窃取可(Stored XSS)」
ポイント
- 機能名 + 技術名 + 影響 を 1 文に
- 技術者でなくても「ヤバさ」が伝わる単語を選ぶ
- “結果” だけでなく “経路” を 10〜15 秒で理解させる
2. 再現手順は “料理レシピ” と同じ
悪い手順 | 改善手順 |
---|---|
「パラメータを書き換えて送信します」 | 1. https://shop.example.com/product/1 を開く 2. URL の末尾を /admin に変更してEnter |
「postman でリクエストを送ります」 | curl -X GET 'https://api.example.com/v1/users' \ -H 'Authorization: Bearer <user_jwt>' |
コツ
- 行頭に手順番号(1, 2, 3…)
- URL/パラメータはそのままコピペで再現できる形
- UI 操作は “タブ名→ボタン名” を明示
- 期待レスポンスをインラインで添える
=> HTTP/1.1 200 OK (本来は 403 Forbidden)
3. 影響度を「数字」で語る
曖昧な表現 | 数値化例 |
---|---|
「大量の個人情報が漏えい」 | 最大 25 万件 の氏名・住所が取得可能 |
「サービス利用不能の恐れ」 | 同一リクエストを 5 秒間で 1,000 回 送ると CPU 使用率 100% に達し、フロントエンドが 3 分間ダウン |
「売上に影響する」 | 割引ロジックを悪用すると 1 取引あたり平均 3,000 円損失 |
ステップ
- 対象ユーザ数 や 在庫数 をフロントや API から取得
- 単価 × 件数 = 金額換算
- 類似インシデント(ニュース)を引用し、比較 して説得力増強
4. 修正案は“なぜ・どこ・どうやって”の3段構え
なぜ(Why) バリデーション欠如で XSS 可
どこ(Where)
/src/components/Notice.vue
のv-html="message"
どうやって(How)
- 入力を
DOMPurify.sanitize()
でサニタイズ- テンプレ内では
{{ message }}
を使用し自動エスケープ
メリット
- 開発者が コード検索 → 修正 を最短で行える
- “余計なお世話” に見えず 共同作業 の印象を与える
- 評価者が「実装コスト < 被害額」と判断しやすい
5. 証拠スクリーンショットを“1 枚 1 メッセージ”に
- ① 前提画面:ログイン状態 or 初期フォーム
- ② 操作:パラメータ投入・リクエスト送信
- ③ 結果:アラート・JSON・Shell 出力など
- ④ 影響:ユーザ一覧 CSV、RCE の
id
結果など
各ショットに 赤枠 or 番号 を入れて図中説明を省略 → レビュー担当が 「読むより見る」 だけで理解
6. ありがちなNG表現と改善例
NG | 改善 |
---|---|
「重大な問題です」 | CWE-284: Improper Access Control に該当し、ユーザ全データを取得可能です |
「たぶん危険です」 | 未認可アクセスで PII が漏えい し、GDPR 罰金対象となる恐れがあります |
「修正方法は分かりません」 | 入力値エスケープ または Prepared Statement で防止可能です |
フワッとした言葉を 標準用語+根拠 に置き換えるだけで印象が激変。
7. “魅せるレポート”最終チェックリスト
- [ ] タイトルは 技術名+影響範囲 を含むか
- [ ] 概要は 140 字以内 で完結か
- [ ] 手順は コピペ ⇒ 即再現 できるか
- [ ] 影響度を 数字 と 比較 で示しているか
- [ ] 修正案は Why / Where / How がセットか
- [ ] スクショには 赤枠&番号 があるか
まとめ:内容を磨けば “秒で理解 → 即評価”
- 短く具体的 に書くため、数字と標準用語を活用
- 修正案まで含め 「行動を促す」 レポートを目指す
- NG 表現を避け、プロフェッショナルな文体 を心掛ける
「読み手の脳内シミュレーションを代行する」 これこそが “説得力あるレポート” の核心です。
Best regards, (^^ゞ