URL長 度: <= 2048文字 ※GETはデータをURLに載せるため、URL長制限=GETのデータ量制限 Email長度: 全体 <= 254文字 ; a < 64 @ domain < 253;
function isValidEmailLength(string $email): bool {
// 全体の長さチェック
if (strlen($email) > 254) {
return false;
}
// @で分割
$parts = explode('@', $email);
if (count($parts) !== 2) {
return false; // @がない、または複数ある場合
}
$localPart = $parts[0];
$domainPart = $parts[1];
// ローカル部の長さチェック
if (strlen($localPart) > 64) {
return false;
}
// ドメイン部の長さチェック(RFCでは255までOKだが全体で254以内)
if (strlen($domainPart) > 255) {
return false;
}
return true;
}
// 使用例
$email = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@example.com";
var_dump(isValidEmailLength($email)); // true or falsePOST:Server設定次第(client_max_body_size等)、実務上 数MB~数百MB。
1. **Broken Access Control(アクセス制御の不備)**
問題**:権限チェックが不十分で、他人のデータや機能にアクセスできる。
対策**:RBAC(ロールベースアクセス制御)、サーバ側で厳格な権限検証。
2. **Cryptographic Failures(暗号化の不備)**
問題**:パスワードや機密情報が平文で保存される。
対策**:TLS必須、強力な暗号化アルゴリズム、キー管理。
3. **Injection(インジェクション攻撃)**
問題**:SQL、OSコマンド、LDAPなどへの不正入力。
対策**:プリペアドステートメント、入力値のバリデーション。
4. **Insecure Design(安全でない設計)**
問題**:設計段階でセキュリティを考慮していない。
対策**:セキュリティ設計レビュー、脅威モデリング。
5. **Security Misconfiguration(設定ミス)**
問題**:デフォルト設定や不要なサービスが有効。
対策**:不要な機能を無効化、セキュリティ設定の自動化。
6. **Vulnerable and Outdated Components(脆弱なコンポーネント)**
問題**:古いライブラリやフレームワークを使用。
対策**:定期的なアップデート、脆弱性スキャン。
7. **Identification and Authentication Failures(認証の不備)**
問題**:弱いパスワード、セッション管理の不備。
対策**:MFA導入、セッションタイムアウト、Secure Cookie。
8. **Software and Data Integrity Failures(ソフトウェア・データの整合性不備)**
問題**:署名なしのコードや更新ファイルを使用。
対策**:コード署名、ハッシュ検証。
9. **Security Logging and Monitoring Failures(ログ・監視の不備)**
問題**:攻撃検知ができない、ログが不十分。
対策**:詳細なログ記録、アラート設定、SIEM導入。
10. **Server-Side Request Forgery(SSRF)**
問題**:攻撃者がサーバを使って内部ネットワークにアクセス。
対策**:URL検証、外部リクエスト制限。
CSRFトークンの利用** SameSite Cookie属性設定** Referer/Originヘッダ検証**
入力値のエスケープ(HTML, JS, CSS)** Content Security Policy (CSP) の設定** JavaScriptで`innerHTML`の直接利用を避ける**
プリペアドステートメント(Prepared Statement)使用** 入力値のバリデーションとエスケープ**
セッションタイムアウト設定** Secure / HttpOnly Cookie属性** セッションIDの再生成(ログイン時)**
多要素認証(MFA)** OAuth 2.0 / OIDCの利用** 権限チェックの徹底(RBACなど)**
拡張子・MIMEタイプの検証** ウイルススキャン** アップロード先をWebルート外にする**
TLS証明書の導入** HSTS(HTTP Strict Transport Security)設定**