flawopen.com/ディレクトリ/リファレンス
開発者向けセキュリティリファレンス
フレームワーク、ORM、認証、serverless アプリケーション、AI エージェント実行のセキュリティ前提を確認するための資料です。各ガイドでは、技術的な仕組みと対策を結び付けて解説します。
- Claude Code MemoryTrap:AIメモリ汚染 — flawopen.com
CiscoのMemoryTrap開示:Claude Codeの永続メモリ、v2.1.50の修正、エージェントの防御策。
- AIエージェントの分離:コンテナとマイクロVM
AIエージェント向けのコンテナ、gVisor、マイクロVMの分離境界を比較します。
- AIエージェントのツール権限管理
専用ツール、ユーザー単位の認可、最小権限でAIエージェントの過剰な自律性を抑えます。
- AI PR botのSSRF対策 — flawopen.com
信頼できないPull Requestの文章がAIツールに与える影響と、botの権限やネットワークを制限する方法を解説します。
- Android addJavascriptInterface のセキュリティリスク
WebView ブリッジが全 frame にネイティブメソッドを公開する仕組み、XSS がアプリ機能に及ぶ条件、未信頼ページの分離方法を解説します。
- Angular の XSS 対策:安全な既定動作とバイパス API
Angular は補間をエスケープし、HTML と URL のバインディングをサニタイズします。bypassSecurityTrust* が保護を無効にする箇所と監査方法を解説します。
- MIME sniffing XSS:Content-Type と nosniff
MIME sniffing がアップロードをブラウザー文書として扱わせる仕組み、nosniff の役割、安全なファイル配信を解説します。
- strncpy() は strcpy() より安全ですか?
C の strncpy() は strcpy() の一つのリスクを減らしますが、ヌル終端を保証しません。snprintf と strlcpy の戻り値確認を解説します。
- CSP と出力エスケープ:両方必要ですか?
コンテキストに応じた出力エンコードが XSS を防ぎ、CSP は漏れた場合の影響を一部抑えます。二つの対策を組み合わせる方法を解説します。
- GET に CSRF トークンは必要?
安全な GET は状態を変更しません。どの非安全メソッドに CSRF トークンが必要か、旧式の状態変更 GET をどう直すかを解説します。
- CWE と CVE:何が違うのか
CWE と CVE:何が違うのか:CWE はカテゴリ、つまりバグの種類(例:「SQL インジェクション」CWE-89)です。CVE は具体例、つまり記録された一件の発生
- ReactのdangerouslySetInnerHTMLは安全?
ReactはJSXテキストをエスケープしますが、dangerouslySetInnerHTMLはHTMLとして解析します。XSSの確認と安全なリッチテキスト表示を解説。
- Dependency Confusion:リスクと対策
パッケージ取得元の曖昧さが意図しない依存関係を招く仕組みと、レジストリ方針やロックファイルでの対策を解説します。
- Django ORMとSQL Injection:安全な書き方
Django QuerySetは値をパラメーター化します。raw SQL、動的な式、クエリー構造の注意点と監査方法を解説します。
- Docker ソケット公開のリスクと対策
Docker デーモンのソケットを公開すると、デーモンと同等の権限を与える可能性があります。制約、capability のリスク、安全な設定を解説します。
- Doctrine ORMのSQLインジェクション対策
DQLとSQLの値はパラメーターで渡します。QueryBuilderの式に残る危険と、安全な動的ソートの方法を解説します。
- DOMPurifyだけでinnerHTMLは安全?
DOMPurifyは正しい挿入先でリッチHTMLを保護します。コンテキストの制限、後処理のリスク、Trusted Types、運用時の確認事項を解説。
- .NET BinaryFormatter:リスクと移行
Microsoft は BinaryFormatter を安全にできないと明言しています。デシリアライズのリスク、.NET 9 の動作、移行方法を解説。
- .NET XmlReader は XXE に安全ですか?
XmlReader は既定で DTD を禁止します。.NET Framework 4.5.2 の変更、旧 API との違い、安全な XML 解析方法を解説します。
- EF Core FromSqlRaw:安全なSQLパラメーター化
FromSqlRawでは個別のパラメーターを使います。FromSqlInterpolated、EF Coreのバージョン差、安全な動的SQLを解説。
- Node.js exec() と execFile():違いと安全な使い方
Node.jsのexec()とexecFile()を比較。shell、引数、コマンドインジェクションとAPIの選び方を解説。
- FastAPIのSQLインジェクション:Pydanticが防ぐこと・防げないこと
FastAPIはリクエストデータを検証しますが、SQLの安全性はクエリの組み立て方で決まります。SQLAlchemyのパラメータバインドと動的識別子の安全な扱い方を解説します。
- Node.js fetch()のSSRF対策と安全なURL取得
サーバー側fetch()は利用者指定の宛先へ接続できます。固定宛先、リダイレクト、DNS、送信制御を解説。
- FreeMarker/Velocity SSTI:テンプレートを安全に使う
テンプレートの出所を管理し、公開するJavaオブジェクトを制限し、レンダリングを分離してSSTIリスクを下げます。
- GitHub Actionsのスクリプトインジェクション対策
GitHubコンテキスト値をrunへ埋め込むとshellコードになり得ます。env、権限、pull_request_targetのリスクを解説。
- GORM Raw SQL:GoでSQLインジェクションを防ぐ
GORM Rawではバインド引数を使います。値の安全なバインド、SQL識別子の許可リスト、クエリの確認方法を解説。
- 引用符のエスケープだけでSQL Injectionを防げる?
いいえ。パラメータ化クエリはデータをSQLから分離します。エスケープはDB依存で壊れやすいため、識別子には許可リストを使います。
- ORM を使えば SQL インジェクションを防げるか
ORM を使えば SQL インジェクションを防げるか:標準のクエリ API については、はい。主要な ORM はどれも生 SQL の抜け穴も備えており、それらは
- Java XXE:DocumentBuilderFactory は既定で安全?
JDKのパーサーは一部の攻撃を制限しますが、外部アクセスは既定で無効ではありません。安全な設定とProviderの違いを解説。
- Java ObjectInputStreamの安全性とデシリアライズ対策
信頼できないJavaデータはreadObject()中にクラスの挙動を呼び出すことがあります。フィルターと安全な形式を解説します。
- Java Runtime.exec()とCommand Injection:何が違う?
Runtime.exec(String)はshellを起動しませんが、入力で引数は変わり得ます。ProcessBuilderを使い、各値を検証します。
- Node.js ReDoS:正規表現とCVE-2026-83606
正規表現のバックトラッキングによるNode.js停止、CVE-2026-83606と対策を解説。
- Jinja2 の render_template_string() は安全か
アプリが管理するテンプレート文字列を使い、ユーザーデータはコンテキストで渡します。SSTI、autoescape、CVE-2024-56201 の条件を解説します。
- JSON.parse() はプロトタイプ汚染を起こす?
JSON.parse()自体はプロトタイプを汚染しません。後続の危険なマージやパス書き込みがリスクになります。実際の書き込み先を追跡し、信頼できないキーを安全に扱う方法を解説します。
- JSON.parse()はeval()より安全ですか?
JSON.parse()が入力をデータとして扱う理由、eval()が実行する仕組み、reviverコールバックの役割を解説。
- localStorage の JWT と HttpOnly クッキー:どちらが安全か — flawopen.com
localStorage の JWT と HttpOnly SameSite クッキーのアーキテクチャ比較:XSS によるトークン窃取、CSRF のトレードオフ、推奨される認証アーキテクチャ。
- Knex.jsはSQL Injectionを防げますか?
Knexは値をバインドします。knex.raw()のbindingsと動的SQL識別子の許可リストを解説。
- lodash.merge()はプロトタイプ汚染に安全ですか?
Lodashの修正範囲は関数とバージョンで異なります。影響範囲、修正版、安全なデータ処理を確認します。
- Markdown のレンダリングは XSS に安全?
Markdown だけでは HTML の安全性は保証されません。生 HTML が通過する条件と安全なサニタイズ方法を解説します。
- Mass Assignment:リスクと安全なフィールド許可リスト
Mass Assignmentは、利用者が制御すべきでないフィールドをリクエストから変更可能にします。許可リストと認可の要点。
- MCP セキュリティ:ツールの権限境界 | FlawOpen
MCP の信頼境界を理解し、ローカルツール、権限、ユーザー同意を制限してデータ露出を防ぐ方法を解説します。
- MyBatisの${}と#{}:SQL Injectionを防ぐ
MyBatisでは#{}がJDBCで値を束縛し、${}はSQLテキストを直接挿入します。安全なバインドと動的識別子の許可リストを解説。
- MySQLiとPDO:安全なPrepared Statement
MySQLiとPDOはどちらもPrepared StatementでSQL Injectionを防止できます。値のバインド、ドライバー、クエリの違いを比較。
- Newtonsoft.Json TypeNameHandling:安全な設定方法
Json.NET は $type から CLR 名を読み取ります。信頼できない JSON では None にし、それ以外では厳格な binder で型を検証します。
- Next.js Server Actions CSRF:Origin と安全な設定
Next.js の Origin 検証、プロキシと allowedOrigins の信頼リスク、各アクションの認可方法を解説します。
- Serverless の状態漏えい:ユーザーデータをリクエストごとに分離
再利用される serverless runtime が古いユーザーデータを露出する条件と、ID・状態をリクエスト単位で分離する方法を説明します。
- NHibernate は SQL Injection を防げますか?
NHibernate の HQL パラメーターは値と構文を分離します。文字列補間や動的識別子に残るリスクを解説します。
- Node.js child_process.exec()のコマンドインジェクションリスク
Node.jsのexec()はshellを起動します。信頼できない入力でコマンドインジェクションが起きる条件と、execFile()による対策を解説します。
- パラメータ化クエリとは何か
パラメータ化クエリとは何か:パラメータ化クエリは、手紙を丸ごと手書きするのではなく、ラベル付きの空欄がある用紙に記入するようなものです。データベースはま
- Prisma $queryRaw は SQL Injection に安全?
Prisma は tagged template の値をパラメーター化します。raw クエリが安全な条件と、SQL 識別子に allowlist が必要な理由を解説します。
- Railsのwhere()文字列補間は安全?
where()にリクエスト値を補間するとSQL Injectionにつながる可能性があります。ハッシュ条件かバインド値を使います。
- AIエージェントのツールと分離の安全対策
ユーザー単位の認可、高影響操作の承認、隔離実行でAIエージェントを保護。サンドボックスとネットワークの限界を解説。
- Sequelize query() は SQL Injection に安全?
Sequelize の raw クエリでは値を別に渡します。replacements、bind、SQL 識別子の違いを解説します。
- SQLAlchemy text() は SQL Injection に安全?
SQLAlchemy text() は生の SQL を受け取ります。execute() で値をバインドし、補間や動的識別子のリスクを確認しましょう。
- SSRFとクラウドメタデータ:認証情報のリスクと防御
SSRFがクラウドメタデータへ到達する仕組み、認証情報が露出する条件、プロバイダーの制御・最小権限・送信制限によるリスク低減を解説します。
- SvelteはデフォルトでXSSを防げる?
Svelteは通常のテキスト式をエスケープします。{@html}に信頼済みまたはサニタイズ済みHTMLが必要な理由と使用箇所の調べ方を解説します。
- TypeORM QueryBuilder は SQL Injection に安全?
TypeORM は QueryBuilder のパラメーターをバインドします。補間条件、raw SQL、動的識別子を確認すべき理由を解説します。
- Vue v-htmlのXSSリスクと安全な使い方
Vueは{{ }}のテキストを標準でエスケープしますが、v-htmlは生HTMLを描画します。XSSの境界、リッチテキスト対策、.vue監査方法を解説。
- Cosign GHSA-fx35-mq7g-6g98:Bundle 検証回避
Cosign の旧形式 Bundle が ID 検証を回避した仕組み、修正版、CI での Blob 検証対策を説明します。
- MongoDB NoSQL Injection:安全なクエリフィルター
未検証の JSON オブジェクトが MongoDB のフィルターをどう変えるか、型の検証と修正テストの方法を解説。
- 数値 ID でも文字列連結で SQL Injection が起きますか?
数値 ID でも文字列整形でクエリに埋め込むと危険です。理由を理解し、パラメーター化クエリを使いましょう。
- Object.assign() と Prototype Pollution:何が安全?
Object.assign() は __proto__ によってコピー先のプロトタイプを変更することがあります。spread との違いと深いマージの防御方法を解説。
- Node.js path.join() では Path Traversal を防げない
path.join() はパスを正規化しますが .. は通過します。解決後の包含関係を検証し、シンボリックリンクも別途考慮します。
- PHP include() とユーザー制御パス
include() によるファイル漏えいやコード実行の条件と、固定許可リストによる対策を解説します。
- PHP == と Magic Hash の比較
PHP 8 でも2つの数値文字列は数値として比較されるため、0e ハッシュは一致する場合があります。型を検証し、秘密値には hash_equals() を使います。
- PHP unserialize() と信頼できない入力
PHP は allowed_classes を指定しても、信頼できないデータに unserialize() を使わないよう警告しています。JSON を使い、信頼できるシリアライズデータは解析前に認証します。
- Python os.path.join() のパストラバーサル対策
os.path.join() の絶対パスと .. の扱いを解説。パスを解決し、commonpath() で範囲を検証します。
- Python pickle.load():信頼できないデータのリスク
Python pickle は読み込み時にコードを実行する可能性があります。CWE-502 と JSON による対策を解説します。
- Python XML の XXE 対策:ElementTree、Expat、lxml
ElementTree は XXE を防げる?Expat のバージョンリスク、lxml の設定、信頼できない XML の安全な扱いを解説。
- ReDoS(壊滅的バックトラッキング)とは?
曖昧な正規表現がサービス拒否を起こす仕組みと、処理量を安全に制限する方法を解説します。
- Ruby YAML.load は安全?Psych のバージョンと safe_load
Psych のバージョンを確認し、safe_load を使い、信頼できない YAML や Marshal を安全でない API で読み込まないでください。
- Rust の unsafe ブロックはメモリ安全なのか?
Rust の unsafe コードがメモリ不変条件を破る仕組み、Iterator::size_hint が安全性の保証にならない理由、境界外書き込みを防ぐ方法を解説します。
- SameSite=Strict は CSRF トークンの代わりになりますか?
SameSite=Strict と Lax の保護範囲、サブドメイン間の制限、CSRF トークンを併用すべき条件を解説します。
- sqlx のコンパイル時クエリ検査は SQL インジェクションを防ぎますか?
query! の検査内容、バインドパラメーターによる SQL インジェクション対策、query().bind() が安全な条件を解説します。
- サーバーサイドテンプレートインジェクションとは?
SSTI の仕組み、影響がエンジンに依存する理由、信頼できないデータをテンプレートコードから分離する方法。
- ストアドプロシージャは SQL インジェクションを防ぎますか?
ストアドプロシージャが安全なのはパラメーターをバインドする場合です。動的 SQL と識別子の扱いを解説します。
- SVG アップロードは XSS のリスクになりますか?
SVG のスクリプトが実行される条件と、アップロードファイルの無害化・ラスタライズ・分離方法を解説します。
- WKWebView loadHTMLString は未信頼コンテンツに安全?
WKWebView はスクリプトも含む HTML を描画します。コンテンツのサニタイズとネイティブ連携の保護方法を解説。
- 反射型・格納型・DOM ベース XSS の違いは?
反射型、格納型、DOM ベース XSS の経路を比較し、出力時点での修正方法を解説します。
- Zip Slip 脆弱性とは?
ZIP 内の細工されたファイル名が展開先ディレクトリから脱出する仕組みと、各パスを安全に検証する方法を解説します。