Skip to main content

COBOLのスキャンルール

 

Contrast Scanでは、COBOLに対して以下のルールをサポートしています。

深刻度

Contrastルール

エンジンルールID

説明

重大

Avoid Access Not Indexed Table Big

OPT.COBOL.AvoidAccessNotIndexedTableBig

AvoidAccessNotIndexedTableBig:大規模テーブルへのアクセスの検出

重大

Avoid Access Without Index Big

OPT.COBOL.AvoidAccessWithoutIndexBig

AvoidAccessWithoutIndexBig:大きなテーブルサイズ(ページ数 >{})でWHERE句にインデックスフィールドが指定されていないアクセスを検出

重大

Avoid As In SQL Sentence

OPT.COBOL.AvoidAsInSqlSentence

AvoidAsInSqlSentence:AS句をを使用して定義された一時テーブルを含む文の回避

重大

Avoid Call Other Section Paragraphs

OPT.COBOL.AvoidCallOtherSectionParagraphs

AvoidCallOtherSectionParagraphs:他のセクションからの段落の呼び出しの回避

重大

Avoid Join With Cost Access

OPT.COBOL.AvoidJoinWithCostAccess

AvoidJoinWithCostAccess:テーブルのいずれかへの高コストなアクセス(R0, I0, MX)を含むJOIN句の回避

重大

Avoid Paragraphs Out Of Sections

OPT.COBOL.AvoidParagraphsOutOfSections

AvoidParagraphsOutOfSections:セクション外の段落の配置の禁止

重大

Check SQL Code After Sequence

OPT.COBOL.CheckSqlCodeAfterSequence

CheckSqlCodeAfterSequence:NEXT VALUEかPREVIOUS VALUEを持つSEQUENCEオブジェクトのリターンコード(SQLCODE -359 および/または -845)の確認

重大

Check SQLcode When Rowset

OPT.COBOL.CheckSqlcodeWhenRowset

CheckSqlcodeWhenRowset:行数とリターンコード(SQLCODE)のチェック

重大

Check Value Occur

OPT.COBOL.CheckValueOccur

CheckValueOccur:MULTIROW使用時の指定行数のチェック(MULTIROWを使用する場合、FOR n ROWSオプション内の「n 」の値は、行セットを受け取るテーブルのOCCURS句の値以下であることが必要)

重大

Call Paragraph

OPT.COBOL.COBBP.CallParagraph

CallParagraph:呼び出されていない段落/セクション

重大

N D E S

OPT.COBOL.COD_COBOL.NDES

NDES:手続き部(PROCEDURE DIVISION)を分割しないこと

重大

N R

OPT.COBOL.COD_COBOL.NR

NR:EXEC CICS文内でのRETURNの使用禁止

重大

Avoid Collisions In Procedure Names

OPT.COBOL.FIA_COBOL.AvoidCollisionsInProcedureNames

AvoidCollisionsInProcedureNames:セクション名や段落名の重複回避

重大

Close Open Files

OPT.COBOL.FIA_COBOL.CloseOpenFiles

CloseOpenFiles:開かれた全てのファイルがクローズされたかの確認

重大

Close Open Input Output Files

OPT.COBOL.FIA_COBOL.CloseOpenInputOutputFiles

CloseOpenInputOutputFiles:開かれた全ての(入力または出力)ファイルがクローズされたかの確認

重大

Open Declared Files

OPT.COBOL.FIA_COBOL.OpenDeclaredFiles

OpenDeclaredFiles:宣言された全てのファイルがオープンされているかの確認

重大

Read Or Write Open Files

OPT.COBOL.FIA_COBOL.ReadOrWriteOpenFiles 

ReadOrWriteOpenFiles:開かれた全てのファイルが読み書きされているかの確認

重大

Last Rows Invalid Checks

OPT.COBOL.LastRowsInvalidChecks

LastRowsInvalidChecks:実行できないSQLCODE値の制御の検出

重大

Last Rows Valid Checks

OPT.COBOL.LastRowsValidChecks

LastRowsValidChecks:SQLCODE値の制御が必要

重大

M L S 

OPT.COBOL.MAN_COBOL.MLS

MLS:COBOLプログラムの行数制限(最大行数を超えないようにする)

重大

M S

OPT.COBOL.MAN_COBOL.MS

MS:1プログラムごとに1つプログラム出口点(STOPまたはGOBACK)の使用

重大

D C

OPT.COBOL.RG_COBOL.DC

DC:DIVIDE文または除算を指定したやCOMPUTE文にて、ON SIZE ERROR句を追加してゼロ除算の可能性を制御

重大

F D S N

OPT.COBOL.RG_COBOL.FDSN

FDSN:レコード記述子のないFD句の回避

重大

L R S

OPT.COBOL.RG_COBOL.LRS

LRS:ファイル記述項(FD)におけるLABEL RECORD IS STANDARDの使用

重大

N L F

OPT.COBOL.RG_COBOL.NLF

NLF:行数が多すぎるプログラムの回避

重大

N U R 

OPT.COBOL.RG_COBOL.NUR

NUR:REPORT句の使用禁止

重大

Avoid Alter

OPT.COBOL.SEC.AvoidAlter

AvoidAlter:ALTER文の回避

重大

Cobol Access Control DLI

OPT.COBOL.SEC.Cobol_AccessControlDLI

Cobol_AccessControlDLI:DL/I(IMS)クエリで使用されるユーザ入力の確認

重大

Cobol Access Control Database

OPT.COBOL.SEC.Cobol_AccessControlDatabase

Cobol_AccessControlDatabase:ユーザ制御のSQL主キーによる認可のバイパス

重大

Dynamic Storage Leak Rule

OPT.COBOL.SEC.DynamicStorageLeakRule

DynamicStorageLeakRule:動的ストレージ領域リークの可能性

重大

Illegal Values For Pointers

OPT.COBOL.SEC.IllegalValuesForPointers

IllegalValuesForPointers:初期化されていないポインタへのアクセス

重大

Path Traversal

OPT.COBOL.SEC.PathTraversal

PathTraversal:I/O操作で使用するパス名(ファイルまたはディレクトリ)の一部として、無害化されていないユーザ制御入力を使用しない

重大

Pointer Arithmetic

OPT.COBOL.SEC.PointerArithmetic

PointerArithmetic:COBOLでのポインタ演算の回避

重大

Avoid Duplicated Queries

OPT.COBOL.SQL_COBOL.AvoidDuplicatedQueries

AvoidDuplicatedQueries:SQL文の重複の回避

重大

Cursor For Update Where Current

OPT.COBOL.SQL_COBOL.CursorForUpdateWhereCurrent

CursorForUpdateWhereCurrent:カーソルがFOR UPDATEで宣言されている場合のDELETEおよびUPDATEにおける、WHERE CURRENT句の使用

重大

Detect Unaware Cross Joins

OPT.COBOL.SQL_COBOL.DetectUnawareCrossJoins

DetectUnawareCrossJoins:クエリにおける「意図しない」デカルト積の発生の回避

重大

Dont Select Known Fields

OPT.COBOL.SQL_COBOL.DontSelectKnownFields

DontSelectKnownFields:SELECTクエリにおけるWHERE句で使用するフィールド取得の禁止

重大

Fetch And Declare Same Fields

OPT.COBOL.SQL_COBOL.FetchAndDeclareSameFields

FetchAndDeclareSameFields:カーソルフィールド数の一致(DECLARE CURSOR文で指定した取得するフィールド数はFETCH文で指定したフィールド数と一致している必要あり)

重大

Avoid Correlated Sub Selects

OPT.COBOL.SQL_COBOL.AvoidCorrelatedSubSelects

AvoidCorrelatedSubSelects:外側のSELECT文で定義した列を使用するネストしたSELECT文の回避

重大

Cobol Access Control MQ

OPT.COBOL.SEC.Cobol_AccessControlMQ

Cobol_AccessControlMQ:MQSeries記述子のフィールドにおけるユーザ入力の禁止

重大

Cobol Process Control

OPT.COBOL.SEC.Cobol_ProcessControl

Cobol_ProcessControl:ユーザ入力によって名前が制御される可能性のあるサブルーチンの呼び出しの回避

重大

Cobol Resource Injection

OPT.COBOL.SEC.Cobol_ResourceInjection

Cobol_ResourceInjection:リソース識別子の不適切な制御 (リソースインジェクション)

重大

Cross Site Scripting

OPT.COBOL.SEC.CrossSiteScripting

CrossSiteScripting:Webページ生成中の入力の不適切な無害化(クロスサイトスクリプティング)

重大

OS Command Injection

OPT.COBOL.SEC.OSCommandInjection

OSCommandInjection:OSコマンドで使用する特殊要素の不適切な無害化(OSコマンドインジェクション)

重大

SQL Injection

OPT.COBOL.SEC.SqlInjection

SqlInjection:SQLコマンドで使用する特殊要素の不適切な無害化(SQLインジェクション)

重大

Cobol Hardcoded Password

OPT.COBOL.SEC.Cobol_HardcodedPassword

Cobol_HardcodedPassword:ハードコードされたパスワードの検出(ハードコードされたパスワードは、システムのセキュリティを脅かす可能性があり、容易に修復できない)

重大

HTTP Header Manipulation

OPT.COBOL.SEC.HTTPHeaderManipulation

HTTPHeaderManipulation:HTTPレスポンスヘッダの未検証データ

重大

Check Crypto Return Code

OPT.COBOL.SEC.CheckCryptoReturnCode

CheckCryptoReturnCode:暗号化処理のリターンコードの検証

Avoid XML

OPT.COBOL.AvoidXML

AvoidXML:COBOLプログラムにおけるXML使用(読み取りおよび解析)の回避

Avoid XML Generate

OPT.COBOL.AvoidXMLGenerate

AvoidXMLGenerate:COBOLプログラムにおけるXML生成の回避

Link Xctl With Commarea Length

OPT.COBOL.CICS.LinkXctlWithCommareaLength

LinkXctlWithCommareaLength:CICS LINK/XCTL/RETURNコマンドにおけるCOMMAREAによるLENGTHの指定

Use Cics Explicit Error Handling

OPT.COBOL.CICS.UseCicsExplicitErrorHandling

UseCicsExplicitErrorHandling:CICS コマンドにおけるRESP/NOHANDLEを使用したエラー処理と結果コードのテスト

I S E

OPT.COBOL.COBBP.ISE

ISE:IF文のEND-IFによるクローズ

R I B

OPT.COBOL.COBBP.RIB

RIB:FD(ファイル記述項)におけるBLOCK CONTAINS 0 RECORDSの指定

C O B N O M Call Naming Convention

OPT.COBOL.COBNOM_CallNamingConvention

COBNOM_CallNamingConvention:CALL文の命名規則

Check File Status After I O

OPT.COBOL.FIA_COBOL.CheckFileStatusAfterIO

CheckFileStatusAfterIO:I/O操作後のFILE STATUSのチェック

No Stmt After Program Termination

OPT.COBOL.FIA_COBOL.NoStmtAfterProgramTermination

NoStmtAfterProgramTermination:STOP RUN / GOBACK / EXIT PROGRAM終了後のステートメント禁止

Use Field W S

OPT.COBOL.FIA_COBOL.UseFieldWS

UseFieldWS:WORKING-STORAGEで宣言された全てのフィールドが使用されているかの確認

W O E V

OPT.COBOL.FIA_COBOL.WOEV

WOEV:EVALUATE文におけるWHEN OTHERの使用

C N P

OPT.COBOL.MAN_COBOL.CNP

CNP:段落や手続きセクションでのコメントの記述

E I F A

OPT.COBOL.MAN_COBOL.EIFA

EIFA:ネストが深すぎるIF文の回避

I N V F

OPT.COBOL.MAN_COBOL.INVF

INVF:統合が複雑なプログラムの回避

M N N

OPT.COBOL.MAN_COBOL.MNN

MNN:正規化されていないメッセージコードを含むDISPLAY命令の検出

N S T

OPT.COBOL.MAN_COBOL.NST

NST:COBOLプログラムにおける実行文の数の制限

P COM

OPT.COBOL.MAN_COBOL.PCOM

PCOM:コードのコメント率が低いプログラムの回避

P R C D

OPT.COBOL.MAN_COBOL.PRCD

PRCD:ネストが深いフロー制御文の回避

R A C C

OPT.COBOL.MAN_COBOL.RACC

RACC:循環的複雑度の高いプログラム/ルーチンの回避

S COM

OPT.COBOL.MAN_COBOL.SCOM

SCOM:コメント率が低いセクションの回避

Not Used Fields

OPT.COBOL.NotUsedFields

NotUsedFields:SELECTまたはFETCH文で取得された未使用のフィールド

H I F I

OPT.COBOL.OYR_COBOL.HIFI

HIFI:ファンインの高いプロシージャの回避

H I F O

OPT.COBOL.OYR_COBOL.HIFO

HIFO:ファンアウトの高いプロシージャの回避

Read Followed By At End Or Invalid Key

OPT.COBOL.ReadFollowedByAtEndOrInvalidKey

ReadFollowedByAtEndOrInvalidKey:AT ENDまたはINVALID KEYを使用しないREAD文

F C T

OPT.COBOL.RG_COBOL.FCT

FCT:カウンターの定義(プログラムには、プログラム内で宣言されているテーブルとファイルの数以上のカウンターが必要)

F S R

OPT.COBOL.RG_COBOL.FSR

FSR:FDの定義(FDはLABEL RECORD STANDARD、0レコードブロック、および固定または可変の記録モードとして定義することが必要)

G O T O

OPT.COBOL.RG_COBOL.GOTO

GOTO:プログラムロジックでのGO TO文の回避

N T P

OPT.COBOL.RG_COBOL.NTP

NTP:PERFORM ... THRUの使用禁止

Call Parameter Mismatch

OPT.COBOL.SEC.CallParameterMismatch

CallParameterMismatch:CALLのパラメータ不一致

Avoid Declared Unopened Cursors

OPT.COBOL.SQL_COBOL.AvoidDeclaredUnopenedCursors

AvoidDeclaredUnopenedCursors:カーソルを宣言した場合のオープン(OPEN文でカーソルを開く必要あり)

Avoid Included Tables And Not Accessed

OPT.COBOL.SQL_COBOL.AvoidIncludedTablesAndNotAccessed

AvoidIncludedTablesAndNotAccessed:プログラム本体における未使用のincludeテーブル定義の回避

Avoid Opened Unclosed Cursor

OPT.COBOL.SQL_COBOL.AvoidOpenedUnclosedCursors

AvoidOpenedUnclosedCursors:カーソルをオープンした場合のクローズ(CLOSE文でカーソルを閉じる必要あり)

Avoid Opened Unused Cursors

OPT.COBOL.SQL_COBOL.AvoidOpenedUnusedCursors

AvoidOpenedUnusedCursors:カーソルをオープンした場合の使用(カーソルを使用してデータを取得する必要あり)

Check SQLcode Or Indicator Vars In Select

OPT.COBOL.SQL_COBOL.CheckSqlcodeOrIndicatorVarsInSelect

CheckSqlcodeOrIndicatorVarsInSelect:NULL値を適切にチェック(SQL文でホスト変数を使用するか、SQLCODEを確認)

Control SQLcode After Exec SQL

OPT.COBOL.SQL_COBOL.ControlSqlcodeAfterExecSql

ControlSqlcodeAfterExecSq:各EXEC SQL文後のSQLCODE値のチェック

No Current Clause

OPT.COBOL.SQL_COBOL.NoCurrentClause

NoCurrentClause:CURRENT句を含むSQLクエリの使用制限(負荷が大きいため、必要な場合にのみ使用する必要あり)

Optimize Varchar Moves

OPT.COBOL.SQL_COBOL.OptimizeVarcharMoves

OptimizeVarcharMoves:VARCHAR列のデータサイズの制御

Avoid Union

OPT.COBOL.SQL_COBOL.AvoidUnion

AvoidUnion:UNIONによる選択の回避

Use The As Keyword

OPT.COBOL.SQL_COBOL.UseTheAsKeyword

UseTheAsKeyword:テーブルのエイリアス設定時におけるASキーワードの使用

Avoid Numeric References In By Clauses

OPT.COBOL.SQL_COBOL.AvoidNumericReferencesInByClauses

AvoidNumericReferencesInByClauses:* BY句における数値インデックスによる列参照の禁止

No Accept From Untrusted Source

OPT.COBOL.SEC.NoAcceptFromUntrustedSource

NoAcceptFromUntrustedSource:ACCEPT文を使用して信頼できないソースからのデータ入力の禁止

No Active Debug

OPT.COBOL.SEC.NoActiveDebug

NoActiveDebug:デバッグ情報による情報の漏洩

Weak Crypto Hash

OPT.COBOL.SEC.WeakCryptoHash

WeakCryptoHash:脆弱な暗号化ハッシュのデータの完全性の欠如

情報

Access In Loop Not Used Index

OPT.COBOL.AccessInLoopNotUsedIndex

AccessInLoopNotUsedIndex:ループ内でインデックスを使用しない中規模テーブル(ページ数>{})へのアクセス検出

情報

Avoid Accept From Console

OPT.COBOL.AvoidAcceptFromConsole

AvoidAcceptFromConsole:ACCEPT FROM CONSOLEの使用禁止

情報

Avoid Access Not Indexed Table Small

OPT.COBOL.AvoidAccessNotIndexedTableSmall

AvoidAccessNotIndexedTableSmall:インデックスのない小規模テーブル(ページ数 < {})へのアクセス回避

情報

Avoid Copy Procedure Division

OPT.COBOL.AvoidCopyProcedureDivision

AvoidCopyProcedureDivision:手続き部(PROCEDURE DIVISION)におけるCOPYの使用禁止

情報

Avoid Distinct

OPT.COBOL.AvoidDistinct

AvoidDistinct:DISTINCT演算子の回避

情報

Avoid Divide0

OPT.COBOL.AvoidDivide0

AvoidDivide0:0による除算の回避

情報

Avoid If Numeric Alphabetic

OPT.COBOL.AvoidIfNumericAlphabetic

AvoidIfNumericAlphabetic:IF NUMERICとIF ALPHABETICの使用回避

情報

Avoid Include Procedure Division

OPT.COBOL.AvoidIncludeProcedureDivision

AvoidIncludeProcedureDivision:手続き部(PROCEDURE DIVISION)におけるINCLUDEの使用禁止

情報

Avoid Mix SQL Code

OPT.COBOL.AvoidMixSqlCode

AvoidMixSqlCode:制御文におけるプログラム変数とリターンコード(SQL-CODE)の分離

情報

Avoid No Calified Vars

OPT.COBOL.AvoidNoCalifiedVars

AvoidNoCalifiedVars:IDが繰り返される変数の検出

情報

Avoid No Rewind In Sequential Files

OPT.COBOL.AvoidNoRewindInSequentialFiles

AvoidNoRewindInSequentialFiles:順次ファイルにおけるNO REWIND句の使用禁止

情報

Avoid Recover Equal Fields

OPT.COBOL.AvoidRecoverEqualFields

AvoidRecoverEqualFields:等価条件で条件付けされたフィールドの回復の回避

情報

Avoid Repeat Calls

OPT.COBOL.AvoidRepeatCalls

AvoidRepeatCalls:同じルーチンの複数回の呼び出し回避

情報

Avoid Search Small Working

OPT.COBOL.AvoidSearchSmallWorking

AvoidSearchSmallWorking:要素が50未満のWORKING-STORAGEテーブルの検索におけるSEARCH文の使用

情報

Avoid Sentence Acording Size Table Small

OPT.COBOL.AvoidSentenceAcordingSizeTableSmall

AvoidSentenceAcordingSizeTableSmall:小規模テーブル(ページ数 < {})に対するステートメントの検出

情報

Change Cursor To Select

OPT.COBOL.ChangeCursorToSelect

ChangeCursorToSelect:カーソルのSELECT文への変換(定義されたカーソルをSELECT文に変換できる可能性あり)

情報

Check88 Vars

OPT.COBOL.Check88Vars

Check88Vars:条件文で使用されている変数に対するレベル番号88の使用

情報

Check Cols Not Modify

OPT.COBOL.CheckColsNotModify

CheckColsNotModify:UPDATE文の変更列制限(UPDATE文に値が変更されていない列を含めないこと)

情報

Check Complete Insert

OPT.COBOL.CheckCompleteInsert

CheckCompleteInsert:INSERT文の完全性チェック(INSERT文は、DECLARE文で定義された全ての変数を同じ順序で記述する必要あり)

情報

Check Cursor For Update

OPT.COBOL.CheckCursorForUpdate

CheckCursorForUpdate:カーソル更新時の列の一致(FOR UPDATE句で取得される列は、WHERE CURRENT OFのSET句で指定されている列と一致する必要あり)

情報

Check Delete For Update

OPT.COBOL.CheckDeleteForUpdate

CheckDeleteForUpdate:DELETE文のWHERE CURRENT OF句の使用(カーソルを使用している場合に、DELETE WHERE CURRENT OFで行を削除するには、FOR UPDATE句に単一の列を指定する必要あり)

情報

Check Fetch And Cursor

OPT.COBOL.CheckFetchAndCursor

CheckFetchAndCursor:FETCH文とカーソル宣言の整合性チェック(FETCH文には、カーソル宣言文と同じ列を同じ順序で指定する必要あり)

情報

Check File Operations

OPT.COBOL.CheckFileOperations

CheckFileOperations:ファイル操作のチェック(プログラム内でOPEN、READ、WRITE操作を複数回使用しないこと)

情報

Check Filestatus After File Access

OPT.COBOL.CheckFilestatusAfterFileAccess

CheckFilestatusAfterFileAccess:各ファイルアクセス後のFILE STATUS変数のチェック

情報

Check List Prefetch

OPT.COBOL.CheckListPrefetch

CheckListPrefetch:DB2アクセスにおけるLIST PREFETCHの検出

情報

Check Type Operations

OPT.COBOL.CheckTypeOperations

CheckTypeOperations:算術演算におけるフィールドのデータ型と長さのチェック(算術演算に関与するフィールドは、COMPまたはCOMP-3として定義され、同じ長さであることが必要)

情報

Check Updt For Updt

OPT.COBOL.CheckUpdtForUpdt

CheckUpdtForUpdt:UPDATE文とFOR UPDATE句のチェック(UPDATE文で更新される列は、FOR UPDATE句で宣言された列と同じであることが必要)

情報

Check Working Structure

OPT.COBOL.CheckWorkingStructure

CheckWorkingStructure:作業場所節テーブルの定義位置(作業場所節テーブルは、作業場所節の末尾で、カーソル宣言の前に定義することが必要)

情報

C S I M

OPT.COBOL.COBBP.CSIM

CSIM:比較記号の使用回避(対応する名前を使用すること)

情報

S O C

OPT.COBOL.COBBP.SOC

SOC:ファイルごとに1つのOPEN/CLOSE

情報

N O Don't use masterpage files

OPT.COBOL.COD_COBOL.NOMP

NOMP:段落名のプレフィックスの付与(段落名にユーザが指定した接頭辞をつけることが必要)

情報

N O M S

OPT.COBOL.COD_COBOL.NOMS

NOMS:手続きセクション名の命名規則の遵守

情報

N P A R

OPT.COBOL.COD_COBOL.NPAR

NPAR:段落名の命名規則の遵守

情報

N V W S

OPT.COBOL.COD_COBOL.NVWS

NVWS:WORKING-STORAGEの変数/定数の名前におけるユーザ指定のプレフィックスの付与

情報

Cols Should Be Used

OPT.COBOL.ColsShouldBeUsed

ColsShouldBeUsed:カーソル列の使用(WITH ROWSET POSITIONINGで定義されたカーソルのSELECTで宣言された全ての列は、後でプログラム内で使用することが必要)

情報

Control Num Rows

OPT.COBOL.ControlNumRows

ControlNumRows:行セットサイズの制限(MULTIROWオプションを使用する場合、行セットのサイズは 200行を超えないこと)

情報

Count Valid Lines

OPT.COBOL.CountValidLines

CountValidLines:プログラムの行数制限(行数が一定数以下の小規模なプログラムを推奨)

情報

Cursors At The End Of Working

OPT.COBOL.CursorsAtTheEndOfWorking

CursorsAtTheEndOfWorking:SQLにおけるNULL標識の定義(SQLのNULL標識変数はPIC S9(4)COMPとして宣言すること)

情報

Display At End

OPT.COBOL.DisplayAtEnd

DisplayAtEnd:DISPLAYの使用は、プログラムの終了または ABENDによってのみ許可

情報

Do Not Include SQLca Without Db2

OPT.COBOL.DoNotIncludeSqlcaWithoutDb2

DoNotIncludeSqlcaWithoutDb2:プログラムにDB2アクセスがない場合のSQLCAの除外

情報

Do Not Use Comp2

OPT.COBOL.DoNotUseComp2

DoNotUseComp2:COMP-2の使用禁止

情報

Do Not Use Dclgen At Level01

OPT.COBOL.DoNotUseDclgenAtLevel01

DoNotUseDclgenAtLevel01:レベル01でのDCLGENの使用禁止

情報

Do Not Use Filler At Level01

OPT.COBOL.DoNotUseFillerAtLevel01

DoNotUseFillerAtLevel01:レベル01でのFILLERの使用禁止

情報

Do Not Use Linage Clause

OPT.COBOL.DoNotUseLinageClause

DoNotUseLinageClause:LINAGE節の使用禁止

情報

Do Not Use Many Files

OPT.COBOL.DoNotUseManyFiles

DoNotUseManyFiles:ファイル数の制限(プログラム内で10個以上のファイルを使用しないこと)

情報

Do Not Use Select To Check A Row

OPT.COBOL.DoNotUseSelectToCheckARow

DoNotUseSelectToCheckARow:SELECT/FETCHによる行存在確認の回避(後で読み取りまたは更新するために、SELECT/ FETCHを使用して行の存在を確認しないこと)

情報

Do Not Use Static Calls Routines

OPT.COBOL.DoNotUseStaticCallsRoutines

DoNotUseStaticCallsRoutines:ルーチンの静的な呼び出し禁止

情報

Duplicated Data Access

OPT.COBOL.DuplicatedDataAccess

DuplicatedDataAccess:重複したSQLアクセスの検出

情報

B T A

OPT.COBOL.FIA_COBOL.BTA

BTA:ループ内でのTEST AFTERの使用禁止

情報

C E R M

OPT.COBOL.FIA_COBOL.CERM

CERM:MOVE文の転記元と転記先の型・長さの調整

情報

D E C P

OPT.COBOL.FIA_COBOL.DECP

DECP:DECIMAL POINT IS COMMAの指定が必要

情報

I I N I

OPT.COBOL.FIA_COBOL.IINI

IINI:INITIALIZEによる変数の初期化

情報

M E R G

OPT.COBOL.FIA_COBOL.MERG

MERG:MERGE文の回避

情報

N OS R

OPT.COBOL.FIA_COBOL.NOSR

NOSR:STOP RUNの代わりのGOBACKの使用

情報

File Without Filestatus

OPT.COBOL.FileWithoutFilestatus

FileWithoutFilestatus:FILESTATUSのないファイル定義、またはFILESTATUSの誤った定義

情報

Group Open And Close

OPT.COBOL.GroupOpenAndClose

GroupOpenAndClose:ファイルのオープン/クローズ処理のグループ化(ファイルのオープンとクローズは、1つのOPEN文とCLOSE文にまとめて記述すること)

情報

Incorrect Indicator Defined

OPT.COBOL.IncorrectIndicatorDefined

IncorrectIndicatorDefined:誤ったNULL標識の定義(SQLのNULL標識変数はPIC S9(4)COMPとして宣言すること)

情報

Initialize Var Level01

OPT.COBOL.InitializeVarLevel01

InitializeVarLevel01:レベル01変数の初期化(レベル01変数にはNITIALIZEを使用することを推奨)

情報

C I N W

OPT.COBOL.MAN_COBOL.CINW

CINW:WORKING-STORAGE変数に対する標準命名の使用

情報

C M F D

OPT.COBOL.MAN_COBOL.CMFD

CMFD:FD(ファイル記述項)の前に、ファイルの目的とエンコードされた情報を説明するコメントの追加が必要

情報

E D P

OPT.COBOL.MAN_COBOL.EDP

EDP:N行を超えるプログラム記述の回避

情報

I D O P

OPT.COBOL.MAN_COBOL.IDOP

IDOP:命令オペランドの適切なインデント

情報

I I T

OPT.COBOL.MAN_COBOL.IIT

IIT:COBOLテーブルの接頭辞とインデックスの接尾辞の追加

情報

I R T

OPT.COBOL.MAN_COBOL.IRT

IRT:構造化テーブルとレコードの命名規則の遵守

情報

L F D

OPT.COBOL.MAN_COBOL.LFD

LFD:ファイル記述項(FD)の間に置く空白行

情報

L I S E

OPT.COBOL.MAN_COBOL.LISE

LISE:長すぎる手続きセクションの回避

情報

L P R E

OPT.COBOL.MAN_COBOL.LPRE

LPRE:パラグラフ名の長さの制限(パラグラフ名の長さが一定の範囲内であること)

情報

L T E R

OPT.COBOL.MAN_COBOL.LTER

LTER:コードには大文字を使用

情報

M N M X

OPT.COBOL.MAN_COBOL.MNMX

MNMX:コードには大文字を使用、コメントには小文字を使用

情報

M S E C

OPT.COBOL.MAN_COBOL.MSEC

MSEC:手続きセクションが多すぎるプログラムの回避

情報

N C M A

OPT.COBOL.MAN_COBOL.NCMA

NCMA:DISPLAY文のパラメータ区切りでのカンマ使用の回避

情報

N C S W

OPT.COBOL.MAN_COBOL.NCSW

NCSW:ネストが深いEVALUATE文の回避

情報

N R E G

OPT.COBOL.MAN_COBOL.NREG

NREG:FD(ファイル記述項)レコードの命名規則

情報

O V W S

OPT.COBOL.MAN_COBOL.OVWS

OVWS:WORKING-STORAGE変数の順序(WORKING-STORAGEに変数を宣言する際は特定の順序に従うことが必要)

情報

P D E S

OPT.COBOL.MAN_COBOL.PDES

PDES:PROGRAM-IDの前でのコードコメントによるプログラムの文書化

情報

P I F

OPT.COBOL.MAN_COBOL.PIF

PIF:IFまたはELSEブロックの文数の制限

情報

P I N I

OPT.COBOL.MAN_COBOL.PINI

PINI:手続き部(PROCEDURE DIVISION)の最初の段落における標準的な命名規則の遵守

情報

P L I N

OPT.COBOL.MAN_COBOL.PLIN

PLIN:PIC句の適切な整列

情報

P P A R

OPT.COBOL.MAN_COBOL.PPAR

PPAR:段落の終わり(段落はビリオド1つだけの空行で終わること)

情報

P R I D

OPT.COBOL.MAN_COBOL.PRID

PRID:PROGRAM-IDはプログラム名(拡張子を除くファイル名)と同じであることが必要

情報

P W E

OPT.COBOL.MAN_COBOL.PWE

PWE:ネストした行が多いEVALUATE ... WHENの代わりのPERFORMの使用

情報

V L I N

OPT.COBOL.MAN_COBOL.VLIN

VLIN:データ宣言の各レベルのVALUE句のリテラルの整列

情報

No Optional In File Control

OPT.COBOL.NoOptionalInFileControl

NoOptionalInFileControl:FILE-CONTROLにおけるOPTIONAL句の使用禁止

情報

Obligatory End Read

OPT.COBOL.ObligatoryEndRead

ObligatoryEndRead:READ文のEND-READ句(各READ文は、対応するEND-READで終了すること)

情報

Obligatory End Search

OPT.COBOL.ObligatoryEndSearch

ObligatoryEndSearch:SEARCH文のEND-SEARCH句(各SEARCH文は、対応するEND-SEARCH句で終了すること)

情報

B I U S

OPT.COBOL.OYR_COBOL.BIUS

BIUS:2進数データ項目の桁数制限(10桁を超える変数/定数にBINARY、COMP、または COMP-4を使用しないこと)

情報

C D I N

OPT.COBOL.OYR_COBOL.CDIN

CDIN:参照渡しによるパラメータ渡し(サブルーチンをCALLする際は常にBY REFERENCEでパラメータを渡すこと)

情報

C O P Y

OPT.COBOL.OYR_COBOL.COPY

COPY:標準的なコピーブックの使用

情報

D U P

OPT.COBOL.OYR_COBOL.DUP

DUP:DISPLAY...UPON CONSOLEの回避

情報

I N DB

OPT.COBOL.OYR_COBOL.INDB

INDB:インデックス変数の型(テーブルインデックスとして使用される変数は、S9(2) COMPまたはS9(4) COMP型であること)

情報

M C O R

OPT.COBOL.OYR_COBOL.MCOR

MCOR:MOVE文、ADD文、SUBSTRACT文でのCORRESPONDING句の回避

情報

N C P Y

OPT.COBOL.OYR_COBOL.NCPY

NCPY:標準セットに含まれていないコピーブックの回避

情報

N D I S

OPT.COBOL.OYR_COBOL.NDIS

NDIS:DISPLAY変数に対する算術演算の回避

情報

N N S

OPT.COBOL.OYR_COBOL.NNS

NNS:NEXT SENTENCE使用の回避

情報

N O R E

OPT.COBOL.OYR_COBOL.NORE

NORE:RELEASE文の使用禁止

情報

Ocurrences Table Elements

OPT.COBOL.OYR_COBOL.OcurrencesTableElements

OcurrencesTableElements:テーブル要素へのアクセスの最適化

情報

P A R N

OPT.COBOL.OYR_COBOL.PARN

PARN:パラメータが多すぎるルーチンの回避

情報

P D I M

OPT.COBOL.OYR_COBOL.PDIM

PDIM:PACKED-DECIMAL/COMP-3型の桁数と符号( PACKED-DECIMAL/COMP-3を使用する場合は、16 桁未満にし、符号付きの場合は偶数桁、符号なしの場合は奇数桁にすること)

情報

S I B Y

OPT.COBOL.OYR_COBOL.SIBY

SIBY:バイナリ(BINARY、COMP、COMP-4、COMP-5)フィールドにおけるSYNCHRONIZEDの使用

情報

S O R T

OPT.COBOL.OYR_COBOL.SORT

SORT:SORT文の回避

情報

T I M E

OPT.COBOL.OYR_COBOL.TIME

TIME:システム変数 DATE、DAY、DAY-OF-WEEK、TIME、CENTURY-DATE、CENTURY-DAY、CURRENT-DATE への一度度だけのアクセス

情報

Perform Times With Memory Tables

OPT.COBOL.PerformTimesWithMemoryTables

PerformTimesWithMemoryTables:PERFORM N TIMESの使用制限(PERFORM N TIMESは、メモリ内テーブルに対してのみ使用できる)

情報

Perform Thru With Exit

OPT.COBOL.PerformThruWithExit

PerformThruWithExit:PERFORM THRUのEXIT(各PERFORM THRU文には、対応するEXIT文を記述した段落があること)

情報

A P I C

OPT.COBOL.RG_COBOL.APIC

APIC:PIC句における、XX、AA、または99を繰り返す代わりの括弧の使用

情報

C L A U

OPT.COBOL.RG_COBOL.CLAU

CLAU:見出し部(IDENTIFICATION DIVISION)に含めてはいけない非推奨の段落(DATE-COMPILED、DATE-WRITTEN、INSTALLATION、AUTHOR、SECURITYなど)

情報

C P I C

OPT.COBOL.RG_COBOL.CPIC

CPIC:PICTUREの代わりのPICの使用

情報

F N F

OPT.COBOL.RG_COBOL.FNF

FNF:WORKING-STORAGE SECTIONの最初のエントリでの特定のレベルとデータ名の使用

情報

I N B Y

OPT.COBOL.RG_COBOL.INBY

INBY:COBOLテーブル(OCCURSを含むフィールド)でのINDEXED BY句の使用

情報

M V D

OPT.COBOL.RG_COBOL.MVD

MVD:MOVE文での定数リテラルの回避(定数リテラルでMOVE を使用せず、代わりに名前付き定数フィールドを使用すること)

情報

N77

OPT.COBOL.RG_COBOL.N77

N77:レベル番号77使用の回避

情報

N I

OPT.COBOL.RG_COBOL.NI

NI:WORKING-STORAGE SECTIONのデータエントリにおける奇数レベルの使用

情報

N L P

OPT.COBOL.RG_COBOL.NLP

NLP:PROCEDURE DIVISION文におけるリテラル使用の回避

情報

N N IV

OPT.COBOL.RG_COBOL.NNIV

NNIV:データ項目のレベル番号(DATA DIVISIONでは、全てのデータ項目のレベル番号は01または5の倍数にすること)

情報

N P N T

OPT.COBOL.RG_COBOL.NPNT

NPNT:文末ビリオドの省略(文末にピリオドが不要な文に、ビリオドを記述しないこと)

情報

N T H N

OPT.COBOL.RG_COBOL.NTHN

NTHN:IF文でのTHENの使用禁止

情報

Section End Doesnt Exist

OPT.COBOL.SectionEndDoesntExist

SectionEndDoesntExist:セクションの終了の欠落

情報

SQL Statements Not Executed

OPT.COBOL.SqlStatementsNotExecuted

SqlStatementsNotExecuted:実行されていないSQL文の存在

情報

Too Much Call

OPT.COBOL.TooMuchCall

TooMuchCall:ルーチン呼び出し回数の制限(ルーチンへの呼び出しの最大許容数を超えていることを検出)

情報

Use Index Field To Check A Row

OPT.COBOL.UseIndexFieldToCheckARow

UseIndexFieldToCheckARow:インデックスを使用する行の検索(行があるかどうかを確認する必要がある場合は、インデックスが設定されているフィールドを選択して検索する)

情報

Use Varying Only With Tables

OPT.COBOL.UseVaryingOnlyWithTables

UseVaryingOnlyWithTables:PERFORM VARYINGの使用制限(PERFORM VARYING文の使用は、メモリ内テーブルに対してのみ使用することが可能)

情報

Avoid Non Qualified Joins

OPT.COBOL.SQL_COBOL.AvoidNonQualifiedJoins

AvoidNonQualifiedJoins:結合の種類の明示

情報

Cobol Password In Comment

OPT.COBOL.SEC.Cobol_PasswordInComment

Cobol_PasswordInComment:コードコメントにおけるパスワードやその他の機密情報の記述の禁止

情報

Cobol Privacy Violation

OPT.COBOL.SEC.Cobol_PrivacyViolation

Cobol_PrivacyViolation:個人情報の漏洩(プライバシー侵害)

Access In Loop More Than One Index

OPT.COBOL.AccessInLoopMoreThanOneIndex

AccessInLoopMoreThanOneIndex:テーブルへのアクセスを解決するために複数のインデックスを使用するループ内のアクセスを検出(ページ数> {})

Access In Loop Without Index

OPT.COBOL.AccessInLoopWithoutIndex

AccessInLoopWithoutIndex:テーブルのWHERE句にインデックスフィールドが指定されていないループ内のアクセスを検出(ページ数> {})

Avoid Select With Low Conditions

OPT.COBOL.AvoidSelectWithLowConditions

AvoidSelectWithLowConditions:WHERE句における識別度の低い条件を持つ「SELECT関数」の回避

Avoid Access Not Indexed Table Medium

OPT.COBOL.AvoidAccessNotIndexedTableMedium

AvoidAccessNotIndexedTableMedium:最初のインデックスフィールドが報告されていない、またはDB2がそれらを使用できない中規模テーブル(7 < ページ数 < 10,000)へのアクセスを検出

Avoid Access Without Index Medium

OPT.COBOL.AvoidAccessWithoutIndexMedium

AvoidAccessWithoutIndexMedium:中規模テーブル(7 < ページ数 < 10,000)のWHERE句に指定されたインデックスフィールドがないアクセスを検出

Avoid Big Tables

OPT.COBOL.AvoidBigTables

AvoidBigTables:規模が大きいか要素が多すぎるLINKAGEまたはWORKINGのテーブルの定義

Avoid Bulk Updates In A Sentence

OPT.COBOL.AvoidBulkUpdatesInASentence

AvoidBulkUpdatesInASentence:SQL文を使用した一括更新の回避

Avoid Cancel

OPT.COBOL.AvoidCancel

AvoidCancel:CANCEL句の使用の回避

Avoid On Size Error

OPT.COBOL.AvoidOnSizeError

AvoidOnSizeError:ON SIZE ERROR使用の回避

Avoid Select Ast Check Rows

OPT.COBOL.AvoidSelectAstCheckRows

AvoidSelectAstCheckRows:行の存在チェックのためのSELECT COUNT(*)使用の回避

Avoid Sentence Acording Size Table Medium

OPT.COBOL.AvoidSentenceAcordingSizeTableMedium

AvoidSentenceAcordingSizeTableMedium:アクセスの解決に複数のインデックスを使用する中規模テーブル(7 < ページ数 < 10,000)を含む文を検出

Avoid Sentence Acording Size Table Big

OPT.COBOL.AvoidSentenceAcordingSizeTableBig

AvoidSentenceAcordingSizeTableBig:大きなテーブルを持つ文の検出(ページ数 > {})

Check Cursor Instead Of Statements

OPT.COBOL.CheckCursorInsteadOfStatements

CheckCursorInsteadOfStatements:SELECTとUPDATE/DELETEの代わりのCURSOR FOR UPDATEの使用

Check Cursor Positionning Fetch

OPT.COBOL.CheckCursorPositionningFetch

CheckCursorPositionningFetch:カーソルとFETCH文のROWSET句整合(カーソルがWITH ROWSET POSITIONINGで定義されている場合、そのカーソルのFETCHはNEXT ROWSET句で定義する必要があり、その逆も同様)

Check Deq After Enq

OPT.COBOL.CheckDeqAfterEnq

CheckDeqAfterEnq:ENQ/DEQコマンドの適切な使用(ENQ コマンドを使用する場合は、できるだけ早くDEQコマンドを発行すること)

Check Func Columns

OPT.COBOL.CheckFuncColumns

CheckFuncColumns:SQL文のWHERE句の列での関数の使用禁止

Check Func Host Vars In Where

OPT.COBOL.CheckFuncHostVarsInWhere

CheckFuncHostVarsInWhere:SQL文のWHERE句のHOST変数での関数の使用禁止

Check Low Volume Tables Very Accessed

OPT.COBOL.CheckLowVolumeTablesVeryAccessed

CheckLowVolumeTablesVeryAccessed:小規模テーブルのWORKING-STORAGE SECTIONへのコピー(アクセス頻度の高い小規模なDB2テーブルは、プログラム実行開始時に WORKING-STORAGE SECTIONにコピーすること)

Check Order Sentences

OPT.COBOL.CheckOrderSentences

CheckOrderSentences:文の順序チェック(選択される行数が多いために、DB2の処理に負荷をかけるプロセス管理をトリガしている文のチェック)

Check Return In Cics

OPT.COBOL.CheckReturnInCics

CheckReturnInCics:トランザクションでのABENDを回避するために、CICS文のリターンコードを常にチェック

Check Search At End

OPT.COBOL.CheckSearchAtEnd

CheckSearchAtEnd:SEARCH文におけるAT END句の使用

Check Vars To Read

OPT.COBOL.CheckVarsToRead

CheckVarsToRead:READ文での変数の使用(READ文では、ファイルレコード変数、またはファイルレコードより小さいWORKING-STORAGE変数を使用しないこと)

Check Vars To Write

OPT.COBOL.CheckVarsToWrite

CheckVarsToWrite:WRITE文での変数の使用(WRITE文でファイルレコード変数、またはレコードサイズより大きなWORKING-STORAGE変数を使用しないこと)

Check Where Like

OPT.COBOL.CheckWhereLike

CheckWhereLike:LIKE '%' やLIKE '_' の回避

Check Write Stmnt

OPT.COBOL.CheckWriteStmnt

CheckWriteStmnt:WRITE操作におけるAFTERやBEFOREの回避

IP L

OPT.COBOL.COBBP.IPL

IPL:1行につき1つのステートメント

P V A C

OPT.COBOL.COBBP.PVAC

PVAC:空の段落の回避

C I N

OPT.COBOL.COD_COBOL.CIN

CIN:呼び出されるサブルーチン名における命名規則の遵守

Data Division

OPT.COBOL.COD_COBOL.DataDivision

DataDivision:DATA DIVISION外のデータ定義の検出

Working Storage Var Names

OPT.COBOL.COD_COBOL.WorkingStorageVarNames

WorkingStorageVarNames:WORKING-STORAGE変数と定数の名前の書式

Type Time

OPT.COBOL.COD_COBOL.TypeTime

TypeTime:TIMESTAMP変数およびTIME変数の書式

Do Not Open In Bucle

OPT.COBOL.DoNotOpenInBucle

DoNotOpenInBucle:プログラム内の同じファイルに対する複数のオープン/クローズの回避

Do Not Repeat Access

OPT.COBOL.DoNotRepeatAccess

DoNotRepeatAccess:1回のアクセスによる、テーブルからのデータ復元

Do Not Use Return Code

OPT.COBOL.DoNotUseReturnCode

DoNotUseReturnCode:RETURN-CODE変数の使用禁止

Do Not Use Rewrite In Sequential

OPT.COBOL.DoNotUseRewriteInSequential

DoNotUseRewriteInSequential:順次ファイルに対するREWRITEの使用禁止

C B U C

OPT.COBOL.FIA_COBOL.CBUC

CBUC:ループ終了条件としての等価条件使用の回避

C F D

OPT.COBOL.MAN_COBOL.CFD

CFD:ファイル/ソートレコード定義に対するCOPY句の使用

F L C B

OPT.COBOL.MAN_COBOL.FLCB

FLCB:空のコメントによる段落の区切り

I A I D

OPT.COBOL.MAN_COBOL.IAID

IAID:AUTHORフィールドの記述(IDENTIFICATION DIVISION に AUTHOR フィールドを含めること)

I I E

OPT.COBOL.MAN_COBOL.IIE

IIE:ELSE句の誤ったインデントの回避

I I I

OPT.COBOL.MAN_COBOL.III

III:IF文内での正しいインデントの使用

I I R

OPT.COBOL.MAN_COBOL.IIR

IIR:READ文の適切なインデント

I I R W

OPT.COBOL.MAN_COBOL.IIRW

IIRW:REWRITE文の適切なインデント

I I W

OPT.COBOL.MAN_COBOL.IIW

IIW:WRITE文の適切なインデント

N C F D

OPT.COBOL.MAN_COBOL.NCFD

NCFD:ファイル/ソート記述子へのCOPY句の使用禁止

Register Validation With Select

OPT.COBOL.RegisterValidationWithSelect

RegisterValidationWithSelect:SELECT句によるレコード有無の検証

W D

OPT.COBOL.RG_COBOL.WD

WD:WORKING-STORAGE SECTIONの定義順序

Avoid Insert Without Fields Specification

OPT.COBOL.SQL_COBOL.AvoidInsertWithoutFieldsSpecification

AvoidInsertWithoutFieldsSpecification:すべてのINSERT文におけるフィールドの指定の必要性(例:INSERT INTO table(column1,column2) VALUES (value1,value2))

Avoid Qualified Tables In Queries

OPT.COBOL.SQL_COBOL.AvoidQualifiedTablesInQueries

AvoidQualifiedTablesInQueries:クエリ内でのテーブル名の修飾の回避

Qualified Tables In Queries

OPT.COBOL.SQL_COBOL.QualifiedTablesInQueries

QualifiedTablesInQueries:クエリで参照されるすべてのテーブル名を修飾することが必要

Use Search All

OPT.COBOL.UseSearchAll

UseSearchAll:要素が50以上のWORKING-STORAGEテーブルの検索におけるSEARCH ALL文の使用

Close Statements With Nested Body

OPT.COBOL.COBBP.CloseStatementsWithNestedBody

CloseStatementsWithNestedBody:明示的なEND区切り文字があるコードブロックを含むクローズ文

To End Paragraph

OPT.COBOL.COBBP.ToEndParagraph

ToEndParagraph:トップレベルの段落における終了段落の存在のチェック

Avoid Arithmetic Operations In If

OPT.COBOL.FIA_COBOL.AvoidArithmeticOperationsInIf

AvoidArithmeticOperationsInIf:IF文の条件に算術演算がないことのチェック

Obligatory End Evaluate

OPT.COBOL.FIA_COBOL.ObligatoryEndEvaluate

ObligatoryEndEvaluate:全てのEVALUATE文がEND-EVALUATEで閉じられていることの確認

Avoid Explicit Data In Linkage

OPT.COBOL.MAN_COBOL.AvoidExplicitDataInLinkage

AvoidExplicitDataInLinkage:LINKAGE SECTIONにおける明示的なデータ記述項目の回避

Avoid Procedural Copybook

OPT.COBOL.MAN_COBOL.AvoidProceduralCopybook 

AvoidProceduralCopybook:手続き型コードを共有するためのコピーブックの回避

Avoid Too Deep Perform Chains

OPT.COBOL.MAN_COBOL.AvoidTooDeepPerformChains

AvoidTooDeepPerformChains:深すぎるPERFORMチェーンの回避

C C A L

OPT.COBOL.MAN_COBOL.CCAL

CCAL:全てのプログラム呼び出しの直前でのコメント記述

Copy Book With Data Or Procedures

OPT.COBOL.MAN_COBOL.CopyBookWithDataOrProcedures

CopyBookWithDataOrProcedures:コピーブックの制限(コピーブックにはデータ定義または手続き型コードのみを含めること)

H I C E

OPT.COBOL.MAN_COBOL.HICE

HICE:GOTOが多すぎるプログラムの回避

I N01

OPT.COBOL.MAN_COBOL.IN01

IN01:全てのトップレベル変数(レベル番号01)のコメント記述

N A M I N G P R O G R A M I D

OPT.COBOL.MAN_COBOL.NAMINGPROGRAMID

NAMINGPROGRAMID:プログラム名の命名規則の遵守

P I C

OPT.COBOL.MAN_COBOL.PIC

PIC:CALL文のプログラム名変数における命名規則の遵守

Reference Modifier

OPT.COBOL.OYR_COBOL.ReferenceModifier

ReferenceModifier:参照修飾子の型( VAR(position:length)で使用する位置変数と長さ変数はshortバイナリ型であること)

V O D T

OPT.COBOL.OYR_COBOL.VODT 

VODT:異なる型の変数に対する算術演算の回避

C W S V

OPT.COBOL.RG_COBOL.CWSV

CWSV:初期値のないWORKING-STORAGE SECTIONへのエントリの回避

D P I C

OPT.COBOL.RG_COBOL.DPIC

DPIC:DECIMAL-POINT IS COMMA句の記述(プログラムに編集されたフィールドまたは定数の小数が1以上ある場合は、DECIMAL-POINT IS COMMAを含めること)

I F W

OPT.COBOL.RG_COBOL.IFW

IFW:処理の終了と開始の明示的な記述のための規則

N E P

OPT.COBOL.RG_COBOL.NEP

NEP:EXIT文の回避

Cobol System Information Leak

OPT.COBOL.SEC.Cobol_SystemInformationLeak

Cobol_SystemInformationLeak:本番用コードにおけるシステム情報(通常はデバッグ用)ダンプの回避

Poor Error Handling

OPT.COBOL.SEC.PoorErrorHandling

PoorErrorHandling:エラー処理の不備(エラー条件を無視することで、攻撃者が気づかれずに予期せぬ動作を引き起こす可能性あり)

Avoid Natural Joins

OPT.COBOL.SQL_COBOL.AvoidNaturalJoins

AvoidNaturalJoins:NATURAL JOINの回避(バグが発生しやすくメンテナンス困難なため)

Avoid Select Asterisk

OPT.COBOL.SQL_COBOL.AvoidSelectAsterisk

AvoidSelectAsterisk:SELECT *の使用禁止

Prefer On Over Using

OPT.COBOL.SQL_COBOL.PreferOnOverUsing

PreferOnOverUsing:USING句をそれと等価のON句へ置換することを推奨

Detect Implicit Joins

OPT.COBOL.SQL_COBOL.DetectImplicitJoins 

DetectImplicitJoins:暗黙的なJOINの使用禁止

Avoid Too Many Joins

OPT.COBOL.SQL_COBOL.AvoidTooManyJoins 

AvoidTooManyJoins:JOINが多すぎるクエリの回避

Avoid Queries On Many Tables

OPT.COBOL.SQL_COBOL.AvoidQueriesOnManyTables 

AvoidQueriesOnManyTables:多くのテーブルを参照するJOINクエリの回避

Avoid Nested Selects

OPT.COBOL.SQL_COBOL.AvoidNestedSelects

AvoidNestedSelects:ネストしたSELECT文の回避

Cobol Password With Weak Crypto

OPT.COBOL.SEC.Cobol_PasswordWithWeakCrypto

Cobol_PasswordWithWeakCrypto:脆弱なパスワードの暗号化