Skip to main content

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:安全でない標準的な擬似乱数生成器