JavaScriptのスキャンルール
Contrast Scanでは、JavaScriptに対して以下のルールをサポートしています。
深刻度 | Contrastルール | エンジンルールID | 説明 |
---|---|---|---|
重大 | Improper Certificate Validation | OPT.JAVASCRIPT.ImproperCertificateValidation | ImproperCertificateValidation:証明書の検証不備 |
重大 | Too Much Origins Allowed | OPT.JAVASCRIPT.TooMuchOriginsAllowed | TooMuchOriginsAllowed:CORSポリシー(クロスオリジンリソース共有)での広すぎる許可範囲 |
重大 | Contextual Escaping Disabled | OPT.JAVASCRIPT.ANGULARJS.ContextualEscapingDisabled | ContextualEscapingDisabled:厳格な文脈のエスケープ(SCE)が無効 |
重大 | Unsafe Resource Url Whitelist | OPT.JAVASCRIPT.ANGULARJS.UnsafeResourceUrlWhitelist | UnsafeResourceUrlWhitelist:Angularテンプレートの安全ではないロード |
重大 | Unsafe Url Whitelist | OPT.JAVASCRIPT.ANGULARJS.UnsafeUrlWhitelist | UnsafeUrlWhitelist:安全でないURLのホワイトリスト |
重大 | Sandbox Allow Scripts And Same Origin | OPT.JAVASCRIPT.JSX.SandboxAllowScriptsAndSameOrigin | SandboxAllowScriptsAndSameOrigin:allow-scriptsとallow-same-originが指定されている安全でないサンドボックス |
重大 | No Use Of Eval | OPT.JAVASCRIPT.PERFORMANCE.NoUseOfEval | NoUseOfEval:eval()関数の使用禁止(セキュリティとパフォーマンス上の理由による) |
重大 | Client Side Template Injection | OPT.JAVASCRIPT.ClientSideTemplateInjection | ClientSideTemplateInjection:クライアントサイドテンプレートインジェクション |
重大 | Code Injection | OPT.JAVASCRIPT.CodeInjection | CodeInjection:コード生成の不適切な制御(コードインジェクション) |
重大 | Code Injection With Deserialization | OPT.JAVASCRIPT.CodeInjectionWithDeserialization | CodeInjectionWithDeserialization:オブジェクトのデシリアライズ中の動的なコードインジェクション |
重大 | Command Injection | OPT.JAVASCRIPT.CommandInjection | CommandInjection:OSコマンドの一部における無害化されていないユーザ制御入力の使用の回避 |
重大 | Connection String Parameter Pollution | OPT.JAVASCRIPT.ConnectionStringParameterPollution | ConnectionStringParameterPollution::信頼できない入力で汚染された接続文字列 |
重大 | Cookie Poisoning | OPT.JAVASCRIPT.CookiePoisoning | CookiePoisoning:Cookieポイズニングの防止 |
重大 | Cross Site Scripting | OPT.JAVASCRIPT.CrossSiteScripting | CrossSiteScripting:Webコンテンツ生成中の入力の不適切な無害化(クロスサイトスクリプティング、XSS) |
重大 | DoS Regexp | OPT.JAVASCRIPT.DoSRegexp | DoSRegexp:悪意のある正規表現によるDoS攻撃の可能性(ReDoS) |
重大 | Http Parameter Pollution | OPT.JAVASCRIPT.HttpParameterPollution | HttpParameterPollution:HTTPパラメータ汚染(HPP) |
重大 | Ldap Injection | OPT.JAVASCRIPT.LdapInjection | LdapInjection:LDAP検索フィルタにおける無害化されていないユーザ制御入力の回避 |
重大 | Mail Command Injection | OPT.JAVASCRIPT.MailCommandInjection | MailCommandInjection:メールコマンドインジェクション |
重大 | No SQL Injection | OPT.JAVASCRIPT.NoSQLInjection | NoSQLInjection:データクエリロジックにおける特殊要素の不適切な無害化(NoSQLインジェクション) |
重大 | Resource Injection | OPT.JAVASCRIPT.ResourceInjection | ResourceInjection:リソースインジェクションの防止(外部入力によるリソース識別子の制御を許可しない) |
重大 | Same Origin Method Execution | OPT.JAVASCRIPT.SameOriginMethodExecution | SameOriginMethodExecution:同一オリジンメソッド実行(SOME) |
重大 | Server Side Template Injection | OPT.JAVASCRIPT.ServerSideTemplateInjection | ServerSideTemplateInjection:サーバーサイドテンプレートインジェクション |
重大 | SQL Injection | OPT.JAVASCRIPT.SqlInjection | SqlInjection:SQLコマンドで使用する特殊要素の不適切な無害化(SQLインジェクション) |
重大 | Stored Cross Site Scripting | OPT.JAVASCRIPT.StoredCrossSiteScripting | StoredCrossSiteScripting:不適切に無害化されたデータベースとエスケープされた出力によるWebコンテンツの生成(格納型クロスサイトスクリプティング、XSS) |
重大 | Xml Entity Injection | OPT.JAVASCRIPT.XmlEntityInjection | XmlEntityInjection:XMLエンティティインジェクション |
重大 | Angular Cross Site Scripting | OPT.JAVASCRIPT.ANGULARJS.AngularCrossSiteScripting | AngularCrossSiteScripting:Webコンテンツ生成中の入力の不適切な無害化(クロスサイトスクリプティング、XSS) - AngularJS |
重大 | Vue Html Escape Disabled | OPT.JAVASCRIPT.VUE.VueHtmlEscapeDisabled | VueHtmlEscapeDisabled:無効化されているVue.jsのHTMLエスケープ |
重大 | Avoid Assignment In Condition | OPT.JAVASCRIPT.ERRORCOMUN.AvoidAssignmentInCondition | AvoidAssignmentInCondition:条件式での代入の回避 |
重大 | Avoid Loop With Empty Body | OPT.JAVASCRIPT.ERRORCOMUN.AvoidLoopWithEmptyBody | AvoidLoopWithEmptyBody:本体が空のループ(while、do/while、for)の回避 |
重大 | Avoid Unary Ops In Assign | OPT.JAVASCRIPT.ERRORCOMUN.AvoidUnaryOpsInAssign | AvoidUnaryOpsInAssign:変数のインクリメントやデクリメントのエラーの回避 |
重大 | No Update Loop Vars In For Body | OPT.JAVASCRIPT.ERRORCOMUN.NoUpdateLoopVarsInForBody | NoUpdateLoopVarsInForBody:「for」ループ本体における制御変数の更新の禁止 |
重大 | Avoid Big Files | OPT.JAVASCRIPT.ESTILO.AvoidBigFiles | AvoidBigFiles:大きすぎるJavaScriptファイルの回避 |
重大 | Avoid Large Functions | OPT.JAVASCRIPT.ESTILO.AvoidLargeFunctions | AvoidLargeFunctions:行数の多すぎる関数の回避 |
重大 | Avoid Popup Windows | OPT.JAVASCRIPT.ESTILO.AvoidPopupWindows | AvoidPopupWindows:ポップアップウィンドウの回避 |
重大 | Avoid Document All | OPT.JAVASCRIPT.PORTABILITY.AvoidDocumentAll | AvoidDocumentAll:document.allやdocument.layers使用の回避 |
重大 | Avoid Overwriting Builtin Objects | OPT.JAVASCRIPT.AvoidOverwritingBuiltinObjects | AvoidOverwritingBuiltinObjects:JavaScript組み込みオブジェクトの上書きの回避 |
重大 | Path Manipulation | OPT.JAVASCRIPT.PathManipulation | PathManipulation:ファイル名またはパスの外部制御 |
重大 | Avoid Cyclic Dependencies | OPT.JAVASCRIPT.NODEJS.AvoidCyclicDependencies | AvoidCyclicDependencies:モジュール間での循環的な依存関係の回避 |
重大 | Avoid Using Process Exit | OPT.JAVASCRIPT.NODEJS.AvoidUsingProcessExit | AvoidUsingProcessExit:process.exit()使用の回避 |
重大 | Avoid Dom Manipulation In Controllers | OPT.JAVASCRIPT.ANGULARJS.AvoidDomManipulationInControllers | AvoidDomManipulationInControllers:コントローラにおけるDOM操作の回避 |
重大 | Bind Objects In Scope | OPT.JAVASCRIPT.ANGULARJS.BindObjectsInScope | BindObjectsInScope:オブジェクトへのバインド(スコープ内のプロパティではなく、オブジェクト自体にバインドする) |
重大 | Deprecated Directive Format | OPT.JAVASCRIPT.ANGULARJS.DeprecatedDirectiveFormat | DeprecatedDirectiveFormat:非推奨のディレクティブ形式の回避 |
重大 | Never Store Dom In Scope | OPT.JAVASCRIPT.ANGULARJS.NeverStoreDomInScope | NeverStoreDomInScope:スコープでのDOM要素保存の禁止 |
重大 | Private Property Access | OPT.JAVASCRIPT.ANGULARJS.PrivatePropertyAccess | PrivatePropertyAccess:AngularJSオブジェクトのプライベートプロパティへのアクセス禁止 |
重大 | Unsafe Minification Annotation | OPT.JAVASCRIPT.ANGULARJS.UnsafeMinificationAnnotation | UnsafeMinificationAnnotation:依存性注入における、縮小化の影響を受けないアノテーションの使用 |
重大 | Use Controller As Syntax In Views | OPT.JAVASCRIPT.ANGULARJS.UseControllerAsSyntaxInViews | UseControllerAsSyntaxInViews:ビューにおける「controller as」記法の使用 |
重大 | Watch Collection Change | OPT.JAVASCRIPT.ANGULARJS.WatchCollectionChange | WatchCollectionChange:3つのパラメータを指定する$watchの代わりの$watchCollectionの使用 |
重大 | Too Broad Access Origin | OPT.JAVASCRIPT.CORDOVA.TooBroadAccessOrigin | TooBroadAccessOrigin:許可範囲が広すぎるアクセスポリシー |
重大 | Vue Component Data Must Be Function | OPT.JAVASCRIPT.VUE.VueComponentDataMustBeFunction | VueComponentDataMustBeFunction:Vueコンポーネントのデータ定義(コンポーネントデータは関数であることが必要) |
重大 | Missing Password Field Masking | OPT.JAVASCRIPT.JSX.MissingPasswordFieldMasking | MissingPasswordFieldMasking:マスクされていないパスワード入力フィールド |
高 | Clickjacking Protection | OPT.JAVASCRIPT.ClickjackingProtection | ClickjackingProtection:クリックジャッキング攻撃に対する保護の未設定 |
高 | Plaintext Storage In A Cookie | OPT.JAVASCRIPT.PlaintextStorageInACookie | PlaintextStorageInACookieRule:Cookieに機密情報の平文保存 |
高 | Use Strict Transport Security | OPT.JAVASCRIPT.UseStrictTransportSecurity | UseStrictTransportSecurity:HTTPのStrict Transport Securityヘッダの使用 |
高 | Xss Protection Disabled | OPT.JAVASCRIPT.XssProtectionDisabled | XssProtectionDisabled:クロスサイトスクリプティングの保護が無効 |
高 | Avoid Enabled Debug Mode | OPT.JAVASCRIPT.CORDOVA.AvoidEnabledDebugMode | AvoidEnabledDebugMode:デバッグログが有効であることを検出 |
高 | Insecure Android Min Sdk Version | OPT.JAVASCRIPT.CORDOVA.InsecureAndroidMinSdkVersion | InsecureAndroidMinSdkVersion:古すぎるAndroid SDKバージョン |
高 | Whitelist Plugin Not Installed | OPT.JAVASCRIPT.CORDOVA.WhitelistPluginNotInstalled | WhitelistPluginNotInstalled:whitelistプラグインが未インストール |
高 | Cross Site Request Forgery | OPT.JAVASCRIPT.CrossSiteRequestForgery | CrossSiteRequestForgery:認証済みのWebサイトでユーザに代わって実行されるアクション(クロスサイトリクエストフォージェリ、CSRF) |
高 | External Control Of Configuration Setting | OPT.JAVASCRIPT.ExternalControlOfConfigurationSetting | ExternalControlOfConfigurationSetting:システム設定または構成設定の外部制御 |
高 | Header Manipulation | OPT.JAVASCRIPT.HeaderManipulation | HeaderManipulation: HTTPレスポンスヘッダやCookie内の未検証データ(HTTPレスポンス分割攻撃) |
高 | Open Redirect | OPT.JAVASCRIPT.OpenRedirect | OpenRedirect:信頼できないサイトへのURLリダイレクト(オープンリダイレクト) |
高 | Open Redirect Hana XS | OPT.JAVASCRIPT.OpenRedirectHanaXS | OpenRedirectHanaXS:オープンリダイレクト(HANA XS) |
高 | Server Side Request Forgery | OPT.JAVASCRIPT.ServerSideRequestForgery | ServerSideRequestForgery:信頼できない入力を使用した脆弱なサーバからのリクエストの作成(サーバサイドリクエストフォージェリ、SSRF) |
高 | XPath Injection | OPT.JAVASCRIPT.XPathInjection | XPathInjection:XPath式内のデータの不適切な無害化(XPathインジェクション) |
高 | Target Blank Vulnerability | OPT.JAVASCRIPT.JSX.TargetBlankVulnerability | TargetBlankVulnerability:外部サイトへのリンクの不適切な無害化 |
高 | Avoid Empty Functions | OPT.JAVASCRIPT.ERRORCOMUN.AvoidEmptyFunctions | AvoidEmptyFunctions:空の本体を持つトップレベル関数の回避 |
高 | Many Cases | OPT.JAVASCRIPT.ERRORCOMUN.ManyCases | ManyCases:switchでの過多な選択肢の回避 |
高 | Potential Infinite Loop | OPT.JAVASCRIPT.ERRORCOMUN.PotentialInfiniteLoop | PotentialInfiniteLoop:無限ループの可能性 |
高 | Unused Function Parameter | OPT.JAVASCRIPT.ERRORCOMUN.UnusedFunctionParameter | UnusedFunctionParameter:未使用の関数パラメータの回避 |
高 | Unused Local Var | OPT.JAVASCRIPT.ERRORCOMUN.UnusedLocalVar | UnusedLocalVar:未使用のローカル変数の回避 |
高 | Avoid Conditional Operator | OPT.JAVASCRIPT.ESTILO.AvoidConditionalOperator | AvoidConditionalOperator:条件評価のための三項演算子「 ? : 」の回避 |
高 | Avoid Declaring Vars Without Var | OPT.JAVASCRIPT.ESTILO.AvoidDeclaringVarsWithoutVar | AvoidDeclaringVarsWithoutVar:varキーワードを使用した変数宣言 |
高 | Avoid Using With | OPT.JAVASCRIPT.ESTILO.AvoidUsingWith | AvoidUsingWith:「with」文使用の回避 |
高 | End Sentences With Semicolon | OPT.JAVASCRIPT.ESTILO.EndSentencesWithSemicolon | EndSentencesWithSemicolo:セミコロンのない文の回避 |
高 | Avoid Non Portable Methods | OPT.JAVASCRIPT.PORTABILITY.AvoidNonPortableMethods | AvoidNonPortableMethods:移植性のない関数のチェック |
高 | No Navigator For Browser Detection | OPT.JAVASCRIPT.PORTABILITY.NoNavigatorForBrowserDetection | NoNavigatorForBrowserDetection:navigator.userAgentを使用してのブラウザの検出の回避(移植性の高いコードを記述するため) |
高 | Avoid Accesing Unreliable Variable Properties | OPT.JAVASCRIPT.AvoidAccesingUnreliableVariableProperties | AvoidAccesingUnreliableVariableProperties:信頼できない変数プロパティへのアクセスの回避 |
高 | Avoid Calling Too Many Other Components | OPT.JAVASCRIPT.AvoidCallingTooManyOtherComponents | AvoidCallingTooManyOtherComponents:他のコンポーネントの呼び出しが多すぎるコンポーネントの回避 |
高 | Avoid Misuse Of Delete | OPT.JAVASCRIPT.AvoidMisuseOfDelete | AvoidMisuseOfDelete:delete演算子の適切な使用(delete演算子はオブジェクトのプロパティに対してのみ使用する) |
高 | Avoid Named Functions | OPT.JAVASCRIPT.AvoidNamedFunctions | AvoidNamedFunctions:条件ブロックにおける関数定義の回避 |
高 | Avoid Object Instantiation Into Loops | OPT.JAVASCRIPT.AvoidObjectInstantiationIntoLoops | AvoidObjectInstantiationIntoLoops:ループ内でのオブジェクトのインスタンス化の回避 |
高 | Avoid Too Complex Functions | OPT.JAVASCRIPT.AvoidTooComplexFunctions | AvoidTooComplexFunctions:循環的複雑度の高いメソッドの使用の回避 |
高 | Avoid Too Complex Programs | OPT.JAVASCRIPT.AvoidTooComplexPrograms | AvoidTooComplexPrograms:循環的複雑度の高いクラスの使用の回避 |
高 | Avoid Using Unary Operators With Objects | OPT.JAVASCRIPT.AvoidUsingUnaryOperatorsWithObjects | AvoidUsingUnaryOperatorsWithObjects:オブジェクトへの単項演算子( + および - )の使用回避 |
高 | Duplicated Name For Function And Variable | OPT.JAVASCRIPT.DuplicatedNameForFunctionAndVariable | DuplicatedNameForFunctionAndVariable:変数と同じ名前の関数の宣言の回避 |
高 | Function Arguments Uniqueness | OPT.JAVASCRIPT.FunctionArgumentsUniqueness | FunctionArgumentsUniqueness:関数宣言における重複する引数名の回避 |
高 | I E Conditional Comments | OPT.JAVASCRIPT.IEConditionalComments | IEConditionalComments:Internet Explorerの条件付きコメントの回避 |
高 | Nested If Statements | OPT.JAVASCRIPT.NestedIfStatements | NestedIfStatements:多重にネストしたif文の回避 |
高 | Property Names Uniqueness | OPT.JAVASCRIPT.PropertyNamesUniqueness | PropertyNamesUniqueness:オブジェクトリテラルでの重複したプロパティ名の回避 |
高 | Unhandled Promise | OPT.JAVASCRIPT.UnhandledPromise | UnhandledPromise:関数から返されるPromiseの適切な処理 |
高 | Variable Redeclaration | OPT.JAVASCRIPT.VariableRedeclaration | VariableRedeclaration:既に使用されている名前での変数の宣言の回避 |
高 | Avoid Too Much Nested Callbacks | OPT.JAVASCRIPT.NODEJS.AvoidTooMuchNestedCallbacks | AvoidTooMuchNestedCallbacks:ネストが深いコールバックの使用の回避 |
高 | Avoid Using Default Connection Limit | OPT.JAVASCRIPT.NODEJS.AvoidUsingDefaultConnectionLimit | AvoidUsingDefaultConnectionLimit:デフォルトの接続制限の使用の回避 |
高 | Validate Package Json | OPT.JAVASCRIPT.NODEJS.ValidatePackageJson | ValidatePackageJson:ワイルドカード(*)での依存関係のバージョン指定の回避 |
高 | Require Modules At The Begin | OPT.JAVASCRIPT.RequireModulesAtTheBegin | RequireModulesAtTheBegin:モジュールのrequireの位置(常にファイルの先頭でモジュールをrequireする) |
高 | Avoid Complex Expressions In Html | OPT.JAVASCRIPT.ANGULARJS.AvoidComplexExpressionsInHtml | AvoidComplexExpressionsInHtml:HTMLでの複雑なAngularJS式の回避 |
高 | Avoid Root Scope Event Listeners In Controllers | OPT.JAVASCRIPT.ANGULARJS.AvoidRootScopeEventListenersInControllers | AvoidRootScopeEventListenersInControllers:コントローラにおける$rootScopeへのイベントリスナー登録の回避 |
高 | Deprecated Http Functions | OPT.JAVASCRIPT.ANGULARJS.DeprecatedHttpFunctions | DeprecatedHttpFunctions:非推奨の$http関数の使用禁止 |
高 | Ng Src When Using Expressions | OPT.JAVASCRIPT.ANGULARJS.NgSrcWhenUsingExpressions | NgSrcWhenUsingExpressions:ng-src属性の使用(AngularJS式を含む属性値を指定する場合は、画像には常にng-srcを使用する) |
高 | Prevent Component Name Collision | OPT.JAVASCRIPT.ANGULARJS.PreventComponentNameCollision | PreventComponentNameCollision:AngularJSコンポーネント定義における名前重複の防止 |
高 | Resolve Controller Dependencies In Route | OPT.JAVASCRIPT.ANGULARJS.ResolveControllerDependenciesInRoute | ResolveControllerDependenciesInRoute:ルーティング処理におけるコントローラの依存関係の解決 |
高 | Restrict Directives Element Attribute | OPT.JAVASCRIPT.ANGULARJS.RestrictDirectivesElementAttribute | RestrictDirectivesElementAttribute:ディレクティブの要素・属性制限 |
高 | Use Named Functions For Components | OPT.JAVASCRIPT.ANGULARJS.UseNamedFunctionsForComponents | UseNamedFunctionsForComponents:コンポーネントにおける名前付き関数の使用(コンポーネントにはコールバックの代わりに名前付き関数を使用する) |
高 | Avoid Annotating Inferable Types | OPT.JAVASCRIPT.TYPESCRIPT.AvoidAnnotatingInferableTypes | AvoidAnnotatingInferableTypes:推測可能なプリミティブ型に対する型注釈の回避 |
高 | No Empty Interface | OPT.JAVASCRIPT.TYPESCRIPT.NoEmptyInterface | NoEmptyInterface:空のインターフェイス使用の回避 |
高 | Prefer Read Only | OPT.JAVASCRIPT.TYPESCRIPT.PreferReadOnly | PreferReadOnly:プロパティが再代入されない場合のreadonlyの使用 |
高 | Skip Internal Module Or Namespace | OPT.JAVASCRIPT.TYPESCRIPT.SkipInternalModuleOrNamespace | SkipInternalModuleOrNamespace:ES2015モジュール構文の使用 |
高 | Useless Type Cast | OPT.JAVASCRIPT.TYPESCRIPT.UselessTypeCast | UselessTypeCast:無駄な型キャストの回避 |
高 | Useless Type Intersection | OPT.JAVASCRIPT.TYPESCRIPT.UselessTypeIntersection | UselessTypeIntersection:無駄な型の交差の回避 |
高 | Use Type Annotations | OPT.JAVASCRIPT.TYPESCRIPT.UseTypeAnnotations | UseTypeAnnotations:TypeScriptの型システムの使用 |
高 | Avoid Forward Refs | OPT.JAVASCRIPT.TYPESCRIPT.ANGULAR.AvoidForwardRefs | AvoidForwardRefs:forwardRef関数使用の回避 |
高 | Avoid Impure Pipes | OPT.JAVASCRIPT.TYPESCRIPT.ANGULAR.AvoidImpurePipes | AvoidImpurePipes:純粋でないパイプの回避 |
高 | Avoid Template Async Negation | OPT.JAVASCRIPT.TYPESCRIPT.ANGULAR.AvoidTemplateAsyncNegation | AvoidTemplateAsyncNegation:テンプレートにおける非同期パイプ(async pipe)の不適切な使用 |
高 | Decorator Incompatibility | OPT.JAVASCRIPT.TYPESCRIPT.ANGULAR.DecoratorIncompatibility | DecoratorIncompatibility:デコレータの互換性チェック(デコレータ使用時にデコレータ間で非互換性が発生しないようにする) |
高 | Use Host Decorator | OPT.JAVASCRIPT.TYPESCRIPT.ANGULAR.UseHostDecorator | UseHostDecorator:ホストメタデータプロパティの代わりの@Hostデコレータの使用 |
高 | Use Injectable Decorator | OPT.JAVASCRIPT.TYPESCRIPT.ANGULAR.UseInjectableDecorator | UseInjectableDecorator:@Injectパラメータデコレータの代わりの@Injectableクラスデコレータの使用 |
高 | Use Input Decorator | OPT.JAVASCRIPT.TYPESCRIPT.ANGULAR.UseInputDecorator | UseInputDecorator:inputsメタデータプロパティの代わりの @Inputデコレータの使用 |
高 | Use Output Decorator | OPT.JAVASCRIPT.TYPESCRIPT.ANGULAR.UseOutputDecorator | UseOutputDecorator:inputsメタデータプロパティの代わりの@Outputデコレータの使用 |
高 | Use Track By | OPT.JAVASCRIPT.TYPESCRIPT.ANGULAR.UseTrackBy | UseTrackBy:ngForでのtrackByの使用 |
高 | Avoid Click Events | OPT.JAVASCRIPT.CORDOVA.AvoidClickEvents | AvoidClickEvents:Cordovaにおけるクリックイベント使用の回避 |
高 | Vue For Without Key | OPT.JAVASCRIPT.VUE.VueForWithoutKey | VueForWithoutKey:v-forのkey属性(v-forには常にkeyを使用する) |
高 | Vue If With For Directive | OPT.JAVASCRIPT.VUE.VueIfWithForDirective | VueIfWithForDirective:v-forとv-ifの併用禁止(v-forとv-ifを同じ要素に使用しないこと) |
高 | Avoid Web SQL | OPT.JAVASCRIPT.AvoidWebSQL | AvoidWebSQL:Web SQLの回避 |
高 | Empty Or Hardcoded Password | OPT.JAVASCRIPT.EmptyOrHardcodedPassword | EmptyOrHardcodedPassword:ハードコードされたパスワードの検出(空またはハードコードされたパスワードは、システムのセキュリティを脅かす可能性があり、容易に修復できない) |
高 | Prevent MIME Sniffing | OPT.JAVASCRIPT.PreventMIMESniffing | PreventMIMESniffing:MIMEスニッフィングの防止 |
高 | Angular Local Storage Information Leak | OPT.JAVASCRIPT.ANGULARJS.AngularLocalStorageInformationLeak | AngularLocalStorageInformationLeak:AngularJSのローカルストレージ情報の漏洩 |
高 | Hardcoded Crypto Key | OPT.JAVASCRIPT.HardcodedCryptoKey | HardcodedCryptoKey:ハードコードされた暗号鍵 |
高 | Insecure Transport | OPT.JAVASCRIPT.InsecureTransport | InsecureTransport:安全でない送信 |
高 | Insuficient Key Size | OPT.JAVASCRIPT.InsuficientKeySize | InsuficientKeySize:鍵長不足(それ自体が強力な暗号化アルゴリズムであっても、小さな鍵サイズを使用するとブルートフォース攻撃に対して脆弱になる) |
高 | Server Insecure Transport | OPT.JAVASCRIPT.ServerInsecureTransport | ServerInsecureTransport:Node.jsのHTTPサーバにおける安全でない送信 |
高 | Weak Cryptographic Hash | OPT.JAVASCRIPT.WeakCryptographicHash | WeakCryptographicHash:脆弱な暗号化ハッシュ |
高 | Weak Encryption | OPT.JAVASCRIPT.WeakEncryption | WeakEncryption:脆弱な共通鍵暗号アルゴリズム |
情報 | Code Document Percentage | OPT.JAVASCRIPT.DOCUMENTACION.CodeDocumentPercentage | CodeDocumentPercentage:コードの文書化 |
情報 | Document Every Function | OPT.JAVASCRIPT.DOCUMENTACION.DocumentEveryFunction | DocumentEveryFunction:全てのトップレベル関数の前での見出しコメントの挿入 |
情報 | Function Redeclaration | OPT.JAVASCRIPT.FunctionRedeclaration | FunctionRedeclaration:同じスコープ内での重複する関数名の回避 |
情報 | Multiline String Literals | OPT.JAVASCRIPT.MultilineStringLiterals | MultilineStringLiterals:複数行の文字列リテラルの記述(文字列リテラルを複数行に分割する際に「\」文字を使用しない) |
情報 | Avoid Using Process Env | OPT.JAVASCRIPT.NODEJS.AvoidUsingProcessEnv | AvoidUsingProcessEnv:process.env()の使用の回避 |
情報 | Module Definition And Use | OPT.JAVASCRIPT.ANGULARJS.ModuleDefinitionAndUse | ModuleDefinitionAndUse:モジュールの定義と使用(モジュールを定義してアクセスする際は、変数を作成せずにsetter/getter構文を使用すること) |
低 | Form Without Captcha | OPT.JAVASCRIPT.JSX.FormWithoutCaptcha | FormWithoutCaptcha:CAPTCHAなしのフォーム |
低 | Use Space Between Operators | OPT.JAVASCRIPT.ESTILO.UseSpaceBetweenOperators | UseSpaceBetweenOperators:論理演算子の空白(論理演算子とそのオペランドの間に空白を置くこと) |
低 | Global Var Pattern | OPT.JAVASCRIPT.JSNOM.GlobalVarPattern | GlobalVarPattern:グローバル変数の命名規則(グローバル変数は避けるべきであり、使用する場合は命名規則に従うこと) |
低 | Identifier Naming Pattern | OPT.JAVASCRIPT.JSNOM.IdentifierNamingPattern | IdentifierNamingPattern:JavaScript識別子の命名規則の遵守 |
低 | Avoid Arguments | OPT.JAVASCRIPT.AvoidArguments | AvoidArguments:arguments オブジェクトの使用の回避 |
低 | Avoid Array And Object Constructors | OPT.JAVASCRIPT.AvoidArrayAndObjectConstructors | AvoidArrayAndObjectConstructors:Arrayコンストラクタと Objectコンストラクタの回避 |
低 | Avoid Commented Out Code Blocks | OPT.JAVASCRIPT.AvoidCommentedOutCodeBlocks | AvoidCommentedOutCodeBlocks:コメントアウトされたコードブロックの回避 |
低 | Avoid Constructors For Side Effects | OPT.JAVASCRIPT.AvoidConstructorsForSideEffects | AvoidConstructorsForSideEffects:結果を使用しないコンストラクタ呼び出しの回避 |
低 | Avoid Function Definition Inside Loop | OPT.JAVASCRIPT.AvoidFunctionDefinitionInsideLoop | AvoidFunctionDefinitionInsideLoop:ループ内での関数宣言の回避 |
低 | Avoid Octal Number | OPT.JAVASCRIPT.AvoidOctalNumber | AvoidOctalNumber:8進数の使用の回避 |
低 | Avoid Returning Values From Setters | OPT.JAVASCRIPT.AvoidReturningValuesFromSetters | AvoidReturningValuesFromSetters:setterからの戻り値の回避 |
低 | Avoid Using Continue | OPT.JAVASCRIPT.AvoidUsingContinue | AvoidUsingContinue:continue文使用の回避 |
低 | Avoid Using Debugger | OPT.JAVASCRIPT.AvoidUsingDebugger | AvoidUsingDebugger:debugger文使用の回避 |
低 | Break Non Empty Switch Clauses | OPT.JAVASCRIPT.BreakNonEmptySwitchClauses | BreakNonEmptySwitchClauses:SwitchCaseの最後の文でのbreak文の使用 |
低 | Default Clause Switch Statements | OPT.JAVASCRIPT.DefaultClauseSwitchStatements | DefaultClauseSwitchStatements:switch文の最後でのdefault句の使用 |
低 | Else In Else If Statement | OPT.JAVASCRIPT.ElseInElseIfStatement | ElseInElseIfStatement:else if文はelse句で終了させること |
低 | Filter For In | OPT.JAVASCRIPT.FilterForIn | FilterForIn:for-in文の本体のフィルタリング |
低 | Function Declarations Within Blocks | OPT.JAVASCRIPT.FunctionDeclarationsWithinBlocks | FunctionDeclarationsWithinBlocks:ブロック内での関数宣言の禁止 |
低 | Labeled Statements | OPT.JAVASCRIPT.LabeledStatements | LabeledStatements:ラベル付き文(ラベルは、for文、while文、およびdo-while文にのみ使用すること) |
低 | One Statement Per Line | OPT.JAVASCRIPT.OneStatementPerLine | OneStatementPerLine:1行に1つのステートメントのみを使用 |
低 | Parent Class Doesnot Reference Child Classes | OPT.JAVASCRIPT.ParentClassDoesnotReferenceChildClasses | ParentClassDoesnotReferenceChildClasses:子クラスのいずれも参照していない親クラス |
低 | Short Circuit If Statements | OPT.JAVASCRIPT.ShortCircuitIfStatements | ShortCircuitIfStatements:短絡演算子によるネストしたif文のマージ |
低 | Too Many Break Or Continue In Loop | OPT.JAVASCRIPT.TooManyBreakOrContinueInLoop | TooManyBreakOrContinueInLoop:各ループにおける複数のbreak文やcontinue文の回避 |
低 | Trailing Comma | OPT.JAVASCRIPT.TrailingComma | TrailingComma:末尾のカンマ(配列やオブジェクトの宣言で、最後の要素の末尾にカンマを使用しないこと) |
低 | Type Casting In Comparations | OPT.JAVASCRIPT.TypeCastingInComparations | TypeCastingInComparations:型のキャストを伴う論理比較演算子の回避 |
低 | Unreachable Code | OPT.JAVASCRIPT.UnreachableCode | UnreachableCode:到達不能コードの検出(return文、break文、continue文、throw文の後には、 } 、case文、またはdefault文が続く必要あり) |
低 | Use Single Quote | OPT.JAVASCRIPT.UseSingleQuote | UseSingleQuote: リテラルでの単一引用符の回避 |
低 | Avoid Mixing Require | OPT.JAVASCRIPT.NODEJS.AvoidMixingRequire | AvoidMixingRequire: require呼び出しと変数の初期化の混在の回避 |
低 | Use Asynchronous Methods | OPT.JAVASCRIPT.UseAsynchronousMethods | UseAsynchronousMethods:非同期メソッドの使用(非同期メソッドにより、Node.jsでの処理速度と堅牢性が向上する) |
低 | Use J S Doc | OPT.JAVASCRIPT.UseJSDoc | UseJSDoc:JSDocを使用した関数の動作の記述 |
低 | Use Module Exports | OPT.JAVASCRIPT.UseModuleExports | UseModuleExports:exportsの代わりのmodule.exportsの使用 |
低 | Isolate Run Blocks | OPT.JAVASCRIPT.ANGULARJS.IsolateRunBlocks | IsolateRunBlocks:runブロックのコードの分離 |
低 | Avoid None View Encapsulation | OPT.JAVASCRIPT.TYPESCRIPT.ANGULAR.AvoidNoneViewEncapsulation | AvoidNoneViewEncapsulation:ViewEncapsulationの設定(コンポーネントのスタイルをアプリケーション全体に適用しないこと) |
低 | Avoid Prefixing Output | OPT.JAVASCRIPT.TYPESCRIPT.ANGULAR.AvoidPrefixingOutput | AvoidPrefixingOutput:Outputプロパティのプレフィックス(「on」というプレフィックス)禁止 |
低 | Never Use History | OPT.JAVASCRIPT.ESTILO.NeverUseHistory | NeverUseHistory:JavaScriptの「history」オブジェクトやナビゲーションベースの位置指定関数の使用禁止 |
低 | Hide Powered By Header | OPT.JAVASCRIPT.HidePoweredByHeader | HidePoweredByHeader:X-PoweredByヘッダーの無効化 |
低 | Password In Comments | OPT.JAVASCRIPT.PasswordInComments | PasswordInComments:コード内でのハードコードされたパスワードやコメント内のパスワードの回避 |
低 | Avoid Using Console For Debugging | OPT.JAVASCRIPT.NODEJS.AvoidUsingConsoleForDebugging | AvoidUsingConsoleForDebugging:console.log()の使用の回避 |
中 | Unsafe Cookie | OPT.JAVASCRIPT.UnsafeCookie | UnsafeCookie:適切なセキュリティプロパティを持つサーバ側のCookieの生成 |
中 | Avoid Overly Permissive Message Posting | OPT.JAVASCRIPT.AvoidOverlyPermissiveMessagePosting | AvoidOverlyPermissiveMessagePosting:クロスドキュメントメッセージの送信制限(過度に許容されるターゲットオリジンでのクロスドキュメントメッセージを投稿しないこと) |
中 | Trust Boundary Violation | OPT.JAVASCRIPT.TrustBoundaryViolation | TrustBoundaryViolation:信頼境界線違反 |
中 | Specify Integrity Attribute | OPT.JAVASCRIPT.JSX.SpecifyIntegrityAttribute | SpecifyIntegrityAttribute: <script>要素と<link>要素におけるintegrity属性の指定 |
中 | Javascript Url | OPT.JAVASCRIPT.REACT.JavascriptUrl | JavascriptUrl:JSXでのjavascript: URLの使用 |
中 | Avoid For With External Control Vars | OPT.JAVASCRIPT.ERRORCOMUN.AvoidForWithExternalControlVars | AvoidForWithExternalControlVars:初期化ブロックでループ制御変数が宣言されていない「for」ループの回避 |
中 | If Without Block | OPT.JAVASCRIPT.ERRORCOMUN.IfWithoutBlock | IfWithoutBlock:if文の波括弧(if文の本文を波括弧で囲むこと) |
中 | Illegal Identifier | OPT.JAVASCRIPT.ERRORCOMUN.IllegalIdentifier | IllegalIdentifier:許可されていない識別子(予約語など)の回避 |
中 | Avoid Alert With Literals | OPT.JAVASCRIPT.ESTILO.AvoidAlertWithLiterals | AvoidAlertWithLiterals:リテラルでのアラートの回避 |
中 | Avoid Multiple Returns | OPT.JAVASCRIPT.ESTILO.AvoidMultipleReturns | AvoidMultipleReturns:複数のreturn文を持つ関数の回避 |
中 | Check Parameters Number In Function | OPT.JAVASCRIPT.ESTILO.CheckParametersNumberInFunction | CheckParametersNumberInFunction:パラメータが多すぎる関数の使用の回避 |
中 | No Style | OPT.JAVASCRIPT.ESTILO.NoStyle | NoStyle:styleプロパティの直接の使用禁止(代わりにCSSクラスを使用すること) |
中 | Avoid Long Calls In Iterations | OPT.JAVASCRIPT.PERFORMANCE.AvoidLongCallsInIterations | AvoidLongCallsInIterations:ループ内での長い呼び出しや参照チェーンの回避 |
中 | No Method Append Child | OPT.JAVASCRIPT.PERFORMANCE.NoMethodAppendChild | NoMethodAppendChild:DOM修正関数の代わりのinnerHTMLの使用 |
中 | Old Use Of Document | OPT.JAVASCRIPT.PORTABILITY.OldUseOfDocument | OldUseOfDocument:documentオブジェクトのW3C標準に準拠していないメソッド/プロパティの回避 |
中 | Avoid Assigning Undefined | OPT.JAVASCRIPT.AvoidAssigningUndefined | AvoidAssigningUndefined:未定義の変数への代入の回避 |
中 | Avoid Comparing With Na N | OPT.JAVASCRIPT.AvoidComparingWithNaN | AvoidComparingWithNaN:条件式におけるNaNとの比較の回避 |
中 | Avoid Magic Numbers | OPT.JAVASCRIPT.AvoidMagicNumbers | AvoidMagicNumbers:数値リテラルの使用の回避 |
中 | Avoid Multiple Statements Per Line | OPT.JAVASCRIPT.AvoidMultipleStatementsPerLine | AvoidMultipleStatementsPerLine:同じ行での複数文指定の回避 |
中 | Avoid Negative Content Lenght | OPT.JAVASCRIPT.AvoidNegativeContentLenght | AvoidNegativeContentLenght:Content-Lengthヘッダにおける負の値設定の回避 |
中 | Avoid Rebinding A Const Variable | OPT.JAVASCRIPT.AvoidRebindingAConstVariable | AvoidRebindingAConstVariable:const変数の再バインドの回避 |
中 | Avoid Too Deep Class Hierarchies | OPT.JAVASCRIPT.AvoidTooDeepClassHierarchies | AvoidTooDeepClassHierarchies:深すぎる階層クラスの回避 |
中 | Avoid Using Parse Int Without Radix | OPT.JAVASCRIPT.AvoidUsingParseIntWithoutRadix | AvoidUsingParseIntWithoutRadix:parseIntの基数指定(parseInt関数を使用する場合は常に基数を指定すること) |
中 | Denial Of Service | OPT.JAVASCRIPT.DenialOfService | DenialOfService:サービス拒否攻撃(攻撃者によって、正当なユーザがプログラムを利用できなくなる可能性) |
中 | Loop Without Block | OPT.JAVASCRIPT.LoopWithoutBlock | LoopWithoutBlock:ループ本文を波括弧で囲む |
中 | Avoid Concatenating Dirname And Filename | OPT.JAVASCRIPT.NODEJS.AvoidConcatenatingDirnameAndFilename | AvoidConcatenatingDirnameAndFilename: __dirnameと __filenameの連結回避(__dirnameと __filenameを他の文字列と連結しないこと) |
中 | Avoid Using New Require | OPT.JAVASCRIPT.NODEJS.AvoidUsingNewRequire | AvoidUsingNewRequire:モジュールインポート時のモジュールコンストラクタへの呼び出しの回避 |
中 | Callbacks Always Pass Error Parameter First | OPT.JAVASCRIPT.NODEJS.CallbacksAlwaysPassErrorParameterFirst | CallbacksAlwaysPassErrorParameterFirst:コールバック関数の最初の引数(コールバック関数を使用する際に、最初の引数にエラーオブジェクトを渡すことが必要) |
中 | Ensure Callbacks Are Returned | OPT.JAVASCRIPT.NODEJS.EnsureCallbacksAreReturned | EnsureCallbacksAreReturned:コールバックでのreturn文の使用 |
中 | Use Gzip Compression | OPT.JAVASCRIPT.NODEJS.UseGzipCompression | UseGzipCompression:Expressフレームワーク使用時のGZIP圧縮の使用 |
中 | Always Use Strict | OPT.JAVASCRIPT.AlwaysUseStrict | AlwaysUseStrict:use strictの使用(コーディングの特定の悪習を防ぐ) |
中 | Save A Reference To This | OPT.JAVASCRIPT.SaveAReferenceToThis | SaveAReferenceToThis:this変数の参照の保存(this変数はカプセル化ではなくコンテキストに基づいて決定されること) |
中 | Validate Callbacks | OPT.JAVASCRIPT.ValidateCallbacks | ValidateCallbacks:関数のみ呼び出し可能 |
中 | Define One Component Per File | OPT.JAVASCRIPT.ANGULARJS.DefineOneComponentPerFile | DefineOneComponentPerFile:1ファイルあたり1つのAngularJSコンポーネントのみを定義 |
中 | Handle Route Errors | OPT.JAVASCRIPT.ANGULARJS.HandleRouteErrors | HandleRoutErrors:全てのルーティングエラーの一元管理 |
中 | Use Angular Wrappers | OPT.JAVASCRIPT.ANGULARJS.UseAngularWrappers | UseAngularWrappers:共通のオブジェクトおよび関数へのAngularJSラッパーの使用 |
中 | Avoid Casting I Object Literals | OPT.JAVASCRIPT.TYPESCRIPT.AvoidCastingIObjectLiterals | AvoidCastingIObjectLiterals:オブジェクトリテラルのキャストの回避 |
中 | No Return Type Any | OPT.JAVASCRIPT.TYPESCRIPT.NoReturnTypeAny | NoReturnTypeAny:関数の戻り値型としての"any"の使用禁止 |
中 | Review Non Null Assertions | OPT.JAVASCRIPT.TYPESCRIPT.ReviewNonNullAssertions | ReviewNonNullAssertions:NULL非アサーションの確認 |
中 | Too Many Classes Per File | OPT.JAVASCRIPT.TYPESCRIPT.TooManyClassesPerFile | TooManyClassesPerFile:ファイルごとの過剰なクラス数の回避 |
中 | Use Primitive Types | OPT.JAVASCRIPT.TYPESCRIPT.UsePrimitiveTypes | UsePrimitiveTypes:プリミティブ型の直接使用(プリミティブ型をオブジェクトでラップしないこと) |
中 | Use Type Alias | OPT.JAVASCRIPT.TYPESCRIPT.UseTypeAlias | UseTypeAlias:複雑な型を使用する場合の型エイリアスの使用 |
中 | Avoid Aliasing Input Output | OPT.JAVASCRIPT.TYPESCRIPT.ANGULAR.AvoidAliasingInputOutput | AvoidAliasingInputOutput:InputデコレータとOutputデコレータのエイリアス宣言の回避 |
中 | Invalid Pipe Implementation | OPT.JAVASCRIPT.TYPESCRIPT.ANGULAR.InvalidPipeImplementation | InvalidPipeImplementation:Angular Pipesの完全な実装 |
中 | Naming Conventions | OPT.JAVASCRIPT.TYPESCRIPT.ANGULAR.NamingConventions | NamingConventions:Angularの命名規則の遵守 |
中 | No Parameter Attribute Decorator | OPT.JAVASCRIPT.TYPESCRIPT.ANGULAR.NoParameterAttributeDecorator | NoParameterAttributeDecorator:コンストラクタパラメータへの属性デコレータ付与の禁止 |
中 | Use Life Cycle Interface | OPT.JAVASCRIPT.TYPESCRIPT.ANGULAR.UseLifeCycleInterface | UseLifeCycleInterface:ライフサイクルフックインターフェイスの使用 |
中 | Dangerously Set Inner Html | OPT.JAVASCRIPT.REACT.DangerouslySetInnerHtml | DangerouslySetInnerHtml:ReactコンポーネントにおけるdangerouslySetInnerHTMLプロパティの使用禁止 |
中 | Find Dom Node | OPT.JAVASCRIPT.REACT.FindDomNode | FindDomNode:ReactDOM.findDOMNode()の呼び出し禁止 |
中 | Avoid Transfer Values Local Session Storage | OPT.JAVASCRIPT.AvoidTransferValuesLocalSessionStorage | AvoidTransferValuesLocalSessionStorage:localStorageとsessionStorage間のデータ転送の回避(機密情報漏洩の可能性があるため) |
中 | Easy To Guest Database Name | OPT.JAVASCRIPT.EasyToGuestDatabaseName | EasyToGuestDatabaseName:推測しやすいWeb SQLデータベース名の使用禁止 |
中 | Hijacking Ad Hoc Ajax | OPT.JAVASCRIPT.HijackingAdHocAjax | HijackingAdHocAjax:JavaScriptによる機密データ転送の禁止 |
中 | Information Exposure Through Error Message | OPT.JAVASCRIPT.InformationExposureThroughErrorMessage | InformationExposureThroughErrorMessage:エラーメッセージによる機密情報の露出の回避 |
中 | Privacy Violation | OPT.JAVASCRIPT.PrivacyViolation | PrivacyViolation:個人情報の漏洩(プライバシー侵害) |
中 | Sensitive Info In Configuration File | OPT.JAVASCRIPT.SensitiveInfoInConfigurationFile | SensitiveInfoInConfigurationFile:設定ファイルにおける機密情報の取り扱い |
中 | Autocomplete On For Sensitive Fields | OPT.JAVASCRIPT.JSX.AutocompleteOnForSensitiveFields | AutocompleteOnForSensitiveFields:オートコンプリート機能の無効化(機密性の高いフォームフィールドで、オートコンプリート機能が有効になっている) |
中 | Insecure Randomness | OPT.JAVASCRIPT.InsecureRandomness | InsecureRandomnes:安全でない標準的な擬似乱数生成器 |