チェックリスト
作成日時:2025-05-09
更新日時:2025-05-16
システム開発における個人的なチェックリスト。
要件定義
- ヒアリングシートの作成と運用
セキュリティ
- CORS
- SOPはアドレス直打ちには効かない
- パスワード
- ソルト
- 試行回数
- ロック
- 有効期間
- ポリシー
- BCrypt
- 2FA
- CIA
- 認証
- JWT有効期限。トークン盗まれても被害は最小
- 認可(RBAC, ABAC)
- リソース
- 認証
- HSTS
- CSP
- CSRF
- リファラチェック
- サニタイジング
- セッション
- DB?スティッキー?
- ログ
- 個人情報が出力されない事
- レスポンスヘッダー
- サーバーバージョンなどを隠蔽する
SEO/パフォーマンス
- JSON-LD
- sitemap.xml
- robots.txt
- クローラーにAPIが叩かれないように
- 叩かれても問題ないように
- LLMs.txt
- metaタグ
- ogp
- PageSpeed Insights
- a11y
- モバイルフレンドリー対応(レスポンシブとか)
- HTTPS
- 画像最適化
- ウェブ解析ツールの導入(GTM)
ファイルアップロード
- サイズ(WAF/FW)
- 頻度
- 文字コード
- BOM
- 改行コード
- エスケープ
- 囲み文字
- ウイルス
- exif
- Zip爆弾
- タイムアウト
DB/SQL
- 最少・最少・最短・最速の原則
- IN句が空になる可能性
- UPSERT時にON CONFLICTで更新する値
- 実際にUPDATEされる内容がexcludeに入る
- データ量
- 適切なインデックス
- 量が多いならLIMITかけたり
- 実行計画
- VACUUM/ANALYZE
- 大量データ投入後とか
- 統計情報の凍結
- 事前に大量データDEL-INS
- ANALYZEが行われないと最悪の実行計画になるならば、安定したSQLを書いた方がいい
- VACUUM/ANALYZE
- ロック
- 分離レベル
- タイムアウト
- statement_timeout
- deadlock_timeout
- アラートも発光しとく
- ロールバックされることの確認
- SpringのrollbackForとか
- インジェクション対策
- 処理の分割
- プリペアドステートメントには上限がある
- シーケンス
- 抜け番の許容
運用
- ファイル、ログを消す間隔の同意
- 運用、保守範囲の同意
- アラート発生時のフロー
- x-forwarded-for
クラウド
- CloudWatchなどで停止できないか
- LBでsorryページ出したり
- ECS on Fargate + Terraformとか
- ログ抑制
- キャッシュの採用
- DBチューニング
- コネクションプール
- JVMのメモリ設定
- WAF/VPCルール
- EBS:ディスクアラート
- S3:マルチパートアップロード
アプリ
- 共通化
- 開始/終了のロギング
- 例外ハンドラー
- バリデーション
- 値オブジェクト
- Enum
- 型で制限する
- レスポンス圧縮
- ネットワークコストの節約
- サイズを小さくすれば転送コストも下げられる(レスポンスが速くなる)
- 圧縮自体もコストが掛かる。一定サイズを超えたら圧縮するように設定する。
- input
- type=“email”において、絵文字を設定すると挙動が変になる
コンテナー
- マルチステージビルド
- springは基本的にjarで動かす
- tomcatやapacheを使って何かをしたいならばいれてもいい
- コンテナーは基本的に最小構成であるべきらしい
負荷テスト
- jMeterのGUIを使うな
未編集
- ブラウザのアドレスバー直打ち
- IDが推測容易
- 閲覧権限チェックが無い
- リファラ/オリジンチェック
- フレームワークかWAF
- 冪等性と妥当性
- ログイン
- 試行回数
- ロック
- パスワードスプレー
- リストアタック
- WAFで弾けば?
- クエリストリングに個人情報を載せるな
- HTTPS使ってればまあ
- でもログには残りうる
- ダウングレード攻撃もある
- HSTSの設定
- POSTを使う
- ログ
- 追跡可能か
- 無駄に取得していないか
- 削除バッチは?
- CloudWatchとか
- 節約したいなら定期的にS3に送ったりとか
- AP
- 何台構成
- セッションはどこに
- ファイル
- DB
- Redis
- スティッキーセッション
- S3
- ウィルスチェックは
- AWS側で機能追加されたみたいだが、アップロード時にやったほうがいいでしょ
- ウィルスチェックは
- SEO
- sitemap.xmlがない
- metaタグが無い
- GTMは誰が運用する
- robots.txt
- llms.txt
- クロールされてはならないものはないか
- クローラーにデータ削除されたり
- クレジットカード
- 3Dセキュア
- 画像サイズ
- 小さく
- 最適化する
- PCとSPでサイズを分ける
- キャッシュ
- LightHouse
- アクセシビリティ
- Cookie
- secure
- expire
- sameorigin
- httponly
- CSP
- 並列化できる非同期処理は並列化する
- WAF-Mod Security
- メールフォーム
- CAPTCHA
- WAF
- サニタイズ/エスケープ
- 回数制限
- タイムベース検証
- hidden-input
- IP制限
- 低速回線