Repository navigation
OTR_VulnerabilityCountermeasurePoints
nishi_74322014 edited this page Oct 27, 2026
·
1 revision
主な脆弱性に対して、Open 棟梁のどの機能を使って対策するかの対応表。
脆弱性対策そのものの考え方は、脆弱性対策のポイント(マイクロソフト系技術情報 Wiki)を参照。
| 脆弱性 | 一般的な対策 | Open 棟梁で使う機能 |
|---|---|---|
| SQL インジェクション | SQLインジェクション対策 | 静的パラメタライズド・クエリ、動的パラメタライズド・クエリ、バッチクエリ作成支援機能 |
| XSS | XSS対策 | Web Forms:バリデーション機能付きカスタム・コントロールのサニタイジング。MVC:Razor の自動エンコード |
| CSRF(XSRF) | CSRF(XSRF)対策の実装方針 | Web Forms:不正操作防止機能(POST)、画面遷移制御機能の GET 防止。MVC:ASP.NET の Anti-Forgery トークン |
- 値はすべてパラメタ(
SetParameter)で渡す。静的(.sql)も動的(.xml)も同じ。 -
ユーザ・パラメタ(
SetUserParameter、静的の%名前%、動的の<VAL>)は文字列置換なので、ユーザ入力を渡さない。
列名やソート順は、コード側の許可リストから選んだ値を渡す。 - バッチクエリ作成支援機能は、パラメタ数の上限を避けるため値を SQL 内に組み込む。
その代わり、文字列パラメタのエスケープ処理を実装している。
- Web Forms では、バリデーション機能付きカスタム・コントロールのテンプレートをカスタマイズして、サニタイジング処理を追加できる。
- MVC(ASP.NET Core MVC を含む)では、Razor の
@出力が既定で HTML エンコードされる。Html.Rawの使用箇所を限定する。
-
不正操作防止機能・画面遷移制御機能は Web Forms 専用である(MVC の親クラスには無い)。
- POST:不正操作防止機能(Request Ticket)。
- GET:画面遷移制御機能の、画面遷移チェックにある GET 防止。
- MVC では、ASP.NET 標準の Anti-Forgery トークン(
[ValidateAntiForgeryToken]など)を使う。
- ファイルのアップロード・ファイルのダウンロードのセキュリティ(パストラバーサル、サイズ制限、認可)。
- 依存パッケージの脆弱性:OpenTouryo のリポジトリでは
CheckVulnerability.ps1で確認し、Dependabot・CodeQL も有効にしている。 - Open 棟梁自身の脆弱性は、公開の Issue ではなく Private vulnerability reporting で報告する。
- SQL はスキル
opentouryo-query-definition/ Dao 系スキル、不正操作防止はopentouryo-app-design(references/illegal-operation-prevention.md)を使わせる。 - エージェントのレビューでは、
SetUserParameter/Html.Raw/ ファイル・パスの組み立てを重点的に見る。
Tags: 再構築
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。