PHPのスキャンルール
Contrast Scanでは、PHPに対して以下のルールをサポートしています。
深刻度 | Contrastルール | エンジンルールID | 説明 |
---|---|---|---|
重大 | Insecure Php Configuration | OPT.PHP.InsecurePhpConfiguration | InsecurePhpConfiguration:php.ini/.htaccess記述における安全でない設定の回避 |
重大 | Too Broad CORS Policy | OPT.PHP.TooBroadCORSPolicy | TooBroadCORSPolicy:CORSポリシー(クロスオリジンリソース共有)での広すぎる許可範囲 |
重大 | Code Injection | OPT.PHP.CodeInjection | CodeInjection:動的に評価されるコード内におけるディレクティブの不適切な無害化(EVALインジェクション) |
重大 | Command Injection | OPT.PHP.CommandInjection | CommandInjection:OSコマンドで使用する特殊要素の不適切な無害化(OSコマンドインジェクション) |
重大 | Connection String Parameter Pollution | OPT.PHP.ConnectionStringParameterPollution | ConnectionStringParameterPollution::信頼できない入力で汚染された接続文字列 |
重大 | Cross Site Scripting | OPT.PHP.CrossSiteScripting | CrossSiteScripting:Webページ生成中の入力の不適切な無害化(クロスサイトスクリプティング) |
重大 | Csv Formula Injection | OPT.PHP.CsvFormulaInjection | CsvFormulaInjection:CSV Excelマクロインジェクション |
重大 | DoS Regexp | OPT.PHP.DoSRegexp | DoSRegexp:悪意のある正規表現によるDos攻撃の防止(正規表現インジェクション) |
重大 | External Variable Modification | OPT.PHP.ExternalVariableModification | ExternalVariableModification:PHP 外部変数の変更 |
重大 | Http Parameter Pollution | OPT.PHP.HttpParameterPollution | HttpParameterPollution:HTTPパラメータ汚染(HPP) |
重大 | Http Splitting | OPT.PHP.HttpSplitting | HttpSplitting:HTTPヘッダにおけるCRLFシーケンスの不適切な無害化(HTTPレスポンス分割攻撃) |
重大 | Ldap Injection | OPT.PHP.LdapInjection | LdapInjection:LDAP検索フィルタにおける無害化されていないユーザ制御入力の回避 |
重大 | Mail Header Manipulation | OPT.PHP.MailHeaderManipulation | MailHeaderManipulation:SMTPヘッダの改ざん |
重大 | Open Redirect | OPT.PHP.OpenRedirect | OpenRedirect:信頼できないサイトへのURLリダイレクト(オープンリダイレクト) |
重大 | Resource Injection | OPT.PHP.ResourceInjection | ResourceInjection:リソース識別子の不適切な制御 (リソースインジェクション) |
重大 | Mail Command Injection | OPT.PHP.SEC.MailCommandInjection | MailCommandInjection:メールコマンドインジェクション |
重大 | No SQL Injection | OPT.PHP.SEC.NoSQLInjection | NoSQLInjection:データクエリロジックにおける特殊要素の不適切な無害化(NoSQLインジェクション) |
重大 | Server Side Request Forgery | OPT.PHP.ServerSideRequestForgery | ServerSideRequestForgery:サーバサイドリクエストフォージェリ(SSRF) |
重大 | SQL Injection | OPT.PHP.SqlInjection | SqlInjection:SQLコマンドで使用する特殊要素の不適切な無害化(SQLインジェクション) |
重大 | Xml Entity Injection | OPT.PHP.XmlEntityInjection | XmlEntityInjection:XMLエンティティインジェクション |
重大 | Avoid Use Default Secret | OPT.PHP.AvoidUseDefaultSecret | AvoidUseDefaultSecret:Symfonyのシークレットのデフォルト値(ThisTokenIsNotSoSecretChangeIt)の使用禁止 |
重大 | Assign Null In Function Call | OPT.PHP.AssignNullInFunctionCall | AssignNullInFunctionCall:関数に戻り値がない場合での関数呼び出しの変数への代入 |
重大 | Avoid Exitor Die | OPT.PHP.AvoidExitorDie | AvoidExitorDie:エラー処理でのexit()やdie()の禁止 |
重大 | Avoid Global Variableswithin Functions | OPT.PHP.AvoidGlobalVariableswithinFunctions | AvoidGlobalVariableswithinFunctions:関数内のグローバル変数の回避 |
重大 | Avoid Loop With Empty Body | OPT.PHP.AvoidLoopWithEmptyBody | AvoidLoopWithEmptyBody:本体が空のループ(while、do/while、for)の回避 |
重大 | Avoid SQL Queries Within Loop | OPT.PHP.AvoidSQLQueriesWithinLoop | AvoidSQLQueriesWithinLoop:ループ内でのSQLクエリ実行の回避 |
重大 | Avoid This In Static Methods | OPT.PHP.AvoidThisInStaticMethods | AvoidThisInStaticMethods:静的メソッドにおける$thisの回避 |
重大 | Avoid Using Echo HTML | OPT.PHP.AvoidUsingEchoHTML | AvoidUsingEchoHTML:HTML構築におけるechoやprintの回避 |
重大 | Dangerous File Upload | OPT.PHP.DangerousFileUpload | DangerousFileUpload:制限のない危険なタイプのファイルのアップロード |
重大 | Do Not Use Error Suppression | OPT.PHP.DoNotUseErrorSuppression | DoNotUseErrorSuppression:@を使用するエラー制御の回避 |
重大 | Fingers Crossed Logger In Production | OPT.PHP.FingersCrossedLoggerInProduction | FingersCrossedLoggerInProduction:本番環境におけるログ(本番環境でのログ記録は多くのリソースを使用すべきではない) |
重大 | Function Arguments Uniqueness | OPT.PHP.FunctionArgumentsUniqueness | FunctionArgumentsUniqueness:関数宣言における重複する引数名の回避 |
重大 | Include File Injection | OPT.PHP.IncludeFileInjection | IncludeFileInjection:include/require文のファイル名の不適切な制御 |
重大 | Nested If Statements | OPT.PHP.NestedIfStatements | NestedIfStatements:高レベルのif文のネストの回避 |
重大 | Optional Parameters At End | OPT.PHP.OptionalParametersAtEnd | OptionalParametersAtEnd:オプション引数は最後に宣言(関数またはメソッド宣言のオプション引数は常に最後に宣言すること) |
重大 | Path Traversal | OPT.PHP.PathTraversal | PathTraversal:I/O操作で使用するパス名(ファイルまたはディレクトリ)の一部として、無害化されていないユーザ制御入力を使用しない |
重大 | Persistent Database Connections | OPT.PHP.PersistentDatabaseConnections | PersistentDatabaseConnections:持続的データベース接続の使用 |
重大 | POSIX Extended Regular Expressions | OPT.PHP.POSIXExtendedRegularExpressions | POSIXExtendedRegularExpressions:POSIX拡張正規表現関数の禁止 |
重大 | Return In Constructor | OPT.PHP.ReturnInConstructor | ReturnInConstructor:値を返すコンストラクタ |
重大 | Too Many Parameters In Call | OPT.PHP.TooManyParametersInCall | TooManyParametersInCall:宣言した以上のパラメータによる関数やメソッドの呼び出しの回避 |
重大 | Password In Redirect Rule | OPT.PHP.SEC.PasswordInRedirectRule | PasswordInRedirectRule:パスワード管理 - リダイレクト内のパスワード |
重大 | Sensitive Data Non Parameter | OPT.PHP.SensitiveDataNonParameter | SensitiveDataNonParameter:機密情報(データベース接続など)のパラメータファイルでの記述の必要性 |
高 | Cake PHP Configuration | OPT.PHP.CakePHPConfiguration | CakePHPConfiguration:CakePHPフレームワークの脆弱な設定 |
高 | Cookies Configuration | OPT.PHP.CookiesConfiguration | CookiesConfiguration:脆弱なCookieの設定 |
高 | Insufficient Session Expiration Rule | OPT.PHP.SEC.InsufficientSessionExpirationRule | InsufficientSessionExpirationRule:セッションの有効期限の間隔が制限を超えていないことの確認 |
高 | Session Cookie Configuration | OPT.PHP.SessionCookieConfiguration | SessionCookieConfiguration: 脆弱なセッションCookieの設定 |
高 | Zend Configuration | OPT.PHP.ZendConfiguration | ZendConfiguration:Zend frameworkのセッション管理の設定 |
高 | Avoid Eval | OPT.PHP.AvoidEval | AvoidEval:eval()の使用禁止 |
高 | Cross Site Request Forgery | OPT.PHP.CrossSiteRequestForgery | CrossSiteRequestForgery:クロスサイトリクエストフォージェリ(CSRF) |
高 | Enabled Twig Auto Escaping | OPT.PHP.EnabledTwigAutoEscaping | EnabledTwigAutoEscaping:Twig自動エスケープの有効化 |
高 | External Control Of Configuration Setting | OPT.PHP.SEC.ExternalControlOfConfigurationSetting | ExternalControlOfConfigurationSetting:システム設定または構成設定の外部制御 |
高 | JSON Injection | OPT.PHP.SEC.JSONInjection | JSONInjection:JSONエンティティにおける無害化されていないユーザ制御入力の使用の回避(JSONインジェクション) |
高 | Trust Boundary Violation Rule | OPT.PHP.SEC.TrustBoundaryViolationRule | TrustBoundaryViolationRule:信頼境界線違反 |
高 | Xslt Injection | OPT.PHP.SEC.XsltInjection | XsltInjection:XML インジェクション(別名、ブラインドXPathインジェクション) |
高 | Stored Cross Site Scripting | OPT.PHP.StoredCrossSiteScripting | StoredCrossSiteScripting:Webコンテンツ生成時に保存されるデータの不適切な無害化(クロスサイトスクリプティング、XSS) |
高 | XPath Injection | OPT.PHP.XPathInjection | XPathInjection:XPath式内のデータの不適切な無害化(XPathインジェクション) |
高 | Assign Objects In Instantiation | OPT.PHP.AssignObjectsInInstantiation | AssignObjectsInInstantiation:インスタンス化での変数へのオブジェクト代入 |
高 | Avoid Business Logic In Twig | OPT.PHP.AvoidBusinessLogicInTwig | AvoidBusinessLogicInTwig:Twig テンプレートでのロジック過多の回避 |
高 | Too Many Statements In Case | OPT.PHP.TooManyStatementsInCase | TooManyStatementsInCase:switch文の各ケースにおける過多なステートメントの回避 |
高 | Avoid Auto Reload In Twig | OPT.PHP.AvoidAutoReloadInTwig | AvoidAutoReloadInTwig:Twigのauto_reloadの無効化 |
高 | Avoid Create From Globals Request | OPT.PHP.AvoidCreateFromGlobalsRequest | AvoidCreateFromGlobalsRequest:Request::createFromGlobalsメソッド使用の回避 |
高 | Avoid High Number Of Files In Folder | OPT.PHP.AvoidHighNumberOfFilesInFolder | AvoidHighNumberOfFilesInFolder:ファイルが多いフォルダの処理の回避 |
高 | Avoid Logical Operators | OPT.PHP.AvoidLogicalOperators | AvoidLogicalOperators:論理演算子の使用の回避 |
高 | Avoid Ref With Multidim Array | OPT.PHP.AvoidRefWithMultidimArray | AvoidRefWithMultidimArray:複雑な多次元配列の置換(あるいはエイリアス)における参照演算子(&)の回避 |
高 | Avoid Sleep Function | OPT.PHP.AvoidSleepFunction | AvoidSleepFunction:スリープ関数の使用回避 |
高 | Avoid Strict Variables In Twig | OPT.PHP.AvoidStrictVariablesInTwig | AvoidStrictVariablesInTwig: Twigのstrict_variablesの無効化 |
高 | Avoid Action Method Too Long | OPT.PHP.AvoidActionMethodTooLong | AvoidActionMethodTooLong:メソッドコントローラの長すぎる「action」の回避 |
高 | Break Non Empty Switch Clauses | OPT.PHP.BreakNonEmptySwitchClauses | BreakNonEmptySwitchClauses:SwitchCaseの最後の文でのbreak文の使用 |
高 | Call Time Pass By Reference Forbidden | OPT.PHP.CallTimePassByReferenceForbidden | CallTimePassByReferenceForbidden:関数呼び出しにおけるcall-time pass-by-reference引数の使用禁止 |
高 | Catching Exception | OPT.PHP.CatchingException | CatchingException:例外をキャッチする基底クラスの回避 |
高 | Check Parameters Number In Function | OPT.PHP.CheckParametersNumberInFunction | CheckParametersNumberInFunction:関数内のパラメータの過多 |
高 | Class Includes | OPT.PHP.ClassIncludes | ClassIncludes:クラスファイルの読み込みでのinclude / require / require_once / include_onceの使用不可 |
高 | Delete Acme Demo Bundle | OPT.PHP.DeleteAcmeDemoBundle | DeleteAcmeDemoBundle:Symfony2にデフォルトで含まれているAcmeDemoBundleの削除 |
高 | Delete Unused Libraries | OPT.PHP.DeleteUnusedLibraries | DeleteUnusedLibraries:使用されていないライブラリへの参照の削除 |
高 | Default Arguments On The Right Side | OPT.PHP.DefaultArgumentsOnTheRightSide | DefaultArgumentsOnTheRightSide:デフォルトの引数は、デフォルトでない引数の右側にある必要がある |
高 | Default Clause Switch Statements | OPT.PHP.DefaultClauseSwitchStatements | DefaultClauseSwitchStatements:switch文の最後でのdefault句の使用 |
高 | Efficient Php Ini Configuration | OPT.PHP.EfficientPhpIniConfiguration | EfficientPhpIniConfiguration:効率化のために特定の設定プロパティを指定することが必要 |
高 | Establish New Path Cache | OPT.PHP.EstablishNewPathCache | EstablishNewPathCache:キャッシュの新しいパスの設定 |
高 | Fav Icon In Web Directory | OPT.PHP.FavIconInWebDirectory | FavIconInWebDirectory:Webアプリケーションでのfaviconの使用 |
高 | Few Action Methods In Controller | OPT.PHP.FewActionMethodsInController | FewActionMethodsInController:特定の概念でのコントローラの使用 |
高 | Get Action Should Not Modify Resources | OPT.PHP.GetActionShouldNotModifyResources | GetActionShouldNotModifyResources:情報の取得にはGETメソッドのみを使用 |
高 | Include Require Without Parentheses | OPT.PHP.IncludeRequireWithoutParentheses | IncludeRequireWithoutParentheses:includeとそのvariantでの括弧の使用回避 |
高 | Keywords Case | OPT.PHP.KeywordsCase | KeywordsCase:小文字でのPHPキーワードの記述 |
高 | Many Cases | OPT.PHP.ManyCases | ManyCases:switch文での過多な選択肢の回避 |
高 | Max Methods | OPT.PHP.MaxMethods | MaxMethods:メソッドの最大許容数 |
高 | Missing Authorization | OPT.PHP.MissingAuthorization | MissingAuthorization:リソースへのアクセスやアクションの実行に対する不十分な認証チェック |
高 | No Update Loop Vars In For Body | OPT.PHP.NoUpdateLoopVarsInForBody | NoUpdateLoopVarsInForBody:「for」ループ本体における制御変数の更新の禁止 |
高 | No Use Flush In Loop | OPT.PHP.NoUseFlushInLoop | NoUseFlushInLoop:ループ内でのflush()メソッドの呼び出し禁止 |
高 | No Use Data Base Functions Specific Provider | OPT.PHP.NoUseDataBaseFunctionsSpecificProvider | NoUseDataBaseFunctionsSpecificProvider:データベースプロバイダーの特定の関数の使用禁止 |
高 | No Use PHP Response Functions | OPT.PHP.NoUsePHPResponseFunctions | NoUsePHPResponseFunctions:PHPレスポンス関数の使用の回避 |
高 | No Use PHP Session Functions | OPT.PHP.NoUsePHPSessionFunctions | NoUsePHPSessionFunctions:PHPセッション関数の使用禁止 |
高 | No Use PHP Super Global | OPT.PHP.NoUsePHPSuperGlobal | NoUsePHPSuperGlobal:PHPのスーパーグローバル変数の代わりのリクエストオブジェクトの使用 |
高 | Numerically Indexed Arrays | OPT.PHP.NumericallyIndexedArrays | NumericallyIndexedArrays:インデックス配列の数字(負の数はインデックスとして許可されない) |
高 | Php Tags | OPT.PHP.PhpTags | PhpTags:PHPの開始タグに短縮型を使用しないこと |
高 | Public Method Only Actions | OPT.PHP.PublicMethodOnlyActions | PublicMethodOnlyActions:コントローラーでは「Action」メソッドのみを公開可 |
高 | Rethrowing Exceptions | OPT.PHP.RethrowingExceptions | RethrowingExceptions:例外の再スロー(スローされる例外の中に、元の例外をラップする必要あり) |
高 | Return Value Ignored | OPT.PHP.ReturnValueIgnored | ReturnValueIgnored:無視される関数呼び出しの戻り値 |
高 | Robots Txt In Web Directory | OPT.PHP.RobotsTxtInWebDirectory | RobotsTxtInWebDirectory:Webアプリケーションでのrobots.txtの使用 |
高 | Routes Should Reference Existing Actions | OPT.PHP.RoutesShouldReferenceExistingActions | RoutesShouldReferenceExistingActions:存在しないactionを参照するルートの回避 |
高 | Cookies In Security Decision | OPT.PHP.SEC.CookiesInSecurityDecision | CookiesInSecurityDecision:セキュリティ決定における検証と整合性チェックなしのCookieへの依存 |
高 | User Controlled SQL Primary Key | OPT.PHP.SEC.UserControlledSQLPrimaryKey | UserControlledSQLPrimaryKey:ユーザ制御の主キーのクエリ使用禁止 |
高 | Should Not Throw Access Denied Http Exception | OPT.PHP.ShouldNotThrowAccessDeniedHttpException | ShouldNotThrowAccessDeniedHttpException:AccessDeniedHttpExceptionのスローの回避 |
高 | Smart Substring Matching | OPT.PHP.SmartSubstringMatching | SmartSubstringMatching:効率的な部分文字列マッチング |
高 | Too Many Break Or Continue In Loop | OPT.PHP.TooManyBreakOrContinueInLoop | TooManyBreakOrContinueInLoop:各ループにおける複数のbreak文やcontinue文の回避 |
高 | Throwing Exception | OPT.PHP.ThrowingException | ThrowingException:例外の基底クラスのスローの回避 |
高 | Unused Function Parameter | OPT.PHP.UnusedFunctionParameter | UnusedFunctionParameter:未使用の関数パラメータの回避 |
高 | Unused Local Var | OPT.PHP.UnusedLocalVar | VLSU:未使用のローカル変数の回避 |
高 | Unused Private Field | OPT.PHP.UnusedPrivateField | UnusedPrivateField:未使用のprivateフィールドの回避 |
高 | Unused Private Method | OPT.PHP.UnusedPrivateMethod | UnusedPrivateMethod:未使用のprivateメソッドの回避 |
高 | Use Redirect After Posting Data | OPT.PHP.UseRedirectAfterPostingData | UseRedirectAfterPostingData:POST後のリダイレクトの使用の推奨 |
高 | Avoid Inject Request Service | OPT.PHP.AvoidInjectRequestService | AvoidInjectRequestService:サービスリクエストのインジェクションの回避 |
高 | Do Not Debug In Twig Templates | OPT.PHP.DoNotDebugInTwigTemplates | DoNotDebugInTwigTemplates:Twigテンプレートでのデバッグタグの回避 |
高 | Http To Send Data | OPT.PHP.HttpToSendData | HttpToSendData:HTTPSの代わりのHTTPの使用禁止 |
高 | Information Exposure Through Error Message | OPT.PHP.InformationExposureThroughErrorMessage | InformationExposureThroughErrorMessage:エラー メッセージによる機密情報の露出の回避 |
高 | Password Management | OPT.PHP.PasswordManagement | PasswordManagement:空またはハードコードされたパスワードの使用、またはコメントでのパスワードの保存 |
高 | Hardcoded Crypto Key | OPT.PHP.HardcodedCryptoKey | HardcodedCryptoKey:ハードコードされた暗号鍵の使用 |
高 | Hardcoded Salt | OPT.PHP.HardcodedSalt | HardcodedSalt:ハードコードされたソルトの使用 |
高 | Insecure Randomness | OPT.PHP.InsecureRandomness | InsecureRandomnes:安全でない標準的な擬似乱数生成器 |
高 | Missing Encryption Of Sensitive Data | OPT.PHP.MissingEncryptionOfSensitiveData | MissingEncryptionOfSensitiveData:機密データ送信前や保存前のの暗号化 |
高 | Insufficient Key Size Rule | OPT.PHP.SEC.InsufficientKeySizeRule | InsufficientKeySizeRule:脆弱な暗号方式・鍵長の検出 |
高 | Weak Cryptographic Hash | OPT.PHP.WeakCryptographicHash | WeakCryptographicHash:脆弱な暗号化ハッシュ |
高 | Weak Encryption Algorithm | OPT.PHP.WeakEncryptionAlgorithm | WeakEncryptionAlgorithm:脆弱な共通鍵暗号アルゴリズム |
情報 | Log Forging | OPT.PHP.LogForging | LogForging:ログの出力の不適切な無害化 |
情報 | Change Default Favicon | OPT.PHP.ChangeDefaultFavicon | ChangeDefaultFavicon:デフォルトのfavicon.icoアイコンの変更 |
情報 | Line Length | OPT.PHP.LineLength | LineLength:行の長さ(行は最大サイズを超えないようにする) |
情報 | Methods Name Convention | OPT.PHP.MethodsNameConvention | MethodsNameConvention:関数/メソッド名は命名規則の遵守が必要 |
情報 | Php Comments Rule | OPT.PHP.PhpCommentsRule | PhpCommentsRule:コードのコメントはコーディング規約に従うことが必要 |
情報 | Variable Substitution | OPT.PHP.VariableSubstitution | VariableSubstitution:変数の置換での${...}表現の回避 |
情報 | Avoid Using Request | OPT.PHP.AvoidUsingRequest | AvoidUsingRequest:$_REQUESTの使用禁止 |
低 | Do Not Use Default Session Cookies Name | OPT.PHP.DoNotUseDefaultSessionCookiesName | DoNotUseDefaultSessionCookiesName:デフォルトのセッションCookie名使用の回避 |
低 | Avoid Complex Methods | OPT.PHP.AvoidComplexMethods | AvoidComplexMethods:長すぎるメソッドの回避 |
低 | Avoid Functions In Loops | OPT.PHP.AvoidFunctionsInLoops | AvoidFunctionsInLoop:ループの評価や更新部分からの関数の呼び出しの回避 |
低 | Avoid Many Variables In Twig | OPT.PHP.AvoidManyVariablesInTwig | AvoidManyVariablesInTwig:Twigテンプレートに多すぎる変数を渡さない |
低 | Avoid Special Comment | OPT.PHP.AvoidSpecialComment | AvoidSpecialComment:コードの修正箇所を示すためのコメントの使用の回避 |
低 | Avoid Too Long Twig Templates | OPT.PHP.AvoidTooLongTwigTemplates | AvoidTooLongTwigTemplates:長すぎるTwigテンプレートの回避(長すぎるテンプレートはコードの理解と保守を難しくする) |
低 | Avoid Var Name Prefix Is | OPT.PHP.AvoidVarNamePrefixIs | AvoidVarNamePrefixIs:PHP変数名での接頭辞「is」の回避 |
低 | Class Format PSR-0 | OPT.PHP.ClassFormatPSR0 | ClassFormatPSR0:PHPクラスの名前と名前空間におけるPSR-0(オートローディング)標準の準拠 |
低 | Closing Php Tag | OPT.PHP.ClosingPhpTag | ClosingPhpTag:phpコードのみのファイルでの終了タグの省略 |
低 | Constants Name Convention | OPT.PHP.ConstantsNameConvention | ConstantsNameConvention:定数名は命名規則の遵守が必要 |
低 | Customize Error Pages | OPT.PHP.CustomizeErrorPages | CustomizeErrorPages:Symfonyのエラーページのカスタマイズ |
低 | Declarations Without Side Effects | OPT.PHP.DeclarationsWithoutSideEffects | DeclarationsWithoutSideEffects:グローバルシンボル(関数、クラス)を宣言するPHPファイルでの副作用の回避 |
低 | Dependency Injection Container | OPT.PHP.DependencyInjectionContainer | DependencyInjectionContainer:DIコンテナの利用(サービス間の依存関係を隠す) |
低 | Else In Else If Statement | OPT.PHP.ElseInElseIfStatement | ElseInElseIfStatement:else if文はelse句で終了させること |
低 | Empty Boot Method In Bundle | OPT.PHP.EmptyBootMethodInBundle | EmptyBootMethodInBundle:すべてのバンドルのboot()メソッドは空であることが必要 |
低 | Exception Extension | OPT.PHP.ExceptionExtension | ExceptionExtension:Exceptionクラスから拡張したカスタムクラスの適切な定義 |
低 | Modifiers Order | OPT.PHP.ModifiersOrder | ModifiersOrder:abstract修飾子、final修飾子、static修飾子の宣言順 |
低 | Names Suffix Conventions | OPT.PHP.NamesSuffixConventions | NamesSuffixConventions:インターフェイス、トレイト、および例外クラスにおける命名規則の遵守 |
低 | Not Mix End Of Lines | OPT.PHP.NotMixEndOfLines | NotMixEndOfLines:改行コードの統一(ファイルの改行コードを1つの形式のみに統一することが必要) |
低 | No Use Debug Statements | OPT.PHP.NoUseDebugStatements | NoUseDebugStatements:本番環境におけるデバッグ文の使用禁止 |
低 | Organize Forms In Categories | OPT.PHP.OrganizeFormsInCategories | OrganizeFormsInCategories:フォームディレクトリの適切な構造化 |
低 | Improper Validation Of Array Index | OPT.PHP.SEC.ImproperValidationOfArrayIndex | ImproperValidationOfArrayIndex:無害化されていない脆弱な入力からの配列インデックス |
低 | Specify The Allowed Methods For The Routes | OPT.PHP.SpecifyTheAllowedMethodsForTheRoutes | SpecifyTheAllowedMethodsForTheRoutes:ルートごとの許可されるメソッドの指定 |
低 | String Concatenation | OPT.PHP.StringConcatenation | StringConcatenation:文字列連結の書式(「.」演算子の前後にスペースを追加し、複数行の連結文では、「.」演算子を「{}」の下に揃うよう各行を調整する) |
低 | Text Files End Properly | OPT.PHP.TextFilesEndProperly | TextFilesEndProperly:ファイルは改行文字で終わることが必要 |
低 | Type Hint Object Arguments | OPT.PHP.TypeHintObjectArguments | TypeHintObjectArguments:各メソッドの引数の型の指定 |
低 | Use Strict Comparisons | OPT.PHP.UseStrictComparisons | UseStrictComparisons:厳密な比較の使用 |
低 | Variable As String | OPT.PHP.VariableAsString | VariableAsString:変数のみから作成された文字列の使用 |
中 | Avoid Contain Config File | OPT.PHP.AvoidContainConfigFile | AvoidContainConfigFile:プロジェクトの本番環境移行前にconfig.phpを削除することが必要 |
中 | Plaintext Storage In A Cookie Rule | OPT.PHP.SEC.PlaintextStorageInACookieRule | PlaintextStorageInACookieRule:Cookieでの機密情報の平文保存 |
中 | Cross Site History Manipulation | OPT.PHP.SEC.CrossSiteHistoryManipulation | CrossSiteHistoryManipulation:クロスサイト履歴操作(XSHM) |
中 | Format String Injection Rule | OPT.PHP.SEC.FormatStringInjectionRule | FormatStringInjectionRule:無害化されていないユーザ入力をフォーマット文字列から除外 |
中 | Serialization Injection | OPT.PHP.SerializationInjection | SerializationInjection:信頼できないデータのデシリアライゼーション |
中 | Avoid Concat In Echo | OPT.PHP.AvoidConcatInEcho | AvoidConcatInEcho:echo文での連結の回避 |
中 | Use Switch Instead Of If Else If | OPT.PHP.UseSwitchInsteadOfIfElseIf | UseSwitchInsteadOfIfElseIf:if-elseif-elseチェーンの回避 |
中 | Avoid Large Classes | OPT.PHP.AvoidLargeClasses | AvoidLargeClasses:コード行が多すぎるクラスの回避 |
中 | Avoid Large Methods | OPT.PHP.AvoidLargeMethods | AvoidLargeMethods:コード行数が多すぎる関数やメソッドの回避 |
中 | Avoid Magic Numbers | OPT.PHP.AvoidMagicNumbers | AvoidMagicNumbers:メソッド呼び出しでのリテラルの回避(名前付き定数はソースコードの理解と保守を容易にする) |
中 | Avoid Pass Entity Manager As Argument | OPT.PHP.AvoidPassEntityManagerAsArgument | AvoidPassEntityManagerAsArgument:引数としてのエンティティマネージャの引き渡し禁止 |
中 | Avoid Unecessary Replacements In Loops | OPT.PHP.AvoidUnecessaryReplacementsInLoops | AvoidUnecessaryReplacementsInLoop:ループ内での不要な文字列置換の回避 |
中 | Avoid Unreachable Code | OPT.PHP.AvoidUnreachableCode | AvoidUnreachableCode:実行されることのないコードの実装の回避 |
中 | Check Field Number In Class | OPT.PHP.CheckFieldNumberInClass | CheckFieldNumberInClass:クラスあたりのフィールド数が多すぎるクラスの回避 |
中 | Check Public Methods Number In Class | OPT.PHP.CheckPublicMethodsNumberInClass | CheckPublicMethodsNumberInClass:メソッドが多すぎるクラスの回避 |
中 | Close Opened Database Connections | OPT.PHP.CloseOpenedDatabaseConnections | CloseOpenedDatabaseConnections:非永続的な接続が不要になった場合のクローズ |
中 | Counter Functions In Loops | OPT.PHP.CounterFunctionsInLoops | CounterFunctionsInLoop:ループ式におけるカウンタ関数の使用禁止 |
中 | Exceptions Disable In Production | OPT.PHP.ExceptionsDisableInProduction | ExceptionsDisableInProduction:アプリケーションが本番環境にある時の例外の無効化 |
中 | Foreach To Loop Through Arrays | OPT.PHP.ForeachToLoopThroughArrays | foreachToLoopThroughArrays:foreachを使用する配列のループ処理 |
中 | If Variable To Check Initialization | OPT.PHP.IfVariableToCheckInitialization | ifVariableToCheckInitialization:変数の初期化チェックのためのif ($var)の使用禁止 |
中 | MIME Type Detection | OPT.PHP.MIMETypeDetection | MIMETypeDetection:$_FILES配列に含まれるファイルの「type」属性を使用するMIMEタイプ検出の回避 |
中 | No Use Deprecated Functions | OPT.PHP.NoUseDeprecatedFunctions | NoUseDeprecatedFunctions:非推奨の関数の使用禁止 |
中 | No Use Magic Constant __DIR__ and __FILE__ | OPT.PHP.NoUseMagicConstant__DIR__and__FILE__ | NoUseMagicConstant__DIR__and__FILE__:マジック定数(__FILE__ と __DIR__)の使用禁止 |
中 | Num Max Class By Namespace | OPT.PHP.NumMaxClassByNamespace | NumMaxClassByNamespaces:パッケージ/名前空間ごとの過剰なクラス数の回避 |
中 | Return Value Without Parentheses | OPT.PHP.ReturnValueWithoutParentheses | ReturnValueWithoutParentheses:戻り値の括弧(戻り値を括弧で囲んではいけない) |
中 | Execution After Redirect | OPT.PHP.SEC.ExecutionAfterRedirect | ExecutionAfterRedirect:リダイレクト処理後のコードの実行(EAR) |
中 | Potential Infinite Loop | OPT.PHP.SEC.PotentialInfiniteLoop | PotentialInfiniteLoop:到達不可能な終了条件を持つルール(無限ループ) |
中 | Unchecked Input In Loop Condition | OPT.PHP.SEC.UncheckedInputInLoopCondition | UncheckedInputInLoopCondition:ループ条件における未チェックの入力 |
中 | Set For Attibutes With Get | OPT.PHP.SetForAttibutesWithGet | SetForAttibutesWithGet:「__get」メソッド定義時の「__set」メソッド定義の必要性 |
中 | Single Line Comments | OPT.PHP.SingleLineComments | SingleLineComments:シャープ文字で始まるインラインコメントの禁止 |
中 | String Literals | OPT.PHP.StringLiterals | StringLiterals:文字列リテラルを区切るための単純な引用符の使用(アポストロフィ、エスケープされた文字、または変数置換を含む場合を除く) |
中 | Unsafe Function | OPT.PHP.UnsafeFunction | UnsafeFunction:危険な可能性のある関数の使用 |
中 | Use Latest Symfony Version | OPT.PHP.UseLatestSymfonyVersion | UseLatestSymfonyVersion:最新の安定版Symfonyバージョンの使用 |
中 | Use Maintained Symfony Version | OPT.PHP.UseMaintainedSymfonyVersion | UseMaintainedSymfonyVersion:メンテナンスされたSymfonyバージョンの使用 |
中 | Use Relative Path | OPT.PHP.UseRelativePath | UseRelativePath:相対パスを使用したリソースへのアクセス |
中 | Variable Initialization | OPT.PHP.VariableInitialization | VariableInitialization:変数の初期化 |
中 | Privacy Violation | OPT.PHP.PrivacyViolation | PrivacyViolation:個人情報の漏洩 |
中 | Autocomplete On For Sensitive Fields | OPT.PHP.SEC.AutocompleteOnForSensitiveFields | AutocompleteOnForSensitiveFields:機密性の高いフォームフィールドに対してオートコンプリートが有効 |
中 | Plaintext Storage Of Password | OPT.PHP.SEC.PlaintextStorageOfPassword | PlaintextStorageOfPassword:パスワードの平文保存 |