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:脆弱なパスワードの暗号化 |