@shundoo-ai/dsh-cosmic 1.0.21 → 1.0.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (218) hide show
  1. package/package.json +1 -1
  2. package/skills/cosmic-build/LOCAL-PATCHES.md +43 -14
  3. package/skills/cosmic-build/SKILL.md +24 -9
  4. package/skills/cosmic-build/examples/java-rules/CosmicReportAggregation.java +26 -17
  5. package/skills/cosmic-build/examples/java-rules/CosmicReportFilters.java +96 -2
  6. package/skills/cosmic-build/knowledge/cosmic/arch/security/security_standard.md +4 -4
  7. package/skills/cosmic-build/knowledge/cosmic/platform/allimport.md +2 -1
  8. package/skills/cosmic-build/knowledge/cosmic/platform/core/dynamic-object-collection.md +6 -4
  9. package/skills/cosmic-build/knowledge/cosmic/platform/core/model.md +9 -9
  10. package/skills/cosmic-build/knowledge/cosmic/platform/core/view.md +5 -5
  11. package/skills/cosmic-build/knowledge/cosmic/platform/form-plugin.md +8 -4
  12. package/skills/cosmic-build/knowledge/cosmic/platform/list-plugin.md +5 -3
  13. package/skills/cosmic-build/knowledge/cosmic/platform/print-plugin-guide.md +1 -0
  14. package/skills/cosmic-build/knowledge/cosmic/platform/report-plugin.md +269 -57
  15. package/skills/cosmic-build/knowledge/cosmic/platform/reportlistdata-plugin.md +130 -23
  16. package/skills/cosmic-build/knowledge/cosmic/platform/reporttreedata-plugin.md +48 -28
  17. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/_index.md +12 -3
  18. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/common/attachment-name-process.md +17 -13
  19. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/common/dynamic-update-field.md +4 -4
  20. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/control/filter-grid/filter-grid-set-value.md +1 -1
  21. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/control/list/filter-basedatafield.md +2 -3
  22. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/control/list/filter-container-init.md +0 -1
  23. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/control/list/filter-popup.md +0 -1
  24. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/control/list/filter-value-parse.md +5 -6
  25. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/control/list/list-show-form.md +1 -1
  26. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/control/list/query-field-dynamic.md +0 -7
  27. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/data-access/business-data/delete-service.md +24 -29
  28. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/data-access/ksql/db-batch.md +4 -0
  29. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/data-access/ksql/db-direct-access.md +4 -0
  30. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/data-access/qfilter/entity-object-access.md +8 -3
  31. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/data-access/qfilter/qfilter-compose.md +6 -5
  32. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/event/after-bind-data-set-visible.md +5 -1
  33. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/event/click-return-data.md +2 -2
  34. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/event/closed-call-back-set-value.md +2 -2
  35. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/event/register-listener.md +1 -1
  36. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/event/set-filter-tab-org.md +3 -0
  37. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/infra/dispatch-service/microservice-dev.md +18 -11
  38. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/infra/dist-lock/dist-lock-basic.md +3 -6
  39. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/infra/mq/mq-subscribe.md +5 -1
  40. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/infra/thread-pool/async-operation.md +10 -6
  41. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/infra/thread-pool/big-task-async.md +4 -2
  42. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/infra/thread-pool/schedule-task.md +9 -7
  43. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/operation/operation-interactive.md +33 -34
  44. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/operation/operation-plugin-events.md +30 -22
  45. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/report/report-async-query.md +133 -0
  46. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/report/report-batch-query.md +26 -22
  47. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/report/report-chart.md +112 -0
  48. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/report/report-dataset-assembly.md +200 -0
  49. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/report/report-head-filter.md +177 -0
  50. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/report/report-hyperlink-drill.md +216 -0
  51. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/report/report-list-data-query.md +12 -12
  52. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/report/report-merge-column.md +44 -6
  53. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/report/report-print-data.md +163 -0
  54. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/report/report-row-data-toolbar.md +188 -0
  55. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/report/report-subtotal-total.md +139 -0
  56. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/report/report-tree-data-query.md +108 -12
  57. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/report/report-tree-list.md +181 -0
  58. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/system-service/report-plugin-interface.md +3 -0
  59. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/tree/tree-basedata-cascade-confirm.md +14 -11
  60. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/tree/tree-list-before-item-validate.md +1 -1
  61. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/tree/tree-list-build-filter.md +1 -1
  62. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/tree/tree-list-multi-level-filter.md +11 -11
  63. package/skills/cosmic-build/knowledge/cosmic/platform/scenes/tree/tree-list-refresh-node.md +22 -15
  64. package/skills/cosmic-build/knowledge/cosmic/platform/sdk/sdk-algo.md +2 -2
  65. package/skills/cosmic-build/knowledge/cosmic/platform/sdk/sdk-entity-model.md +3 -4
  66. package/skills/cosmic-build/knowledge/cosmic/platform/sdk/sdk-exception.md +9 -5
  67. package/skills/cosmic-build/knowledge/cosmic/platform/sdk/sdk-orm-access.md +4 -0
  68. package/skills/cosmic-build/knowledge/cosmic/platform/sdk/sdk-request-context.md +7 -3
  69. package/skills/cosmic-build/knowledge/cosmic/platform/standards.md +28 -3
  70. package/skills/cosmic-build/references/compile-guide.md +36 -1
  71. package/skills/cosmic-build/references/dcs-code-rules.md +180 -0
  72. package/skills/cosmic-build/references/delivery.md +16 -2
  73. package/skills/cosmic-build/references/execution-contract.md +15 -3
  74. package/skills/cosmic-build/references/java-plugin-delivery.md +21 -11
  75. package/skills/cosmic-build/references/plugin-handoff-input.md +82 -24
  76. package/skills/cosmic-build/references/plugin-runtime-routing.md +23 -6
  77. package/skills/cosmic-build/references/report-filter-contract.md +53 -15
  78. package/skills/cosmic-build/references/sdk-inspection.md +4 -1
  79. package/skills/cosmic-build/references/type-registry.json +26 -17
  80. package/skills/cosmic-build/schemas/data-model-authoring.schema.json +1 -1
  81. package/skills/cosmic-build/scripts/_http_client.py +3 -0
  82. package/skills/cosmic-build/scripts/compile_plugin_source.py +251 -42
  83. package/skills/cosmic-build/scripts/configure_list.py +112 -0
  84. package/skills/cosmic-build/scripts/dcs-rule-catalog.json +799 -0
  85. package/skills/cosmic-build/scripts/dcs_code_gate.py +1976 -0
  86. package/skills/cosmic-build/scripts/execution_binding.py +25 -0
  87. package/skills/cosmic-build/scripts/platform_api_contract.py +352 -7
  88. package/skills/cosmic-build/scripts/plugin_source_gate.py +9 -1
  89. package/skills/cosmic-build/scripts/plugin_target_sdk.py +12 -8
  90. package/skills/cosmic-build/scripts/prepare_plugin_handoff.py +488 -88
  91. package/skills/cosmic-build/scripts/query_plugin_handoff.py +207 -20
  92. package/skills/cosmic-build/scripts/register_plugins.py +27 -10
  93. package/skills/cosmic-build/scripts/render_output_cards.py +57 -20
  94. package/skills/cosmic-build/scripts/resolve_output_path.py +60 -26
  95. package/skills/cosmic-build/scripts/run_java_tests.py +162 -0
  96. package/skills/cosmic-build/scripts/sync_generated_locale_assets.py +28 -0
  97. package/skills/cosmic-build/scripts/test/fixtures/ReportSdkCheck.java +1 -22
  98. package/skills/cosmic-build/scripts/test/fixtures/list_column_property_declarations.json +887 -0
  99. package/skills/cosmic-build/scripts/test/fixtures/operation-entry-field-prepare.java +78 -0
  100. package/skills/cosmic-build/scripts/test/test_add_field_required_contract.py +12 -0
  101. package/skills/cosmic-build/scripts/test/test_batch5_drift_governance.py +23 -2
  102. package/skills/cosmic-build/scripts/test/test_compile_plugin_source.py +287 -4
  103. package/skills/cosmic-build/scripts/test/test_configure_list_delivery.py +132 -0
  104. package/skills/cosmic-build/scripts/test/test_cosmic_sdk_examples.py +58 -1
  105. package/skills/cosmic-build/scripts/test/test_data_model_contract.py +19 -0
  106. package/skills/cosmic-build/scripts/test/test_dcs_code_gate.py +901 -0
  107. package/skills/cosmic-build/scripts/test/test_delivery_stage_boundary.py +1 -1
  108. package/skills/cosmic-build/scripts/test/test_direct_cli_architecture.py +2 -0
  109. package/skills/cosmic-build/scripts/test/test_http_client.py +6 -0
  110. package/skills/cosmic-build/scripts/test/test_java_toolchain_feedback.py +206 -0
  111. package/skills/cosmic-build/scripts/test/test_kd_api.py +21 -0
  112. package/skills/cosmic-build/scripts/test/test_list_configuration_closure.py +184 -0
  113. package/skills/cosmic-build/scripts/test/test_mcp_cli.py +139 -2
  114. package/skills/cosmic-build/scripts/test/test_menu_creation_closure.py +16 -0
  115. package/skills/cosmic-build/scripts/test/test_modeling_input_recovery.py +55 -1
  116. package/skills/cosmic-build/scripts/test/test_open_world_cli_catalog.py +1 -1
  117. package/skills/cosmic-build/scripts/test/test_operation_field_preparation.py +84 -0
  118. package/skills/cosmic-build/scripts/test/test_platform_api_contract.py +322 -1
  119. package/skills/cosmic-build/scripts/test/test_plugin_handoff.py +951 -4
  120. package/skills/cosmic-build/scripts/test/test_plugin_source_gate.py +30 -2
  121. package/skills/cosmic-build/scripts/test/test_plugin_target_sdk.py +21 -0
  122. package/skills/cosmic-build/scripts/test/test_property_reroute.py +165 -0
  123. package/skills/cosmic-build/scripts/test/test_property_schema_first.py +35 -0
  124. package/skills/cosmic-build/scripts/test/test_query_plugin_handoff.py +221 -0
  125. package/skills/cosmic-build/scripts/test/test_register_plugins.py +76 -4
  126. package/skills/cosmic-build/scripts/test/test_render_output_cards.py +75 -3
  127. package/skills/cosmic-build/scripts/test/test_report_business_contract.py +27 -5
  128. package/skills/cosmic-build/scripts/test/test_report_doc_contract_sync.py +103 -11
  129. package/skills/cosmic-build/scripts/test/test_report_plugin_source_gate.py +46 -16
  130. package/skills/cosmic-build/scripts/test/test_report_properties.py +74 -15
  131. package/skills/cosmic-build/scripts/test/test_report_query_data_source.py +3 -1
  132. package/skills/cosmic-build/scripts/test/test_report_sdk_optimization.py +1 -2
  133. package/skills/cosmic-build/scripts/test/test_test_environment.py +76 -1
  134. package/skills/cosmic-build/scripts/test_environment.py +67 -1
  135. package/skills/cosmic-build/skills/cosmic-coding-impl/SKILL.md +52 -10
  136. package/skills/cosmic-build/skills/cosmic-meta-api/apis/ai_meta.md +16 -3
  137. package/skills/cosmic-build/skills/cosmic-meta-api/contracts/cli/report-write-contracts.json +59 -26
  138. package/skills/cosmic-build/skills/cosmic-meta-api/contracts/cli/rule-domain.json +1 -1
  139. package/skills/cosmic-build/skills/cosmic-meta-api/contracts/schema/report-write.schema.json +75 -18
  140. package/skills/cosmic-build/skills/cosmic-meta-api/modules/pdm/scripts/pdm_auto.py +39 -0
  141. package/skills/cosmic-build/skills/cosmic-meta-api/modules/pdm/scripts/pdm_client.py +97 -10
  142. package/skills/cosmic-build/skills/cosmic-meta-api/modules/verify/SKILL.md +10 -12
  143. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/cmd_apps.py +3 -1
  144. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/cmd_formactions.py +38 -29
  145. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/cmd_listui.py +400 -233
  146. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/cmd_metaops.py +87 -45
  147. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/cmd_properties.py +42 -15
  148. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/cmd_rules.py +135 -5
  149. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/config.py +1 -1
  150. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/execution_errors.py +1 -1
  151. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/formatters.py +17 -11
  152. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/property_reroute.py +15 -5
  153. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/report_ops.py +1429 -238
  154. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/_core/validators.py +56 -28
  155. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/cosmic_api.py +380 -134
  156. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/field_decorator.py +1 -1
  157. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/meta_export.py +12 -11
  158. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/meta_verifier.py +42 -0
  159. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_add_field_placement_closure.py +8 -8
  160. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_build_configuration_readback.py +94 -0
  161. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_build_receipt_resume.py +47 -1
  162. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_metadata_unchanged_fail_closed.py +87 -0
  163. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_report_dym_evidence.py +23 -23
  164. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_report_entity_integrity.py +279 -4
  165. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_report_field_guard.py +1 -1
  166. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_report_plugin_contract.py +509 -32
  167. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_report_readback_derivation.py +178 -1
  168. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_report_recreate_plan.py +125 -10
  169. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_report_serve_contract.py +208 -0
  170. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_report_typed_filters.py +259 -50
  171. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_rule_inventory_perf.py +29 -0
  172. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_rule_write_closure.py +20 -0
  173. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_run_batch_post_build_recovery.py +18 -0
  174. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_run_batch_verification_evidence.py +35 -0
  175. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_run_identity_guard.py +25 -0
  176. package/skills/cosmic-build/skills/cosmic-meta-api/scripts/test/test_time_range_rule.py +98 -0
  177. package/skills/cosmic-build/skills/cosmic-meta-knowledge/domain-model/report-model.md +20 -9
  178. package/skills/cosmic-build/skills/cosmic-meta-knowledge/generation/report-modeling-guide.md +55 -25
  179. package/skills/cosmic-build/skills/cosmic-meta-knowledge/property-guides/report-column-properties.md +15 -39
  180. package/skills/cosmic-build/skills/cosmic-meta-modeling/SKILL.md +19 -17
  181. package/skills/cosmic-build/skills/cosmic-meta-modeling/modules/report/SKILL.md +82 -38
  182. package/skills/cosmic-build/skills/cosmic-meta-modeling/modules/report/examples/golden-example-report-batch.md +64 -19
  183. package/skills/cosmic-build/skills/cosmic-meta-modeling/modules/report/examples/golden-example-report-plugin.md +32 -20
  184. package/skills/cosmic-build/skills/cosmic-meta-modeling/modules/report/examples/golden-example-report-tree.md +78 -31
  185. package/skills/cosmic-build/skills/cosmic-meta-modeling/modules/report/report-artifact-schema.json +2 -1
  186. package/skills/cosmic-build/skills/cosmic-meta-modeling/references/authoring-companion-fields.md +3 -0
  187. package/skills/cosmic-build/skills/cosmic-meta-modeling/references/authoring-list-configuration.md +2 -0
  188. package/skills/cosmic-build/skills/cosmic-meta-modeling/scripts/data_model_contract.py +3 -1
  189. package/skills/cosmic-build/skills/cosmic-meta-modeling/scripts/data_model_emit.py +27 -4
  190. package/skills/cosmic-build/skills/cosmic-meta-modeling/scripts/report_validator.py +99 -44
  191. package/skills/cosmic-build/skills/cosmic-meta-modeling/scripts/test_report_examples.py +31 -4
  192. package/skills/cosmic-build/skills/cosmic-meta-modeling/scripts/test_report_validator.py +129 -29
  193. package/skills/cosmic-build/skills/cosmic-meta-modifier/SKILL.md +6 -2
  194. package/skills/cosmic-build/skills/cosmic-meta-modifier/modules/operation/validation.md +2 -0
  195. package/skills/cosmic-build/skills/cosmic-meta-modifier/modules/property/SKILL.md +1 -1
  196. package/skills/cosmic-build/skills/cosmic-meta-modifier/modules/report-op/SKILL.md +104 -25
  197. package/skills/cosmic-build/skills/cosmic-meta-modifier/modules/rule/SKILL.md +9 -0
  198. package/skills/cosmic-build/skills/cosmic-meta-modifier/modules/verify/usage-guide.md +2 -2
  199. package/skills/cosmic-build/skills/cosmic-meta-modifier/references/list-filter-modification.md +39 -12
  200. package/skills/cosmic-build/skills/mcp-server/SKILL.md +39 -24
  201. package/skills/cosmic-build/skills/mcp-server/scripts/mcp_cli.py +20 -6
  202. package/skills/cosmic-dev-best-practices/SKILL.md +1 -1
  203. package/skills/cosmic-dev-best-practices/references/README.md +2 -2
  204. package/skills/cosmic-dev-best-practices/references/basedata-dev-convention.md +2 -2
  205. package/skills/cosmic-dev-best-practices/references/bill-dev-convention.md +4 -4
  206. package/skills/cosmic-dev-best-practices/references/design-document-convention.md +2 -2
  207. package/skills/cosmic-dev-best-practices/references/design-examples/basedata-design-example.md +4 -4
  208. package/skills/cosmic-dev-best-practices/references/design-examples/bill-design-example.md +13 -13
  209. package/skills/cosmic-dev-best-practices/references/elements/CustomerField.md +1 -1
  210. package/skills/cosmic-dev-best-practices/references/elements/README.md +1 -1
  211. package/skills/cosmic-dev-best-practices/references/elements/SupplierField.md +1 -1
  212. package/skills/cosmic-dev-best-practices/references/elements/common-field-property-conventions.md +109 -13
  213. package/skills/cosmic-dev-best-practices/references/layout-control-convention.md +1 -1
  214. package/skills/erp-analysis/references/delivery-contract.md +2 -1
  215. package/skills/erp-analysis/templates/AGENTS.template.md +3 -1
  216. package/skills/cosmic-build/assets/platform-report-filters/TypedReportFilterFields.java +0 -169
  217. package/skills/cosmic-build/assets/platform-report-filters/platform.patch +0 -98
  218. package/skills/cosmic-build/scripts/apply_report_filter_extension.py +0 -39
@@ -0,0 +1,799 @@
1
+ {
2
+ "schemaVersion": "app-build-dcs-rule-catalog/v1",
3
+ "sources": [{"file": "金蝶AI套件公有云门禁20261026.xlsx", "sha256": "9e1811cfcf10db80ab1c9511d53f1542c11cfaa612e3ce14fbd3fb5c49e00700", "selection": "all", "ruleCount": 1467, "codeSetSha256": "8b2148c8a9b1021251c0b199051d1b0524df3e33cb181045ccc9e1cdce08c0fd"}, {"file": "扫描规则_1026144356.xlsx", "sha256": "a07ec9f039ca87d727981285bc6f7daf060c7343ee67a768d2c23557f838b2ba", "selection": "高危/严重", "ruleCount": 428, "codeSetSha256": "47145cec9dee9e9576666776fff6fc062f6cc597523ae7ad32426dc41c32ed08"}],
4
+ "overlapCount": 313,
5
+ "addedCount": 115,
6
+ "rules": {
7
+ "0344E9F9-4113-4228-9BA4-1696CB402251-2": {"risk":"高危","name":"Poor Error Handling: Return Inside Finally","engine":"fortify","sources":[0,1],"sourceRisks":["高危","高危"]}, "067CA2DD-25A9-4028-9E30-9E675B02A19A-1": {"risk":"严重","name":"Cross-Site Scripting: Persistent","engine":"fortify","sources":[1],"sourceRisks":["严重"]},
8
+ "08C47B0A-C83B-4B1B-8BDD-6BF44F9AE58A-3": {"risk":"中危","name":"Access Specifier Manipulation","engine":"fortify","sources":[0],"sourceRisks":["中危"]}, "09913BB2-36FF-4C99-A408-46433754ADDD-1": {"risk":"严重","name":"Weak Encryption: Insufficient Key Size","engine":"fortify","sources":[0,1],"sourceRisks":["严重","严重"]},
9
+ "0BCF2BFC-1A1D-4156-8A58-FEFB307724AA-1": {"risk":"严重","name":"Cross-Site Scripting: Persistent","engine":"fortify","sources":[1],"sourceRisks":["严重"]}, "10951BF4-F239-4F1D-8ADB-B12DE560960F-2": {"risk":"高危","name":"Privacy Violation","engine":"fortify","sources":[0,1],"sourceRisks":["中危","高危"]},
10
+ "11F55563-0B3C-4C71-BD9C-E849E242CAB1-2": {"risk":"高危","name":"Dynamic Code Evaluation: Script Injection","engine":"fortify","sources":[1],"sourceRisks":["高危"]}, "138700B9-C625-4262-9826-C8F3450D6838-2": {"risk":"高危","name":"Path Manipulation","engine":"fortify","sources":[1],"sourceRisks":["高危"]},
11
+ "17B7D071-8066-482B-AC21-63DFE28CEEC1-1": {"risk":"严重","name":"Key Management: Hardcoded Encryption Key","engine":"fortify","sources":[1],"sourceRisks":["严重"]}, "24187482-6763-40CD-9733-8117CF1611D4-1": {"risk":"严重","name":"Header Manipulation","engine":"fortify","sources":[1],"sourceRisks":["严重"]},
12
+ "243F5467-EFA4-4F69-8C9D-DB1932A9C0C0-1": {"risk":"严重","name":"System Information Leak: External","engine":"fortify","sources":[1],"sourceRisks":["严重"]}, "2BB8714C-C445-4398-9960-1FD8A01504EC-2": {"risk":"高危","name":"Password Management: Hardcoded Password","engine":"fortify","sources":[0,1],"sourceRisks":["中危","高危"]},
13
+ "2E912E53-0E69-4D9A-8CCB-AF77FB2CCC83-2": {"risk":"高危","name":"Path Manipulation","engine":"fortify","sources":[1],"sourceRisks":["高危"]}, "30F97528-2286-48AB-BF30-2371A9022E3A-2": {"risk":"高危","name":"Path Manipulation","engine":"fortify","sources":[1],"sourceRisks":["高危"]},
14
+ "33B255FA-12ED-4178-AACD-14252756C472-2": {"risk":"高危","name":"Key Management: Hardcoded Encryption Key","engine":"fortify","sources":[1],"sourceRisks":["高危"]}, "33DDCCB9-248C-46E8-BF4E-0A8DFA006946-2": {"risk":"高危","name":"Server-Side Request Forgery","engine":"fortify","sources":[1],"sourceRisks":["高危"]},
15
+ "391AE71F-8D9B-41B7-B92C-3ADFFFC8110D-1": {"risk":"严重","name":"Command Injection","engine":"fortify","sources":[1],"sourceRisks":["严重"]}, "3B5DE3D7-EF18-4B44-90C0-8FDBE94D7E0E-1": {"risk":"严重","name":"Password Management: Empty Password","engine":"fortify","sources":[1],"sourceRisks":["严重"]},
16
+ "410586B4-5269-4727-8289-1BAF5FF376A3-2": {"risk":"高危","name":"Privacy Violation: Heap Inspection","engine":"fortify","sources":[0,1],"sourceRisks":["高危","高危"]}, "49D75ADD-4BBD-49B9-AAF2-92B9BAB332FE-3": {"risk":"中危","name":"Insecure Randomness","engine":"fortify","sources":[0],"sourceRisks":["中危"]},
17
+ "4B1396F4-255F-4952-BC09-B82ACB650FE8-1": {"risk":"严重","name":"XML External Entity Injection","engine":"fortify","sources":[0,1],"sourceRisks":["严重","严重"]}, "4FCC2666-0044-495B-AFBE-CE1160414EEB-1": {"risk":"严重","name":"Weak Encryption","engine":"fortify","sources":[0,1],"sourceRisks":["严重","严重"]},
18
+ "51746D2E-CF96-4B76-9FD8-D68FCBDBAF32-1": {"risk":"严重","name":"Header Manipulation","engine":"fortify","sources":[1],"sourceRisks":["严重"]}, "52D8084C-BED2-48F0-A182-43A3C85ED48D-1": {"risk":"严重","name":"Password Management: Empty Password","engine":"fortify","sources":[1],"sourceRisks":["严重"]},
19
+ "552E2188-CDC6-4569-8293-B0DD057A6698-2": {"risk":"高危","name":"Privacy Violation","engine":"fortify","sources":[0,1],"sourceRisks":["中危","高危"]}, "566F3911-D6CF-45BB-98A4-9A2A6C0DC90F-2": {"risk":"高危","name":"Privacy Violation","engine":"fortify","sources":[0,1],"sourceRisks":["中危","高危"]},
20
+ "5760613C-9AF8-41EF-8431-66B6FBD4717A-1": {"risk":"严重","name":"Command Injection","engine":"fortify","sources":[1],"sourceRisks":["严重"]}, "57ad6680-a769-11de-8a39-0800200c9a66-2": {"risk":"高危","name":"Password Management: Empty Password","engine":"fortify","sources":[0,1],"sourceRisks":["中危","高危"]},
21
+ "5861A9EA-0F1B-4EDC-89B4-9D97206B87D0-1": {"risk":"严重","name":"Weak Encryption: Insecure Mode of Operation","engine":"fortify","sources":[0,1],"sourceRisks":["中危","严重"]}, "5870A527-08AF-452C-84B2-7F6C360CA7EF-1": {"risk":"严重","name":"SQL Injection","engine":"fortify","sources":[0,1],"sourceRisks":["严重","严重"]},
22
+ "59DB783C-E130-4A79-A89D-75DAC707D601-1": {"risk":"严重","name":"Key Management: Hardcoded Encryption Key","engine":"fortify","sources":[0,1],"sourceRisks":["严重","严重"]}, "5B9CE105-7C9E-402F-A6B5-3BB9EACDEE95-1": {"risk":"严重","name":"Cross-Site Scripting: Persistent","engine":"fortify","sources":[1],"sourceRisks":["严重"]},
23
+ "5FC849F9-EBBB-49C9-8F48-45368F98C83E-1": {"risk":"严重","name":"Password Management: Hardcoded Password","engine":"fortify","sources":[1],"sourceRisks":["严重"]}, "60A3A244-EAE2-415D-A054-EDFF20D3E7AA-1": {"risk":"严重","name":"Password Management: Hardcoded Password","engine":"fortify","sources":[0,1],"sourceRisks":["中危","严重"]},
24
+ "6138BBAF-C3B7-4EDC-A8CB-D44308310F85-2": {"risk":"高危","name":"Path Manipulation","engine":"fortify","sources":[1],"sourceRisks":["高危"]}, "6398FD5D-8367-4306-8C96-66647F88D6E6-2": {"risk":"高危","name":"Password Management: Empty Password","engine":"fortify","sources":[0,1],"sourceRisks":["中危","高危"]},
25
+ "64F11F83-6222-47C0-A5BB-FED05F3C8513-1": {"risk":"严重","name":"Password Management: Hardcoded Password","engine":"fortify","sources":[0,1],"sourceRisks":["中危","严重"]}, "65d3af30-a769-11de-8a39-0800200c9a66-1": {"risk":"严重","name":"Password Management: Empty Password","engine":"fortify","sources":[0,1],"sourceRisks":["中危","严重"]},
26
+ "6637CD74-1FCF-4C7C-9AFE-2B66755634D4-1": {"risk":"严重","name":"XML External Entity Injection","engine":"fortify","sources":[0,1],"sourceRisks":["严重","严重"]}, "7195040D-A365-4128-89FE-6BD3C3123F28-1": {"risk":"严重","name":"Weak Encryption: Byte Array to String Conversion","engine":"fortify","sources":[1],"sourceRisks":["严重"]},
27
+ "7250fdfd-b51f-4eff-b729-f322992a624c-1": {"risk":"严重","name":"Password Management: Empty Password","engine":"fortify","sources":[1],"sourceRisks":["严重"]}, "752ADB4B-ED1E-4230-BFDF-14B63CE6D326-1": {"risk":"严重","name":"Weak Encryption: Insecure Initialization Vector","engine":"fortify","sources":[0,1],"sourceRisks":["严重","严重"]},
28
+ "77C7BD54-F802-4EF8-B7E2-B8E94F66B643-1": {"risk":"严重","name":"Password Management: Hardcoded Password","engine":"fortify","sources":[0,1],"sourceRisks":["中危","严重"]}, "788E3752-66EE-4EE0-8C5D-9F24DBBECEE1-2": {"risk":"高危","name":"Path Manipulation","engine":"fortify","sources":[1],"sourceRisks":["高危"]},
29
+ "790A125E-5BFE-4931-A51A-29B7D5BECC93-1": {"risk":"严重","name":"Header Manipulation","engine":"fortify","sources":[1],"sourceRisks":["严重"]}, "798E4513-03B3-4252-A644-FBA596AEFB2B-1": {"risk":"严重","name":"Cross-Site Scripting: Reflected","engine":"fortify","sources":[0,1],"sourceRisks":["严重","严重"]},
30
+ "7B5AF271-BDC5-4ABE-A93A-316A14FA9028-1": {"risk":"严重","name":"Open Redirect","engine":"fortify","sources":[1],"sourceRisks":["严重"]}, "7CDF198E-B1CF-457A-AD06-E8015C73DC27-1": {"risk":"严重","name":"Password Management: Hardcoded Password","engine":"fortify","sources":[0,1],"sourceRisks":["中危","严重"]},
31
+ "7E349E4F-206F-45F4-BACA-247868CD7468-2": {"risk":"高危","name":"Insecure Transport: Mail Transmission","engine":"fortify","sources":[1],"sourceRisks":["高危"]}, "807f13b0-a769-11de-8a39-0800200c9a66-2": {"risk":"高危","name":"Password Management: Empty Password","engine":"fortify","sources":[0,1],"sourceRisks":["中危","高危"]},
32
+ "823FE039-A7FE-4AAD-B976-9EC53FFE4A59-2": {"risk":"高危","name":"Path Manipulation","engine":"fortify","sources":[1],"sourceRisks":["高危"]}, "82E82E70-6723-4BB3-A1C4-805689655A86-2": {"risk":"高危","name":"Privacy Violation","engine":"fortify","sources":[0,1],"sourceRisks":["中危","高危"]},
33
+ "8bd01c50-a769-11de-8a39-0800200c9a66-1": {"risk":"严重","name":"Password Management: Empty Password","engine":"fortify","sources":[0,1],"sourceRisks":["中危","严重"]}, "925A2CD9-F518-4500-B94C-34126420D183-1": {"risk":"严重","name":"Weak Encryption","engine":"fortify","sources":[0,1],"sourceRisks":["严重","严重"]},
34
+ "9713B772-4BD7-4481-90F0-D483B9807E00-1": {"risk":"严重","name":"Often Misused: sun.misc.Unsafe","engine":"fortify","sources":[1],"sourceRisks":["严重"]}, "9933DC19-6AF2-493F-801D-30297E8CBBF2-2": {"risk":"高危","name":"Key Management: Empty Encryption Key","engine":"fortify","sources":[1],"sourceRisks":["高危"]},
35
+ "9B5F0161-88EC-4104-B70B-0182FEB53BF2-1": {"risk":"严重","name":"SQL Injection","engine":"fortify","sources":[1],"sourceRisks":["严重"]}, "9BE87BC6-0D84-4AAC-B1CF-00E91675B947-1": {"risk":"严重","name":"Password Management: Hardcoded Password","engine":"fortify","sources":[0,1],"sourceRisks":["中危","严重"]},
36
+ "9C5BD1B5-C296-48d4-B5F5-5D2958661BC4-1": {"risk":"严重","name":"Password Management: Hardcoded Password","engine":"fortify","sources":[0,1],"sourceRisks":["中危","严重"]}, "9F45D198-E7FF-4255-8178-CA5E3E1E389F-1": {"risk":"严重","name":"Process Control","engine":"fortify","sources":[1],"sourceRisks":["严重"]},
37
+ "A17754A4-355D-414E-8094-E2C6DE5D89B5-1": {"risk":"严重","name":"Password Management: Hardcoded Password","engine":"fortify","sources":[1],"sourceRisks":["严重"]}, "A2EB4C20-92AC-4E8D-A92D-E0A94E9F62FA-2": {"risk":"高危","name":"Key Management: Hardcoded Encryption Key","engine":"fortify","sources":[1],"sourceRisks":["高危"]},
38
+ "A43E6C3F-CFD4-4567-B0C9-53B846D644C6-3": {"risk":"高危","name":"Access Control: Database","engine":"fortify","sources":[0],"sourceRisks":["高危"]}, "A70CBD65-7B7F-49A0-A648-3E2F4DACF222-1": {"risk":"严重","name":"Password Management: Hardcoded Password","engine":"fortify","sources":[0,1],"sourceRisks":["中危","严重"]},
39
+ "AEF0DC8A-E10A-4522-B6C1-DF29E67D96BA-1": {"risk":"严重","name":"Dynamic Code Evaluation: Code Injection","engine":"fortify","sources":[1],"sourceRisks":["严重"]}, "AM_CREATES_EMPTY_JAR_FILE_ENTRY": {"risk":"中危","name":"Bad practice - Creates an empty jar file entry","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
40
+ "AM_CREATES_EMPTY_ZIP_FILE_ENTRY": {"risk":"中危","name":"Bad practice - Creates an empty zip file entry","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "AT_OPERATION_SEQUENCE_ON_CONCURRENT_ABSTRACTION": {"risk":"中危","name":"Multi-threading - Sequence of calls to concurrent abstraction may not be atomic","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
41
+ "B1D6A836-C25A-4971-A9E8-6FCEBA60E3DB-1": {"risk":"严重","name":"XML External Entity Injection","engine":"fortify","sources":[0,1],"sourceRisks":["严重","严重"]}, "B388B9F0-CB58-4307-B689-6E59D6A99377-1": {"risk":"严重","name":"System Information Leak: External","engine":"fortify","sources":[1],"sourceRisks":["严重"]},
42
+ "B3F48BC9-A3C3-45D1-82DE-13A29A192B83-2": {"risk":"高危","name":"Weak SecurityManager Check: Overridable Method","engine":"fortify","sources":[1],"sourceRisks":["高危"]}, "B590E501-333A-41BA-B6E0-B08E2B1503B1-2": {"risk":"高危","name":"Password Management: Hardcoded Password","engine":"fortify","sources":[0,1],"sourceRisks":["中危","高危"]},
43
+ "B60480CF-9DC6-46A9-8A67-DAFC0AD9BC0C-2": {"risk":"高危","name":"Insecure Transport: Weak SSL Protocol","engine":"fortify","sources":[0,1],"sourceRisks":["高危","高危"]}, "BAADF2C8-89C1-415D-BAA0-7FA62199BC83-2": {"risk":"高危","name":"Privacy Violation","engine":"fortify","sources":[0,1],"sourceRisks":["中危","高危"]},
44
+ "BAC_BAD_APPLET_CONSTRUCTOR": {"risk":"中危","name":"Correctness - Bad Applet Constructor relies on uninitialized AppletStub","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "BC_BAD_CAST_TO_ABSTRACT_COLLECTION": {"risk":"低危","name":"Style - Questionable cast to abstract collection","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
45
+ "BC_BAD_CAST_TO_CONCRETE_COLLECTION": {"risk":"低危","name":"Style - Questionable cast to concrete collection","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "BC_EQUALS_METHOD_SHOULD_WORK_FOR_ALL_OBJECTS": {"risk":"中危","name":"Bad practice - Equals method should not assume anything about the type of its argument","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
46
+ "BC_IMPOSSIBLE_CAST": {"risk":"高危","name":"Correctness - Impossible cast","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]}, "BC_IMPOSSIBLE_CAST_PRIMITIVE_ARRAY": {"risk":"高危","name":"Correctness - Impossible cast involving primitive array","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
47
+ "BC_IMPOSSIBLE_DOWNCAST": {"risk":"高危","name":"Correctness - Impossible downcast","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]}, "BC_IMPOSSIBLE_DOWNCAST_OF_TOARRAY": {"risk":"高危","name":"Correctness - Impossible downcast of toArray() result","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
48
+ "BC_IMPOSSIBLE_INSTANCEOF": {"risk":"高危","name":"Correctness - instanceof will always return false","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]}, "BC_NULL_INSTANCEOF": {"risk":"中危","name":"Correctness - A known null value is checked to see if it is an instance of a type","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
49
+ "BC_UNCONFIRMED_CAST": {"risk":"低危","name":"Style - Unchecked/unconfirmed cast","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "BC_UNCONFIRMED_CAST_OF_RETURN_VALUE": {"risk":"低危","name":"Style - Unchecked/unconfirmed cast of return value from method","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
50
+ "BC_VACUOUS_INSTANCEOF": {"risk":"低危","name":"Style - instanceof will always return true","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "BE418AF6-534F-4812-AE94-314B8EFBFAC7-1": {"risk":"严重","name":"Weak Encryption: Insecure Mode of Operation","engine":"fortify","sources":[0,1],"sourceRisks":["中危","严重"]},
51
+ "BIT_ADD_OF_SIGNED_BYTE": {"risk":"中危","name":"Correctness - Bitwise add of signed byte value","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "BIT_AND": {"risk":"中危","name":"Correctness - Incompatible bit masks","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
52
+ "BIT_AND_ZZ": {"risk":"中危","name":"Correctness - Check to see if ((...) & 0) == 0","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "BIT_IOR": {"risk":"中危","name":"Correctness - Incompatible bit masks","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
53
+ "BIT_IOR_OF_SIGNED_BYTE": {"risk":"中危","name":"Correctness - Bitwise OR of signed byte value","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "BIT_SIGNED_CHECK": {"risk":"中危","name":"Bad practice - Check for sign of bitwise operation","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
54
+ "BIT_SIGNED_CHECK_HIGH_BIT": {"risk":"中危","name":"Correctness - Check for sign of bitwise operation involving negative number","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "BOA_BADLY_OVERRIDDEN_ADAPTER": {"risk":"中危","name":"Correctness - Class overrides a method implemented in super class Adapter wrongly","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
55
+ "BRSA_BAD_RESULTSET_ACCESS": {"risk":"中危","name":"Correctness - Method attempts to access a result set field with index 0","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "BSHIFT_WRONG_ADD_PRIORITY": {"risk":"中危","name":"Correctness - Possible bad parsing of shift operation","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
56
+ "BX_BOXING_IMMEDIATELY_UNBOXED": {"risk":"中危","name":"Performance - Primitive value is boxed and then immediately unboxed","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "BX_BOXING_IMMEDIATELY_UNBOXED_TO_PERFORM_COERCION": {"risk":"中危","name":"Performance - Primitive value is boxed then unboxed to perform primitive coercion","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
57
+ "BX_UNBOXED_AND_COERCED_FOR_TERNARY_OPERATOR": {"risk":"中危","name":"Performance - Primitive value is unboxed and coerced for ternary operator","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "BX_UNBOXING_IMMEDIATELY_REBOXED": {"risk":"中危","name":"Performance - Boxed value is unboxed and then immediately reboxed","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
58
+ "C1BBF18D-B40E-466B-A4B1-B0BF242830EE-2": {"risk":"高危","name":"Password Management: Hardcoded Password","engine":"fortify","sources":[0,1],"sourceRisks":["中危","高危"]}, "C204F020-1CA1-4c25-A6CB-BAA69CA2DA0B-1": {"risk":"严重","name":"Password Management: Hardcoded Password","engine":"fortify","sources":[0,1],"sourceRisks":["中危","严重"]},
59
+ "C2388850-FF2A-494F-9E37-71DDDA3B7F61-1": {"risk":"严重","name":"Command Injection","engine":"fortify","sources":[1],"sourceRisks":["严重"]}, "C4ECC6B6-1A5E-41D8-97DE-807334D22D07-1": {"risk":"严重","name":"Weak Encryption: Insecure Mode of Operation","engine":"fortify","sources":[0,1],"sourceRisks":["中危","严重"]},
60
+ "C54FA884-BC5A-4AD3-8ACF-C2687EFD9823-2": {"risk":"高危","name":"Privacy Violation","engine":"fortify","sources":[0,1],"sourceRisks":["中危","高危"]}, "C56A59B0-45CE-40C8-AAB5-C07F2CB779CF-1": {"risk":"严重","name":"Weak Encryption","engine":"fortify","sources":[0,1],"sourceRisks":["严重","严重"]},
61
+ "C5FBCC67-8AAF-4ED2-B91E-E47B3FDDC0AE-2": {"risk":"高危","name":"Password Management: Hardcoded Password","engine":"fortify","sources":[0,1],"sourceRisks":["中危","高危"]}, "CA902B4B-EA41-4C22-9492-E5849DA488CE-2": {"risk":"高危","name":"Privacy Violation","engine":"fortify","sources":[0,1],"sourceRisks":["中危","高危"]},
62
+ "CAA_COVARIANT_ARRAY_ELEMENT_STORE": {"risk":"中危","name":"Correctness - Possibly incompatible element is stored in covariant array","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "CAA_COVARIANT_ARRAY_FIELD": {"risk":"低危","name":"Style - Covariant array assignment to a field","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
63
+ "CAA_COVARIANT_ARRAY_LOCAL": {"risk":"低危","name":"Style - Covariant array assignment to a local variable","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CAA_COVARIANT_ARRAY_RETURN": {"risk":"低危","name":"Style - Covariant array is returned from the method","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
64
+ "CB211074-99D7-487D-ACDC-ABB76240268C-1": {"risk":"严重","name":"Password Management: Hardcoded Password","engine":"fortify","sources":[1],"sourceRisks":["严重"]}, "CB9BE89D-735A-488F-B546-84A397223457-2": {"risk":"高危","name":"Password Management: Empty Password","engine":"fortify","sources":[0,1],"sourceRisks":["中危","高危"]},
65
+ "CD544035-642B-4E92-B114-1682A307F986-1": {"risk":"严重","name":"Weak Encryption: Inadequate RSA Padding","engine":"fortify","sources":[0,1],"sourceRisks":["中危","严重"]}, "CD_CIRCULAR_DEPENDENCY": {"risk":"低危","name":"Style - Test for circular dependencies among classes","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
66
+ "CEA38018-69EE-45F9-8CD4-3FE97EC8F628-2": {"risk":"高危","name":"Privacy Violation","engine":"fortify","sources":[0,1],"sourceRisks":["中危","高危"]}, "CEC20E1A-B609-4C8E-978C-7C5F9945CE7B-2": {"risk":"高危","name":"Privacy Violation","engine":"fortify","sources":[0,1],"sourceRisks":["中危","高危"]},
67
+ "CFD5D7C5-08EB-4D20-AE29-28C05CDA4B92-1": {"risk":"严重","name":"Password Management: Hardcoded Password","engine":"fortify","sources":[0,1],"sourceRisks":["中危","严重"]}, "CI_CONFUSED_INHERITANCE": {"risk":"低危","name":"Style - Class is final but declares protected field","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
68
+ "CNT_ROUGH_CONSTANT_VALUE": {"risk":"中危","name":"Bad practice - Rough value of known constant found","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "CN_IDIOM": {"risk":"中危","name":"Bad practice - Class implements Cloneable but does not define or use clone method","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
69
+ "CN_IDIOM_NO_SUPER_CALL": {"risk":"中危","name":"Bad practice - clone method does not call super.clone()","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "CN_IMPLEMENTS_CLONE_BUT_NOT_CLONEABLE": {"risk":"中危","name":"Bad practice - Class defines clone() but doesn't implement Cloneable","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
70
+ "CO_ABSTRACT_SELF": {"risk":"中危","name":"Bad practice - Abstract class defines covariant compareTo() method","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "CO_COMPARETO_INCORRECT_FLOATING": {"risk":"中危","name":"Bad practice - compareTo()/compare() incorrectly handles float or double value","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
71
+ "CO_COMPARETO_RESULTS_MIN_VALUE": {"risk":"中危","name":"Bad practice - compareTo()/compare() returns Integer.MIN_VALUE","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "CO_SELF_NO_OBJECT": {"risk":"中危","name":"Bad practice - Covariant compareTo() method defined","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
72
+ "CVE-KD-0001": {"risk":"严重","name":"禁止使用指定类AccountUtils","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"],"check":{"kind":"指定类","target":"kd.bos.dc.utils.AccountUtils","regex":false}}, "CVE-KD-0002": {"risk":"严重","name":"禁止使用指定类MCDBUtil","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"],"check":{"kind":"指定类","target":"kd.bos.dc.utils.MCDBUtil","regex":false}},
73
+ "CVE-KD-0003": {"risk":"严重","name":"禁止使用指定类MCApiUtil","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"],"check":{"kind":"指定类","target":"kd.bos.dc.utils.MCApiUtil","regex":false}}, "CVE-KD-0004": {"risk":"严重","name":"禁止使用指定类LoginMCServiceDbImpl","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"],"check":{"kind":"指定类","target":"kd.bos.dc.mc.impl.LoginMCServiceDbImpl","regex":false}},
74
+ "CVE-KD-0005": {"risk":"严重","name":"禁止使用指定类DBConfig","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"],"check":{"kind":"指定类","target":"kd.bos.db.datasource.DBConfig","regex":false}}, "CVE-KD-0006": {"risk":"严重","name":"禁止使用指定类KDDriverUtil","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"],"check":{"kind":"指定类","target":"kd.bos.ksql.shell.KDDriverUtil","regex":false}},
75
+ "CVE-KD-0007": {"risk":"严重","name":"禁止使用指定类DataSourceFactory","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"],"check":{"kind":"指定类","target":"kd.bos.db.datasource.DataSourceFactory","regex":false}}, "CVE-KD-0008": {"risk":"低危","name":"禁止调用System.getenv","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
76
+ "CVE-KD-0009": {"risk":"低危","name":"禁止调用System.getProperty","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0010": {"risk":"低危","name":"禁止调用System.getProperties","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
77
+ "CVE-KD-0011-1": {"risk":"低危","name":"禁止二开通过反射操作,破坏苍穹架构约束Class.forName","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0011-2": {"risk":"低危","name":"禁止二开通过反射操作,破坏苍穹架构约束java.lang.reflect","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
78
+ "CVE-KD-0011-3": {"risk":"低危","name":"禁止二开通过反射操作,破坏苍穹架构约束URLClassLoader","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0012-1": {"risk":"低危","name":"禁止二开通过字节码ClassReader操作,破坏苍穹架构约束","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
79
+ "CVE-KD-0012-2": {"risk":"低危","name":"禁止二开通过字节码ClassWriter操作,破坏苍穹架构约束","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0012-3": {"risk":"低危","name":"禁止二开通过字节码ClassVisitor操作,破坏苍穹架构约束","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
80
+ "CVE-KD-0012-4": {"risk":"低危","name":"禁止二开通过字节码操作,破坏苍穹架构约束javassist.CtClass","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0012-5": {"risk":"低危","name":"禁止二开通过字节码操作,破坏苍穹架构约束ClassPool","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
81
+ "CVE-KD-0012-6": {"risk":"低危","name":"禁止二开通过字节码操作,破坏苍穹架构约束javassist.CtMethod","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0012-7": {"risk":"低危","name":"禁止二开通过字节码操作,破坏苍穹架构约束Instrumentation","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
82
+ "CVE-KD-0012-8": {"risk":"低危","name":"禁止二开通过字节码操作,破坏苍穹架构约束ClassFileTransformer","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0013-1": {"risk":"低危","name":"禁止关键字drop table","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
83
+ "CVE-KD-0013-2": {"risk":"低危","name":"禁止关键字truncate table","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0013-3": {"risk":"低危","name":"禁止关键字rename table","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
84
+ "CVE-KD-0014-1": {"risk":"严重","name":"禁止使用指定类方法RequestContext .setAccountId","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"],"check":{"kind":"指定类中指定方法","target":"kd.bos.context.RequestContext.setAccountId","regex":false}}, "CVE-KD-0014-2": {"risk":"严重","name":"禁止使用指定类方法RequestContext.setTenantId","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"],"check":{"kind":"指定类中指定方法","target":"kd.bos.context.RequestContext.setTenantId","regex":false}},
85
+ "CVE-KD-0015-1": {"risk":"低危","name":"禁止使用SessionInfo所有set方法","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0017": {"risk":"低危","name":"禁止调用System.setProperty","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
86
+ "CVE-KD-0018": {"risk":"严重","name":"禁止使用指定类RequestContextInfo","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"],"check":{"kind":"指定类","target":"kd.bos.db.RequestContextInfo","regex":false}}, "CVE-KD-0019-1": {"risk":"低危","name":"Redis访问治理:禁止直接通过JedisClient访问Redis","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
87
+ "CVE-KD-0019-2": {"risk":"低危","name":"Redis访问治理:禁止直接通过JedisClient访问Redis","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0020": {"risk":"低危","name":"Redis访问治理:禁止直接通过Jedis客户端第三方包访问Redis","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
88
+ "CVE-KD-0021": {"risk":"低危","name":"Zookeeper访问治理:禁止直接通过ZKFactory访问Zookeeper","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0022": {"risk":"低危","name":"Zookeeper访问治理:禁止直接通过Zookeeper客户端第三方包访问Zookeeper","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
89
+ "CVE-KD-0023": {"risk":"低危","name":"MQ访问治理:禁止直接通过RabbitMq客户端第三方包访问RabbiMq","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0024": {"risk":"低危","name":"MQ访问治理:禁止直接通过RockettMq客户端第三方包访问RockettMq","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
90
+ "CVE-KD-0025": {"risk":"低危","name":"MQ访问治理:禁止直接通过kafka客户端第三方包访问kafka","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0026-1": {"risk":"低危","name":"文件访问治理:禁止使用attachmentServer.url特殊关键字","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
91
+ "CVE-KD-0026-10": {"risk":"低危","name":"文件访问治理:禁止使用file/getFileSize.do特殊关键字","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0026-11": {"risk":"低危","name":"文件访问治理:禁止使用特殊关键字file/transferTempToPersist.do","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
92
+ "CVE-KD-0026-12": {"risk":"低危","name":"文件访问治理:禁止使用特殊关键字login/getTicket.do","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0026-13": {"risk":"低危","name":"文件访问治理:禁止使用特殊关键字keywords=tempfile/supportTempfile.do","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
93
+ "CVE-KD-0026-14": {"risk":"低危","name":"文件访问治理:禁止使用特殊关键字tempfile/isSupported.do","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0026-15": {"risk":"低危","name":"文件访问治理:禁止使用特殊关键字tempfile/isSupportTempTransToPersist.do","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
94
+ "CVE-KD-0026-16": {"risk":"低危","name":"文件访问治理:禁止使用特殊关键字fileServerManage/getVersion.do","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0026-17": {"risk":"低危","name":"文件访问治理:禁止使用特殊关键字fileServerManage/getDiskUrlInfos.do","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
95
+ "CVE-KD-0026-18": {"risk":"低危","name":"文件访问治理:禁止使用特殊关键字fileServerManage/getMatchFileMsgInfos.do","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0026-19": {"risk":"低危","name":"文件访问治理:禁止使用特殊关键字fileServerManage/getChildrenFileMsgInfos.do","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
96
+ "CVE-KD-0026-2": {"risk":"低危","name":"文件访问治理:禁止使用imageServer.url特殊关键字","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0026-20": {"risk":"低危","name":"文件访问治理:禁止使用特殊关键字fileServerManage/getMaxDirectoryScanDepth.do","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
97
+ "CVE-KD-0026-21": {"risk":"低危","name":"文件访问治理:禁止使用特殊关键字fileServerManage/getFileMsgInfo.do","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0026-22": {"risk":"低危","name":"文件访问治理:禁止使用特殊关键字fileServerManage/getFileMsgInfoTree.do","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
98
+ "CVE-KD-0026-23": {"risk":"低危","name":"文件访问治理:禁止使用特殊关键字fileServerManage/buildRmScript.do","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0026-24": {"risk":"低危","name":"文件访问治理:禁止使用特殊关键字fileServerManage/buildCopyScript.do","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
99
+ "CVE-KD-0026-25": {"risk":"低危","name":"文件访问治理:禁止使用特殊关键字ereceipt.url","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0026-3": {"risk":"低危","name":"文件访问治理:禁止使用attachment.fileserver特殊关键字","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
100
+ "CVE-KD-0026-4": {"risk":"低危","name":"文件访问治理:禁止使用image.fileserver特殊关键字","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0026-5": {"risk":"低危","name":"文件访问治理:禁止使用file/upload.do特殊关键字","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
101
+ "CVE-KD-0026-6": {"risk":"低危","name":"文件访问治理:禁止使用file/remove.do特殊关键字","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0026-7": {"risk":"低危","name":"文件访问治理:禁止使用file/exists.do特殊关键字","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
102
+ "CVE-KD-0026-8": {"risk":"低危","name":"文件访问治理:禁止使用file/getForbiddenExtensions.do特殊关键字","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0026-9": {"risk":"低危","name":"文件访问治理:禁止使用file/getAllowExtensions.do特殊关键字","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
103
+ "CVE-KD-0028-01": {"risk":"严重","name":"附件临时路径检查方式不正确redis.serversForCache&id=tempfile","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"],"check":{"kind":"关键字","target":"contains(\"configKey=redis.serversForCache&id=tempfile\")","regex":false}}, "CVE-KD-0028-02": {"risk":"严重","name":"附件临时路径检查方式不正确tempfile.redis","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"],"check":{"kind":"关键字","target":"contains(\"configKey=tempfile.redis\")","regex":false}},
104
+ "CVE-KD-0028-03": {"risk":"严重","name":"附件临时路径检查方式不正确redis.serversForCache","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"],"check":{"kind":"关键字","target":"contains(\"configKey=redis.serversForCache\")","regex":false}}, "CVE-KD-0028-04": {"risk":"严重","name":"附件临时路径检查方式不正确tempfile.fileserver","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"],"check":{"kind":"关键字","target":"contains(\"configKey=tempfile.fileserver\")","regex":false}},
105
+ "CVE-KD-0028-05": {"risk":"严重","name":"附件临时路径检查方式不正确tempfile.disk","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"],"check":{"kind":"关键字","target":"contains(\"configKey=tempfile.disk\")","regex":false}}, "CVE-KD-0028-06": {"risk":"严重","name":"附件临时路径检查方式不正确redis.serversForCache&id=tempfile","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"],"check":{"kind":"关键字","target":"indexOf(\"configKey=redis.serversForCache&id=tempfile\")","regex":false}},
106
+ "CVE-KD-0028-07": {"risk":"严重","name":"附件临时路径检查方式不正确configKey=tempfile.redis","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"],"check":{"kind":"关键字","target":"indexOf(\"configKey=tempfile.redis\")","regex":false}}, "CVE-KD-0028-08": {"risk":"严重","name":"附件临时路径检查方式不正确redis.serversForCache","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"],"check":{"kind":"关键字","target":"indexOf(\"configKey=redis.serversForCache\")","regex":false}},
107
+ "CVE-KD-0028-09": {"risk":"严重","name":"附件临时路径检查方式不正确tempfile.fileserver","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"],"check":{"kind":"关键字","target":"indexOf(\"configKey=tempfile.fileserver\")","regex":false}}, "CVE-KD-0028-10": {"risk":"严重","name":"附件临时路径检查方式不正确tempfile.disk","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"],"check":{"kind":"关键字","target":"indexOf(\"configKey=tempfile.disk\")","regex":false}},
108
+ "CVE-KD-0029": {"risk":"低危","name":"禁止二开使用Socket","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0051-03": {"risk":"低危","name":"禁止在循环中访问kd.bos.cache.redis.RedisSessionlessCache","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
109
+ "CVE-KD-0051-04": {"risk":"低危","name":"禁止在循环中访问kd.bos.cache.redis.RedisSessionableCache","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0051-07": {"risk":"低危","name":"禁止在循环中访问kd.bos.data.BusinessDataReader","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
110
+ "CVE-KD-0051-08": {"risk":"低危","name":"禁止在循环中访问kd.bos.data.BusinessDataWriter","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0051-09": {"risk":"低危","name":"禁止在循环中访问kd.bos.servicehelper.operation.OperationServiceHelper","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
111
+ "CVE-KD-0051-10": {"risk":"低危","name":"禁止在循环中访问kd.bos.servicehelper.operation.SaveServiceHelper","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0051-11": {"risk":"低危","name":"禁止在循环中访问kd.bos.servicehelper.operation.DeleteServiceHelper","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
112
+ "CVE-KD-0051-14": {"risk":"高危","name":"禁止在循环中访问kd.bos.db.DB的query方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.db.DB.query","regex":false}}, "CVE-KD-0051-15": {"risk":"高危","name":"禁止在循环中访问kd.bos.db.DB的queryDataSet方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.db.DB.queryDataSet","regex":false}},
113
+ "CVE-KD-0051-16": {"risk":"高危","name":"禁止在循环中访问kd.bos.db.DB的queryAlone方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.db.DB.queryAlone","regex":false}}, "CVE-KD-0051-17": {"risk":"高危","name":"禁止在循环中访问kd.bos.db.DB的update方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.db.DB.update","regex":false}},
114
+ "CVE-KD-0051-18": {"risk":"高危","name":"禁止在循环中访问kd.bos.db.DB的execute方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.db.DB.execute","regex":false}}, "CVE-KD-0051-19": {"risk":"高危","name":"禁止在循环中访问kd.bos.db.DB的executeBatch方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.db.DB.executeBatch","regex":false}},
115
+ "CVE-KD-0051-21": {"risk":"高危","name":"禁止在循环中访问kd.bos.db.DB的extractQuery方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.db.DB.extractQuery","regex":false}}, "CVE-KD-0051-22": {"risk":"高危","name":"禁止在循环中访问kd.bos.db.DB的beginThreadRead方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.db.DB.beginThreadRead","regex":false}},
116
+ "CVE-KD-0051-23": {"risk":"高危","name":"禁止在循环中访问kd.bos.db.DB的beginThreadWrite方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.db.DB.beginThreadWrite","regex":false}}, "CVE-KD-0051-24": {"risk":"高危","name":"禁止在循环中访问kd.bos.db.DB的beginThreadAutoReadWrite方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.db.DB.beginThreadAutoReadWrite","regex":false}},
117
+ "CVE-KD-0051-25": {"risk":"高危","name":"禁止在循环中访问kd.bos.db.DB的endThreadReadWrite方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.db.DB.endThreadReadWrite","regex":false}}, "CVE-KD-0051-26": {"risk":"高危","name":"禁止在循环中访问kd.bos.db.DB的prepareBatch方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.db.DB.prepareBatch","regex":false}},
118
+ "CVE-KD-0051-27": {"risk":"高危","name":"禁止在循环中访问kd.bos.db.DB的prepareStatement方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.db.DB.prepareStatement","regex":false}}, "CVE-KD-0051-28": {"risk":"高危","name":"禁止在循环中访问kd.bos.orm.ORM的insert方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.orm.ORM.insert","regex":false}},
119
+ "CVE-KD-0051-29": {"risk":"高危","name":"禁止在循环中访问kd.bos.orm.ORM的update方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.orm.ORM.update","regex":false}}, "CVE-KD-0051-30": {"risk":"高危","name":"禁止在循环中访问kd.bos.orm.ORM的save方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.orm.ORM.save","regex":false}},
120
+ "CVE-KD-0051-31": {"risk":"高危","name":"禁止在循环中访问kd.bos.orm.ORM的delete方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.orm.ORM.delete","regex":false}}, "CVE-KD-0051-32": {"risk":"高危","name":"禁止在循环中访问kd.bos.orm.ORM的queryOne方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.orm.ORM.queryOne","regex":false}},
121
+ "CVE-KD-0051-33": {"risk":"高危","name":"禁止在循环中访问kd.bos.orm.ORM的query方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.orm.ORM.query","regex":false}}, "CVE-KD-0051-34": {"risk":"高危","name":"禁止在循环中访问kd.bos.orm.ORM的queryDataSet方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.orm.ORM.queryDataSet","regex":false}},
122
+ "CVE-KD-0051-35": {"risk":"高危","name":"禁止在循环中访问kd.bos.orm.ORM的queryJoinDataSet方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.orm.ORM.queryJoinDataSet","regex":false}}, "CVE-KD-0051-36": {"risk":"高危","name":"禁止在循环中访问kd.bos.orm.ORM的queryJoinCount方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.orm.ORM.queryJoinCount","regex":false}},
123
+ "CVE-KD-0051-38": {"risk":"高危","name":"禁止在循环中访问kd.bos.orm.ORM的queryDataSetAlone方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.orm.ORM.queryDataSetAlone","regex":false}}, "CVE-KD-0051-39": {"risk":"高危","name":"禁止在循环中访问kd.bos.orm.impl.DataManager的read方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.orm.impl.DataManager.read","regex":false}},
124
+ "CVE-KD-0051-40": {"risk":"高危","name":"禁止在循环中访问kd.bos.orm.impl.DataManager的select方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.orm.impl.DataManager.select","regex":false}}, "CVE-KD-0051-41": {"risk":"高危","name":"禁止在循环中访问kd.bos.orm.impl.DataManager的getSaveDataSet方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.orm.impl.DataManager.getSaveDataSet","regex":false}},
125
+ "CVE-KD-0051-42": {"risk":"高危","name":"禁止在循环中访问kd.bos.orm.impl.DataManager的save方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.orm.impl.DataManager.save","regex":false}}, "CVE-KD-0051-43": {"risk":"高危","name":"禁止在循环中访问kd.bos.orm.impl.DataManager的delete方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.orm.impl.DataManager.delete","regex":false}},
126
+ "CVE-KD-0051-44": {"risk":"高危","name":"禁止在循环中访问kd.bos.orm.impl.DataManager的update方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.orm.impl.DataManager.update","regex":false}}, "CVE-KD-0051-45": {"risk":"高危","name":"禁止在循环中访问kd.bos.orm.impl.DataManager的commitSnapData方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.orm.impl.DataManager.commitSnapData","regex":false}},
127
+ "CVE-KD-0051-46": {"risk":"高危","name":"禁止在循环中访问kd.bos.servicehelper.BusinessDataServiceHelper的loadHead方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.servicehelper.BusinessDataServiceHelper.loadHead","regex":false}}, "CVE-KD-0051-47": {"risk":"高危","name":"禁止在循环中访问kd.bos.servicehelper.BusinessDataServiceHelper的loadSingle方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.servicehelper.BusinessDataServiceHelper.loadSingle","regex":false}},
128
+ "CVE-KD-0051-48": {"risk":"高危","name":"禁止在循环中访问kd.bos.servicehelper.BusinessDataServiceHelper的loadSingleFromCache方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.servicehelper.BusinessDataServiceHelper.loadSingleFromCache","regex":false}}, "CVE-KD-0051-49": {"risk":"高危","name":"禁止在循环中访问kd.bos.servicehelper.BusinessDataServiceHelper的load方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.servicehelper.BusinessDataServiceHelper.load","regex":false}},
129
+ "CVE-KD-0051-50": {"risk":"高危","name":"禁止在循环中访问kd.bos.servicehelper.BusinessDataServiceHelper的loadWithPermission方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.servicehelper.BusinessDataServiceHelper.loadWithPermission","regex":false}}, "CVE-KD-0051-51": {"risk":"高危","name":"禁止在循环中访问kd.bos.servicehelper.BusinessDataServiceHelper的loadFromCache方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.servicehelper.BusinessDataServiceHelper.loadFromCache","regex":false}},
130
+ "CVE-KD-0051-52": {"risk":"高危","name":"禁止在循环中访问kd.bos.servicehelper.BusinessDataServiceHelper的removeCache方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.servicehelper.BusinessDataServiceHelper.removeCache","regex":false}}, "CVE-KD-0051-53": {"risk":"高危","name":"禁止在循环中访问kd.bos.servicehelper.BusinessDataServiceHelper的loadRefence方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.servicehelper.BusinessDataServiceHelper.loadRefence","regex":false}},
131
+ "CVE-KD-0051-54": {"risk":"高危","name":"禁止在循环中访问kd.bos.servicehelper.BusinessDataServiceHelper的delete方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.servicehelper.BusinessDataServiceHelper.delete","regex":false}}, "CVE-KD-0051-55": {"risk":"高危","name":"禁止在循环中访问kd.bos.servicehelper.BusinessDataServiceHelper的save方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.servicehelper.BusinessDataServiceHelper.save","regex":false}},
132
+ "CVE-KD-0051-56": {"risk":"高危","name":"禁止在循环中访问kd.bos.logorm.LogORM的create方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.logorm.LogORM.create","regex":false}}, "CVE-KD-0051-57": {"risk":"高危","name":"禁止在循环中访问kd.bos.logorm.LogORM的insert方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.logorm.LogORM.insert","regex":false}},
133
+ "CVE-KD-0051-58": {"risk":"高危","name":"禁止在循环中访问kd.bos.logorm.LogORM的update方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.logorm.LogORM.update","regex":false}}, "CVE-KD-0051-59": {"risk":"高危","name":"禁止在循环中访问kd.bos.logorm.LogORM的delete方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.logorm.LogORM.delete","regex":false}},
134
+ "CVE-KD-0051-60": {"risk":"高危","name":"禁止在循环中访问kd.bos.logorm.LogORM的query方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.logorm.LogORM.query","regex":false}}, "CVE-KD-0051-61": {"risk":"高危","name":"禁止在循环中访问kd.bos.logorm.LogORM的queryDataSet方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.logorm.LogORM.queryDataSet","regex":false}},
135
+ "CVE-KD-0051-62": {"risk":"高危","name":"禁止在循环中访问kd.bos.servicehelper.QueryServiceHelper的query方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.servicehelper.QueryServiceHelper.query","regex":false}}, "CVE-KD-0051-63": {"risk":"高危","name":"禁止在循环中访问kd.bos.servicehelper.QueryServiceHelper的queryByDate方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.servicehelper.QueryServiceHelper.queryByDate","regex":false}},
136
+ "CVE-KD-0051-64": {"risk":"高危","name":"禁止在循环中访问kd.bos.servicehelper.QueryServiceHelper的queryOne方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.servicehelper.QueryServiceHelper.queryOne","regex":false}}, "CVE-KD-0051-65": {"risk":"高危","name":"禁止在循环中访问kd.bos.servicehelper.QueryServiceHelper的queryDataSet方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.servicehelper.QueryServiceHelper.queryDataSet","regex":false}},
137
+ "CVE-KD-0051-66": {"risk":"高危","name":"禁止在循环中访问kd.bos.servicehelper.QueryServiceHelper的queryPrimaryKeys方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.servicehelper.QueryServiceHelper.queryPrimaryKeys","regex":false}}, "CVE-KD-0051-67": {"risk":"高危","name":"禁止在循环中访问kd.bos.servicehelper.QueryServiceHelper的getAllBillNo方法","engine":"sonar","sources":[1],"sourceRisks":["高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.servicehelper.QueryServiceHelper.getAllBillNo","regex":false}},
138
+ "CVE-KD-0052": {"risk":"高危","name":"禁止循环中访问view.updateView()","engine":"sonar","sources":[0],"sourceRisks":["高危"]}, "CVE-KD-0053-01": {"risk":"严重","name":"关键字禁止select *","engine":"sonar","sources":[0],"sourceRisks":["严重"]},
139
+ "CVE-KD-0054-1": {"risk":"低危","name":"禁止循环调用PageCache","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0054-2": {"risk":"低危","name":"禁止循环调用RootPageCache","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
140
+ "CVE-KD-0055-1": {"risk":"低危","name":"二开禁止使用原生线程","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0055-2": {"risk":"低危","name":"禁止使用指定类java.util.concurrent.FutureTask","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
141
+ "CVE-KD-0055-3": {"risk":"低危","name":"禁止使用指定类java.util.concurrent.ExecutorService","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0055-4": {"risk":"低危","name":"禁止使用指定类java.util.concurrent.Executors","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
142
+ "CVE-KD-0055-5": {"risk":"低危","name":"禁止使用指定类java.util.concurrent.ThreadPoolExecutor","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0055-6": {"risk":"低危","name":"禁止使用指定类java.util.concurrent.ForkJoinPool","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
143
+ "CVE-KD-0055-7": {"risk":"低危","name":"禁止使用指定类java.util.concurrent.ScheduledExecutorService","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0055-8": {"risk":"低危","name":"禁止使用指定类java.util.concurrent.CompletableFuture","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
144
+ "CVE-KD-0055-9": {"risk":"低危","name":"禁止使用指定类java.util.concurrent.Future","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0056-01": {"risk":"低危","name":"禁止使用java.util.Collection静态集合变量","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
145
+ "CVE-KD-0056-02": {"risk":"高危","name":"禁止使用java.util.Map静态集合变量","engine":"sonar","sources":[0,1],"sourceRisks":["低危","高危"],"check":{"kind":"静态变量集合","target":"java.util.Map","regex":false}}, "CVE-KD-0056-03": {"risk":"低危","name":"禁止使用java.util.Set静态集合变量","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
146
+ "CVE-KD-0056-04": {"risk":"高危","name":"禁止使用java.util.List静态集合变量","engine":"sonar","sources":[0,1],"sourceRisks":["低危","高危"],"check":{"kind":"静态变量集合","target":"java.util.List","regex":false}}, "CVE-KD-0056-05": {"risk":"低危","name":"禁止使用java.util.HashMap静态集合变量","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
147
+ "CVE-KD-0056-06": {"risk":"低危","name":"禁止使用java.util.LinkedHashMap静态集合变量","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0056-07": {"risk":"低危","name":"禁止使用java.util.Hashtable静态集合变量","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
148
+ "CVE-KD-0056-08": {"risk":"低危","name":"禁止使用java.util.TreeMap静态集合变量","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0056-09": {"risk":"低危","name":"禁止使用java.util.WeakHashMap静态集合变量","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
149
+ "CVE-KD-0056-10": {"risk":"低危","name":"禁止使用java.util.IdentityHashMap静态集合变量","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0056-11": {"risk":"低危","name":"禁止使用java.util.Properties静态集合变量","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
150
+ "CVE-KD-0056-12": {"risk":"低危","name":"禁止使用java.util.HashSet静态集合变量","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0056-13": {"risk":"低危","name":"禁止使用java.util.LinkedHashSet静态集合变量","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
151
+ "CVE-KD-0056-14": {"risk":"低危","name":"禁止使用java.util.TreeSet静态集合变量","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0056-15": {"risk":"低危","name":"禁止使用java.util.ArrayList静态集合变量","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
152
+ "CVE-KD-0056-16": {"risk":"低危","name":"禁止使用java.util.LinkedList静态集合变量","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0056-17": {"risk":"低危","name":"禁止使用java.util.Vector静态集合变量","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
153
+ "CVE-KD-0056-18": {"risk":"低危","name":"禁止使用java.util.Stack静态集合变量","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0056-19": {"risk":"低危","name":"禁止使用java.util.concurrent.ConcurrentHashMap静态集合变量","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
154
+ "CVE-KD-0056-20": {"risk":"低危","name":"禁止使用java.util.concurrent.ConcurrentSkipListMap静态集合变量","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0056-21": {"risk":"低危","name":"禁止使用java.util.concurrent.CopyOnWriteArrayList静态集合变量","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
155
+ "CVE-KD-0056-22": {"risk":"低危","name":"禁止使用java.util.concurrent.CopyOnWriteArraySet静态集合变量","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0056-23": {"risk":"低危","name":"禁止使用java.util.concurrent.ConcurrentSkipListSet静态集合变量","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
156
+ "CVE-KD-0058-1": {"risk":"严重","name":"日志治理:禁止循环中写日志","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"],"check":{"kind":"循环里面指定类","target":"kd.bos.logging.Log","regex":false}}, "CVE-KD-0058-2": {"risk":"严重","name":"日志治理:禁止循环中写日志","engine":"sonar","sources":[0],"sourceRisks":["严重"]},
157
+ "CVE-KD-0059-1": {"risk":"严重","name":"避免不合理地调用MetadataDao","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"],"check":{"kind":"指定类中指定方法","target":"kd.bos.metadata.dao.MetadataDao.buildRuntimeVersion,checkMetaDataExist,cleanAllAppMetadataCache,cleanAllPortalAppCache,cleanAppCache,cleanPreinsdataCache,clearCache,clearExtendCache,clearSubAndRebuildRuntimeMeta,clearSubRuntimeMeta,clearUserAppPermissionCache,clearUserCloudPermissionCache,compareRuntimeVersion,delFormMetadata,delRuntimeMeta,deployAppMetadata,deployCard,deployCloud,deployCloudMetadata,deployMetadata,deploySchema,deployScript,getAllExts,getAllFormNumbers,getAllPortalAppCache,getAllRebuildFormDesignMeta,getAppCacheById,getAppDeployFile,getAppGroup,getAppLocale,getBizObjExtMetadata,getCacheKey,getCardDeployFile,getCloudDeployFile,getCloudLocale,getConvertRuleDeployFile,getCustMetadataDeployFile,getDataEntityType,getEarlyWarnDeployFile","regex":false}}, "CVE-KD-0059-2": {"risk":"严重","name":"避免不合理地调用MetadataDao","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"],"check":{"kind":"指定类中指定方法","target":"kd.bos.metadata.dao.MetadataDao.getFormDeployFile,getLocale,getLocaleVersionMap,getMetaLVersion,getMetaVersion,getMetadataReader,getMetadataWriter,getRebuildFormDesignMeta,getRelationApps,getRelationAppsInfo,getRuntimeMetaVersion,getSceneDeployFile,getSchemaDeployFile,getScriptDeployFile,getSubApps,getWriteBackRuleDeployFile,insertPageIntoDevportal,isGrayGroup,isJSON,isXML1,loadDesignerMetadata,loadDesignerMetadata2,loadFullMetaTerm,loadMetaTermByLang,putAllPortalAppCache,putAppCache,queryBuildFormDesignMeta,queryExts,readBaseMeta,readDefaultLayout,readGroupMeta,readMeta,readRuntimeMeta,rebuildMetaOfDiffVerById,rebuildRuntimeAppMetaById,rebuildRuntimeAppMetaByNumber,rebuildRuntimeMetaById,rebuildRuntimeMetaByNumber,rebuildRuntimeMetaDiffVer","regex":false}},
158
+ "CVE-KD-0059-3": {"risk":"严重","name":"避免不合理地调用MetadataDao","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"],"check":{"kind":"指定类中指定方法","target":"kd.bos.metadata.dao.MetadataDao.refreshMainEntityLName","regex":false}}, "CVE-KD-0060-1": {"risk":"严重","name":"禁止使用方言/*dialect*/","engine":"sonar","sources":[1],"sourceRisks":["严重"],"check":{"kind":"关键字","target":"/*dialect*/","regex":false}},
159
+ "CVE-KD-0201": {"risk":"低危","name":"禁止循环调用微服务接口","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0209-1": {"risk":"低危","name":"禁止使用System.out.print打印日志","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
160
+ "CVE-KD-0209-2": {"risk":"低危","name":"禁止使用e.printStackTrace()打印日志","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0302-01": {"risk":"严重","name":"二开删除数据必须加有效过滤条件","engine":"sonar","sources":[0],"sourceRisks":["严重"]},
161
+ "CVE-KD-0302-02": {"risk":"严重","name":"DB类删除数据必须加有效过滤条件","engine":"sonar","sources":[0],"sourceRisks":["严重"]}, "CVE-KD-0303": {"risk":"严重","name":"二开查询数据必须加有效过滤条件","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"]},
162
+ "CVE-KD-0400": {"risk":"低危","name":"禁止调用kd.bos.lang.Lang.setHolder","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0401": {"risk":"严重","name":"禁止通过注释跳过sonar检查(// NOSONAR)","engine":"sonar","sources":[0],"sourceRisks":["严重"]},
163
+ "CVE-KD-0402": {"risk":"低危","name":"禁止通注解跳过sonar检查(@SuppressWarnings(\"squid:S243\"))","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0403": {"risk":"中危","name":"包名,类名,方法名,变量名中文检测","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
164
+ "CVE-KD-0413": {"risk":"低危","name":"禁止使用kd.bos.db.DB","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "CVE-KD-0414-1": {"risk":"严重","name":"禁止引用非标准SDK内容-历史项目","engine":"sonar","sources":[1],"sourceRisks":["严重"]},
165
+ "CVE-KD-0414-2": {"risk":"严重","name":"禁止引用非标准SDK内容-新项目","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"]}, "CVE-KD-0501": {"risk":"高危","name":"二开代码使用jdk17构建错误","engine":"jdk17Build","sources":[0],"sourceRisks":["高危"]},
166
+ "CVE-KD-0717-1": {"risk":"严重","name":"禁止二开直接通过ORM,DeleteServiceHelper,BusinessDataWrite类删除标品数据","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"]}, "CVE-KD-0717-2": {"risk":"严重","name":"禁止二开直接删除数据——DeleteServiceHelper.delete()","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"],"check":{"kind":"指定类中指定方法","target":"kd.bos.servicehelper.operation.DeleteServiceHelper.delete","regex":false}},
167
+ "CVE-KD-0717-3": {"risk":"严重","name":"禁止二开直接删除数据——BusinessDataWriter.delete()","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"],"check":{"kind":"指定类中指定方法","target":"kd.bos.data.BusinessDataWriter.delete","regex":false}}, "CVE-KD-0717-4": {"risk":"严重","name":"禁止二开直接删除数据——ORM.delete()","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"],"check":{"kind":"指定类中指定方法","target":"kd.bos.orm.ORM.delete","regex":false}},
168
+ "CVE-KD-0720-1": {"risk":"严重","name":"禁止使用CREATE VIEW创建视图","engine":"sonar","sources":[1],"sourceRisks":["严重"],"check":{"kind":"关键字","target":"CREATE(?:\\s+OR\\s+REPLACE)?\\s+VIEW","regex":true}}, "CVE-KD-0720-2": {"risk":"严重","name":"禁止使用CREATE OR REPLACE VIEW创建视图","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"],"check":{"kind":"关键字","target":"CREATE OR REPLACE VIEW","regex":false}},
169
+ "CVE-KD-0721-1": {"risk":"严重","name":"禁止使用CREATE PROCEDURE创建存储过程","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"],"check":{"kind":"关键字","target":"CREATE PROCEDURE","regex":false}}, "CVE-KD-0721-2": {"risk":"严重","name":"禁止使用CREATE OR REPLACE PROCEDURE创建存储过程","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"],"check":{"kind":"关键字","target":"CREATE OR REPLACE PROCEDURE","regex":false}},
170
+ "CVE-KD-0722-1": {"risk":"严重","name":"禁止使用CREATE FUNCTION创建函数","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"],"check":{"kind":"关键字","target":"CREATE FUNCTION","regex":false}}, "CVE-KD-0722-2": {"risk":"严重","name":"禁止使用CREATE OR REPLACE FUNCTION创建函数","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"],"check":{"kind":"关键字","target":"CREATE OR REPLACE FUNCTION","regex":false}},
171
+ "CVE-KD-0723-1": {"risk":"严重","name":"禁止使用CREATE TRIGGER创建触发器","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"],"check":{"kind":"关键字","target":"CREATE TRIGGER","regex":false}}, "CVE-KD-0723-2": {"risk":"严重","name":"禁止使用CREATE OR REPLACE TRIGGER创建触发器","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"],"check":{"kind":"关键字","target":"CREATE OR REPLACE TRIGGER","regex":false}},
172
+ "CVE-KD-1201-1": {"risk":"高危","name":"禁止二开通过SaveServiceHelper.save/update更新标准实体","engine":"sonar","sources":[1],"sourceRisks":["高危"]}, "CVE-KD-1215-1": {"risk":"高危","name":"禁止在两层及以上循环内读写数据库","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
173
+ "CVE-KD-1215-2": {"risk":"严重","name":"禁止在三层及以上循环内读写数据库","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"]}, "CVE-KD-2026-0508": {"risk":"严重","name":"禁止使用kd.bos.orm.ORM","engine":"sonar","sources":[0,1],"sourceRisks":["低危","严重"],"check":{"kind":"指定类","target":"kd.bos.orm.ORM","regex":false}},
174
+ "CVE-KD-2026-0618": {"risk":"严重","name":"禁止在 propertyChanged() 中无条件调用 updateView()","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"]}, "CVE-KD-20260901-1": {"risk":"严重","name":"禁止使用kd.bos.zk","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"],"check":{"kind":"关键字","target":"kd.bos.zk","regex":false}},
175
+ "CVE-KD-20260901-2": {"risk":"严重","name":"禁止使用org.apache.zookeeper","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"],"check":{"kind":"关键字","target":"org.apache.zookeeper","regex":false}}, "CVE-KD-20260901-3": {"risk":"严重","name":"禁止使用org.apache.curator","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"],"check":{"kind":"关键字","target":"org.apache.curator","regex":false}},
176
+ "CVE-KD-20260901-4": {"risk":"严重","name":"禁止使用kd.bos.mq.MessageConsumer","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"],"check":{"kind":"关键字","target":"kd.bos.mq.MessageConsumer","regex":false}}, "CVE-KD-KSC-0001": {"risk":"严重","name":"KSC文件和TS文件不匹配","engine":"ksc","sources":[1],"sourceRisks":["严重"]},
177
+ "CVE-KD-SCAN-falsify-jar": {"risk":"严重","name":"非法篡改第三方jar包","engine":"filescan","sources":[0,1],"sourceRisks":["严重","严重"]}, "CVE-KD-SCAN-jar": {"risk":"严重","name":"引入第三方jar包","engine":"filescan","sources":[0,1],"sourceRisks":["严重","严重"]},
178
+ "CVE-KD-SCAN-libFile": {"risk":"严重","name":"引入第三方文件","engine":"filescan","sources":[0,1],"sourceRisks":["严重","严重"]}, "CVE-KD-SCAN-otherFile": {"risk":"严重","name":"引入资源文件","engine":"filescan","sources":[0,1],"sourceRisks":["低危","严重"]},
179
+ "CVE-KD-SQL-0001": {"risk":"严重","name":"禁止创建视图","engine":"sqlScan","sources":[0,1],"sourceRisks":["严重","严重"],"check":{"kind":"正则表达式","target":"CREATE\\s+(OR\\s+REPLACE\\s+)?VIEW\\s+([\\w.]+)","regex":false}}, "CVE-KD-SQL-0002": {"risk":"严重","name":"禁止创建存储过程","engine":"sqlScan","sources":[0,1],"sourceRisks":["严重","严重"],"check":{"kind":"正则表达式","target":"CREATE\\s+(OR\\s+REPLACE\\s+)?PROCEDURE\\s+([\\w.]+)","regex":false}},
180
+ "CVE-KD-SQL-0003": {"risk":"严重","name":"禁止创建函数","engine":"sqlScan","sources":[0,1],"sourceRisks":["严重","严重"],"check":{"kind":"正则表达式","target":"CREATE\\s+(OR\\s+REPLACE\\s+)?FUNCTION\\s+([\\w.]+)","regex":false}}, "CVE-KD-SQL-0004": {"risk":"严重","name":"禁止创建触发器","engine":"sqlScan","sources":[0,1],"sourceRisks":["严重","严重"],"check":{"kind":"正则表达式","target":"CREATE\\s+TRIGGER\\s+([\\w.]+)","regex":false}},
181
+ "CVE-KD-SQL-0005": {"risk":"严重","name":"禁止插入数据","engine":"sqlScan","sources":[0,1],"sourceRisks":["低危","严重"],"check":{"kind":"正则表达式","target":"INSERT\\s+INTO\\s+([\\w.]+)","regex":false}}, "CVE-KD-SQL-0006": {"risk":"严重","name":"禁止更新数据","engine":"sqlScan","sources":[0,1],"sourceRisks":["严重","严重"],"check":{"kind":"正则表达式","target":"UPDATE\\s+([\\w.]+)\\s+SET\\b","regex":false}},
182
+ "CVE-KD-SQL-0007": {"risk":"严重","name":"禁止删除数据","engine":"sqlScan","sources":[0,1],"sourceRisks":["严重","严重"],"check":{"kind":"正则表达式","target":"DELETE\\s+(?:FROM\\s+)?([\\w.]+)","regex":false}}, "CVE-KD-SQL-0008": {"risk":"严重","name":"禁止删除字段","engine":"sqlScan","sources":[0,1],"sourceRisks":["严重","严重"],"check":{"kind":"正则表达式","target":"ALTER\\s+TABLE\\s+([\\w.]+)\\s+DROP\\s+COLUMN\\s+(\\w+)|EXEC\\s+p_AlterColumn\\s+'([^']+)'\\s*,\\s*'([^']+)'\\s*,\\s*'NULL'.*?","regex":false}},
183
+ "CVE-KD-SQL-0009": {"risk":"严重","name":"禁止删除表","engine":"sqlScan","sources":[0,1],"sourceRisks":["严重","严重"],"check":{"kind":"正则表达式","target":"DROP\\s+TABLE\\s+([\\w.]+)","regex":false}}, "CVE-KD-SQL-0010": {"risk":"严重","name":"禁止重命名表和字段","engine":"sqlScan","sources":[0,1],"sourceRisks":["严重","严重"],"check":{"kind":"正则表达式","target":"ALTER\\s+TABLE\\s+([\\w.]+)\\s+RENAME\\s+TO\\s+([\\w.]+)|ALTER\\s+TABLE\\s+([\\w.]+)\\s+RENAME\\s+([\\w.]+)\\s+TO\\s+([\\w.]+)|EXEC\\s+p_modifyobjectname.*?","regex":false}},
184
+ "CVE-KD-SQL-0011": {"risk":"严重","name":"新增、修改索引关联大表预警","engine":"sqlScan","sources":[1],"sourceRisks":["严重"]}, "CVE-KD-SQL-0012": {"risk":"严重","name":"新增字段关联大表预警","engine":"sqlScan","sources":[1],"sourceRisks":["严重"]},
185
+ "CVE-KD-SQL-0013": {"risk":"严重","name":"修改字段关联大表预警","engine":"sqlScan","sources":[1],"sourceRisks":["严重"]}, "CVE-KD-SQL-0014": {"risk":"严重","name":"新建表名长度不可超过24个字符","engine":"sqlScan","sources":[0,1],"sourceRisks":["严重","严重"]},
186
+ "CVE-KD-SQL-0015": {"risk":"严重","name":"文件非UTF-8格式","engine":"sqlScan","sources":[0,1],"sourceRisks":["低危","严重"]}, "CVE-KD-SQL-0016": {"risk":"高危","name":"ISV产品禁止使用/*dialect*/方言SQL","engine":"sqlScan","sources":[1],"sourceRisks":["高危"],"check":{"kind":"正则表达式","target":"/\\*dialect\\*/\\s*","regex":false}},
187
+ "CVE-KD-SQL-0017": {"risk":"高危","name":"INSERT语句必须指定列名","engine":"sqlScan","sources":[1],"sourceRisks":["高危"],"check":{"kind":"正则表达式","target":"INSERT\\s+INTO\\s+[\\w.]+\\s+(?!\\(|SET\\b)","regex":false}}, "CVE-KD-TS-0051-07": {"risk":"高危","name":"禁止在循环中访问kd.bos.data.BusinessDataReader","engine":"eslint","sources":[0,1],"sourceRisks":["高危","高危"],"check":{"kind":"循环里面指定类","target":"kd.bos.data.BusinessDataReader","regex":false}},
188
+ "CVE-KD-TS-0051-09": {"risk":"高危","name":"禁止在循环中访问kd.bos.servicehelper.operation.OperationServiceHelper","engine":"eslint","sources":[0,1],"sourceRisks":["高危","高危"],"check":{"kind":"循环里面指定类","target":"kd.bos.servicehelper.operation.OperationServiceHelper","regex":false}}, "CVE-KD-TS-0051-10": {"risk":"高危","name":"禁止在循环中访问kd.bos.servicehelper.operation.SaveServiceHelper","engine":"eslint","sources":[0,1],"sourceRisks":["高危","高危"],"check":{"kind":"循环里面指定类","target":"kd.bos.servicehelper.operation.SaveServiceHelper","regex":false}},
189
+ "CVE-KD-TS-0051-11": {"risk":"高危","name":"禁止在循环中访问kd.bos.servicehelper.operation.DeleteServiceHelper","engine":"eslint","sources":[0,1],"sourceRisks":["高危","高危"],"check":{"kind":"循环里面指定类","target":"kd.bos.servicehelper.operation.DeleteServiceHelper","regex":false}}, "CVE-KD-TS-0051-46": {"risk":"高危","name":"禁止在循环中访问kd.bos.servicehelper.BusinessDataServiceHelper的loadHead方法","engine":"eslint","sources":[0,1],"sourceRisks":["高危","高危"],"check":{"kind":"循环里面指定方法","target":"kd.bos.servicehelper.BusinessDataServiceHelper.loadHead","regex":false}},
190
+ "CVE-KD-TS-0413": {"risk":"高危","name":"禁止使用kd.bos.db.DB","engine":"eslint","sources":[0,1],"sourceRisks":["高危","高危"],"check":{"kind":"指定类","target":"kd.bos.db.DB","regex":false}}, "CVE-KD-TS-1215-1": {"risk":"高危","name":"禁止在两层及以上循环内读写数据库","engine":"eslint","sources":[0,1],"sourceRisks":["高危","高危"]},
191
+ "CVE-KD-TS-1215-2": {"risk":"严重","name":"禁止在三层及以上循环内读写数据库","engine":"eslint","sources":[0,1],"sourceRisks":["严重","严重"]}, "CVE-KD-TS-2026-0508": {"risk":"高危","name":"kd.bos.orm.ORM","engine":"eslint","sources":[1],"sourceRisks":["高危"],"check":{"kind":"指定类","target":"kd.bos.orm.ORM","regex":false}},
192
+ "D075989F-6958-425F-9834-5248CC7C91C1-2": {"risk":"高危","name":"Key Management: Empty Encryption Key","engine":"fortify","sources":[1],"sourceRisks":["高危"]}, "D92D11B4-E03C-4B93-9DAA-402C19BE7EFC-1": {"risk":"严重","name":"XML External Entity Injection","engine":"fortify","sources":[1],"sourceRisks":["严重"]},
193
+ "DB_DUPLICATE_BRANCHES": {"risk":"低危","name":"Style - Method uses the same code for two branches","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "DB_DUPLICATE_SWITCH_CLAUSES": {"risk":"低危","name":"Style - Method uses the same code for two switch clauses","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
194
+ "DCN_NULLPOINTER_EXCEPTION": {"risk":"低危","name":"Style - NullPointerException caught","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "DC_DOUBLECHECK": {"risk":"中危","name":"Multi-threading - Possible double-check of field","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
195
+ "DC_PARTIALLY_CONSTRUCTED": {"risk":"中危","name":"Multi-threading - Possible exposure of partially initialized object","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "DD48C0E5-3651-4DF1-9BE8-EB989C64E33A-2": {"risk":"高危","name":"Password Management: Hardcoded Password","engine":"fortify","sources":[0,1],"sourceRisks":["中危","高危"]},
196
+ "DDE11A05-9259-496D-B57F-79E97FF33F1B-1": {"risk":"严重","name":"Key Management: Empty Encryption Key","engine":"fortify","sources":[1],"sourceRisks":["严重"]}, "DE_MIGHT_DROP": {"risk":"中危","name":"Bad practice - Method might drop exception","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
197
+ "DE_MIGHT_IGNORE": {"risk":"中危","name":"Bad practice - Method might ignore exception","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "DLS_DEAD_LOCAL_INCREMENT_IN_RETURN": {"risk":"中危","name":"Correctness - Useless increment in return statement","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
198
+ "DLS_DEAD_LOCAL_STORE": {"risk":"低危","name":"Style - Dead store to local variable","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "DLS_DEAD_LOCAL_STORE_IN_RETURN": {"risk":"低危","name":"Style - Useless assignment in return statement","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
199
+ "DLS_DEAD_LOCAL_STORE_OF_NULL": {"risk":"低危","name":"Style - Dead store of null to local variable","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "DLS_DEAD_LOCAL_STORE_SHADOWS_FIELD": {"risk":"低危","name":"Style - Dead store to local variable that shadows field","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
200
+ "DLS_DEAD_STORE_OF_CLASS_LITERAL": {"risk":"中危","name":"Correctness - Dead store of class literal","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "DLS_OVERWRITTEN_INCREMENT": {"risk":"中危","name":"Correctness - Overwritten increment","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
201
+ "DL_SYNCHRONIZATION_ON_BOOLEAN": {"risk":"中危","name":"Multi-threading - Synchronization on Boolean","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "DL_SYNCHRONIZATION_ON_BOXED_PRIMITIVE": {"risk":"中危","name":"Multi-threading - Synchronization on boxed primitive","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
202
+ "DL_SYNCHRONIZATION_ON_SHARED_CONSTANT": {"risk":"中危","name":"Multi-threading - Synchronization on interned String","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "DL_SYNCHRONIZATION_ON_UNSHARED_BOXED_PRIMITIVE": {"risk":"中危","name":"Multi-threading - Synchronization on boxed primitive values","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
203
+ "DMI_ANNOTATION_IS_NOT_VISIBLE_TO_REFLECTION": {"risk":"中危","name":"Correctness - Cannot use reflection to check for presence of annotation without runtime retention","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "DMI_ARGUMENTS_WRONG_ORDER": {"risk":"中危","name":"Correctness - Reversed method arguments","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
204
+ "DMI_BAD_MONTH": {"risk":"中危","name":"Correctness - Bad constant value for month","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "DMI_BIGDECIMAL_CONSTRUCTED_FROM_DOUBLE": {"risk":"中危","name":"Correctness - BigDecimal constructed from double that isn't represented precisely","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
205
+ "DMI_BLOCKING_METHODS_ON_URL": {"risk":"中危","name":"Performance - The equals and hashCode methods of URL are blocking","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "DMI_CALLING_NEXT_FROM_HASNEXT": {"risk":"中危","name":"Correctness - hasNext method invokes next","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
206
+ "DMI_COLLECTIONS_SHOULD_NOT_CONTAIN_THEMSELVES": {"risk":"中危","name":"Correctness - Collections should not contain themselves","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "DMI_COLLECTION_OF_URLS": {"risk":"中危","name":"Performance - Maps and sets of URLs can be performance hogs","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
207
+ "DMI_CONSTANT_DB_PASSWORD": {"risk":"中危","name":"Security - Hardcoded constant database password","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "DMI_DOH": {"risk":"中危","name":"Correctness - D'oh! A nonsensical method invocation","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
208
+ "DMI_EMPTY_DB_PASSWORD": {"risk":"中危","name":"Security - Empty database password","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "DMI_ENTRY_SETS_MAY_REUSE_ENTRY_OBJECTS": {"risk":"中危","name":"Bad practice - Adding elements of an entry set may fail due to reuse of Entry objects","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
209
+ "DMI_FUTILE_ATTEMPT_TO_CHANGE_MAXPOOL_SIZE_OF_SCHEDULED_THREAD_POOL_EXECUTOR": {"risk":"中危","name":"Correctness - Futile attempt to change max pool size of ScheduledThreadPoolExecutor","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "DMI_HARDCODED_ABSOLUTE_FILENAME": {"risk":"低危","name":"Style - Code contains a hard coded reference to an absolute pathname","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
210
+ "DMI_INVOKING_HASHCODE_ON_ARRAY": {"risk":"中危","name":"Correctness - Invocation of hashCode on an array","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "DMI_INVOKING_TOSTRING_ON_ANONYMOUS_ARRAY": {"risk":"中危","name":"Correctness - Invocation of toString on an unnamed array","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
211
+ "DMI_INVOKING_TOSTRING_ON_ARRAY": {"risk":"中危","name":"Correctness - Invocation of toString on an array","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "DMI_LONG_BITS_TO_DOUBLE_INVOKED_ON_INT": {"risk":"中危","name":"Correctness - Double.longBitsToDouble invoked on an int","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
212
+ "DMI_NONSERIALIZABLE_OBJECT_WRITTEN": {"risk":"低危","name":"Style - Non serializable object written to ObjectOutput","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "DMI_RANDOM_USED_ONLY_ONCE": {"risk":"中危","name":"Bad practice - Random object created and used only once","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
213
+ "DMI_SCHEDULED_THREAD_POOL_EXECUTOR_WITH_ZERO_CORE_THREADS": {"risk":"中危","name":"Correctness - Creation of ScheduledThreadPoolExecutor with zero core threads","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "DMI_THREAD_PASSED_WHERE_RUNNABLE_EXPECTED": {"risk":"低危","name":"Style - Thread passed where Runnable expected","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
214
+ "DMI_UNSUPPORTED_METHOD": {"risk":"低危","name":"Style - Call to unsupported method","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "DMI_USELESS_SUBSTRING": {"risk":"低危","name":"Style - Invocation of substring(0), which returns the original value","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
215
+ "DMI_USING_REMOVEALL_TO_CLEAR_COLLECTION": {"risk":"中危","name":"Bad practice - Don't use removeAll to clear a collection","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "DMI_VACUOUS_CALL_TO_EASYMOCK_METHOD": {"risk":"中危","name":"Correctness - Useless/vacuous call to EasyMock method","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
216
+ "DMI_VACUOUS_SELF_COLLECTION_CALL": {"risk":"中危","name":"Correctness - Vacuous call to collections","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "DM_BOOLEAN_CTOR": {"risk":"中危","name":"Performance - Method invokes inefficient Boolean constructor; use Boolean.valueOf(...) instead","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
217
+ "DM_BOXED_PRIMITIVE_FOR_COMPARE": {"risk":"中危","name":"Performance - Boxing a primitive to compare","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "DM_BOXED_PRIMITIVE_FOR_PARSING": {"risk":"中危","name":"Performance - Boxing/unboxing to parse a primitive","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
218
+ "DM_BOXED_PRIMITIVE_TOSTRING": {"risk":"中危","name":"Performance - Method allocates a boxed primitive just to call toString","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "DM_CONVERT_CASE": {"risk":"低危","name":"I18n - Consider using Locale parameterized version of invoked method","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
219
+ "DM_DEFAULT_ENCODING": {"risk":"低危","name":"I18n - Reliance on default encoding","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "DM_EXIT": {"risk":"中危","name":"Bad practice - Method invokes System.exit(...)","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
220
+ "DM_FP_NUMBER_CTOR": {"risk":"中危","name":"Performance - Method invokes inefficient floating-point Number constructor; use static valueOf instead","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "DM_GC": {"risk":"中危","name":"Performance - Explicit garbage collection; extremely dubious except in benchmarking code","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
221
+ "DM_INVALID_MIN_MAX": {"risk":"中危","name":"Correctness - Incorrect combination of Math.max and Math.min","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "DM_MONITOR_WAIT_ON_CONDITION": {"risk":"中危","name":"Multi-threading - Monitor wait() called on Condition","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
222
+ "DM_NEW_FOR_GETCLASS": {"risk":"中危","name":"Performance - Method allocates an object, only to get the class object","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "DM_NEXTINT_VIA_NEXTDOUBLE": {"risk":"中危","name":"Performance - Use the nextInt method of Random rather than nextDouble to generate a random integer","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
223
+ "DM_NUMBER_CTOR": {"risk":"中危","name":"Performance - Method invokes inefficient Number constructor; use static valueOf instead","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "DM_RUN_FINALIZERS_ON_EXIT": {"risk":"中危","name":"Bad practice - Method invokes dangerous method runFinalizersOnExit","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
224
+ "DM_STRING_CTOR": {"risk":"中危","name":"Performance - Method invokes inefficient new String(String) constructor","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "DM_STRING_TOSTRING": {"risk":"中危","name":"Performance - Method invokes toString() method on a String","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
225
+ "DM_STRING_VOID_CTOR": {"risk":"中危","name":"Performance - Method invokes inefficient new String() constructor","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "DM_USELESS_THREAD": {"risk":"中危","name":"Multi-threading - A thread was created using the default empty run method","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
226
+ "DP_CREATE_CLASSLOADER_INSIDE_DO_PRIVILEGED": {"risk":"低危","name":"Malicious code - Classloaders should only be created inside doPrivileged block","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "DP_DO_INSIDE_DO_PRIVILEGED": {"risk":"低危","name":"Malicious code - Method invoked that should be only be invoked inside a doPrivileged block","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
227
+ "E04D3E1F-2D8C-400A-BB55-7DA143F987E3-1": {"risk":"严重","name":"SQL Injection","engine":"fortify","sources":[0,1],"sourceRisks":["严重","严重"]}, "E1AFC322-743D-44BB-A93F-91ECC9D871E1-2": {"risk":"高危","name":"Privacy Violation","engine":"fortify","sources":[0,1],"sourceRisks":["中危","高危"]},
228
+ "E453E125-FB1C-402A-8EEF-472F4125D2FA-2": {"risk":"高危","name":"Privacy Violation","engine":"fortify","sources":[0,1],"sourceRisks":["中危","高危"]}, "E9B09124-2E06-4369-9A11-7123753B3732-1": {"risk":"严重","name":"Key Management: Empty Encryption Key","engine":"fortify","sources":[1],"sourceRisks":["严重"]},
229
+ "EA3363CC-69F3-4798-8F6F-81171C9B0308-2": {"risk":"高危","name":"Insecure SSL: Overly Broad Certificate Trust","engine":"fortify","sources":[1],"sourceRisks":["高危"]}, "EBEA0754-7BBA-408C-B128-898D927A1D83-1": {"risk":"严重","name":"Dynamic Code Evaluation: Code Injection","engine":"fortify","sources":[1],"sourceRisks":["严重"]},
230
+ "EC_ARRAY_AND_NONARRAY": {"risk":"中危","name":"Correctness - equals() used to compare array and nonarray","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "EC_BAD_ARRAY_COMPARE": {"risk":"中危","name":"Correctness - Invocation of equals() on an array, which is equivalent to ==","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
231
+ "EC_INCOMPATIBLE_ARRAY_COMPARE": {"risk":"中危","name":"Correctness - equals(...) used to compare incompatible arrays","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "EC_NULL_ARG": {"risk":"中危","name":"Correctness - Call to equals(null)","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
232
+ "EC_UNRELATED_CLASS_AND_INTERFACE": {"risk":"中危","name":"Correctness - Call to equals() comparing unrelated class and interface","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "EC_UNRELATED_INTERFACES": {"risk":"中危","name":"Correctness - Call to equals() comparing different interface types","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
233
+ "EC_UNRELATED_TYPES": {"risk":"中危","name":"Correctness - Call to equals() comparing different types","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "EC_UNRELATED_TYPES_USING_POINTER_EQUALITY": {"risk":"中危","name":"Correctness - Using pointer equality to compare different types","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
234
+ "EFDDCBC3-AF12-4047-BFDC-A6F48462E130-2": {"risk":"高危","name":"Path Manipulation","engine":"fortify","sources":[1],"sourceRisks":["高危"]}, "EI_EXPOSE_BUF": {"risk":"低危","name":"Malicious code - May expose internal representation by returning a buffer sharing non-public data","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
235
+ "EI_EXPOSE_BUF2": {"risk":"低危","name":"Malicious code - May expose internal representation by creating a buffer which incorporates reference to array","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "EI_EXPOSE_REP": {"risk":"低危","name":"Malicious code - May expose internal representation by returning reference to mutable object","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
236
+ "EI_EXPOSE_REP2": {"risk":"低危","name":"Malicious code - May expose internal representation by incorporating reference to mutable object","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "EI_EXPOSE_STATIC_BUF2": {"risk":"低危","name":"Malicious code - May expose internal static state by creating a buffer which stores an external array into a static field","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
237
+ "EI_EXPOSE_STATIC_REP2": {"risk":"低危","name":"Malicious code - May expose internal static state by storing a mutable object into a static field","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "EOS_BAD_END_OF_STREAM_CHECK": {"risk":"中危","name":"Correctness - Data read is converted before comparison to -1","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
238
+ "EQ_ABSTRACT_SELF": {"risk":"中危","name":"Bad practice - Abstract class defines covariant equals() method","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "EQ_ALWAYS_FALSE": {"risk":"中危","name":"Correctness - equals method always returns false","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
239
+ "EQ_ALWAYS_TRUE": {"risk":"中危","name":"Correctness - equals method always returns true","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "EQ_CHECK_FOR_OPERAND_NOT_COMPATIBLE_WITH_THIS": {"risk":"中危","name":"Bad practice - Equals checks for incompatible operand","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
240
+ "EQ_COMPARETO_USE_OBJECT_EQUALS": {"risk":"中危","name":"Bad practice - Class defines compareTo(...) and uses Object.equals()","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "EQ_COMPARING_CLASS_NAMES": {"risk":"中危","name":"Correctness - equals method compares class names rather than class objects","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
241
+ "EQ_DOESNT_OVERRIDE_EQUALS": {"risk":"低危","name":"Style - Class doesn't override equals in superclass","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "EQ_DONT_DEFINE_EQUALS_FOR_ENUM": {"risk":"中危","name":"Correctness - Covariant equals() method defined for enum","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
242
+ "EQ_GETCLASS_AND_CLASS_CONSTANT": {"risk":"中危","name":"Bad practice - equals method fails for subtypes","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "EQ_OTHER_NO_OBJECT": {"risk":"中危","name":"Correctness - equals() method defined that doesn't override equals(Object)","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
243
+ "EQ_OTHER_USE_OBJECT": {"risk":"中危","name":"Correctness - equals() method defined that doesn't override Object.equals(Object)","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "EQ_OVERRIDING_EQUALS_NOT_SYMMETRIC": {"risk":"中危","name":"Correctness - equals method overrides equals in superclass and may not be symmetric","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
244
+ "EQ_SELF_NO_OBJECT": {"risk":"中危","name":"Bad practice - Covariant equals() method defined","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "EQ_SELF_USE_OBJECT": {"risk":"中危","name":"Correctness - Covariant equals() method defined, Object.equals(Object) inherited","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
245
+ "EQ_UNUSUAL": {"risk":"低危","name":"Style - Unusual equals method","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "ES_COMPARING_PARAMETER_STRING_WITH_EQ": {"risk":"中危","name":"Bad practice - Comparison of String parameter using == or !=","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
246
+ "ES_COMPARING_STRINGS_WITH_EQ": {"risk":"中危","name":"Bad practice - Comparison of String objects using == or !=","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "ESync_EMPTY_SYNC": {"risk":"中危","name":"Multi-threading - Empty synchronized block","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
247
+ "F07D590E-00AE-4D4F-BD7A-4A658CC24921-1": {"risk":"严重","name":"Dynamic Code Evaluation: Unsafe Deserialization","engine":"fortify","sources":[0,1],"sourceRisks":["严重","严重"]}, "F1B0BB84-14FD-4A67-BAE0-71968ED84FC0-2": {"risk":"高危","name":"Server-Side Request Forgery","engine":"fortify","sources":[1],"sourceRisks":["高危"]},
248
+ "F200F116-96DA-4F5B-A9AA-74EDBD984E84-1": {"risk":"严重","name":"Cross-Site Scripting: Reflected","engine":"fortify","sources":[1],"sourceRisks":["严重"]}, "F5C892D5-C429-4B38-BDE6-AB04A5D1BAEF-2": {"risk":"高危","name":"Password Management: Hardcoded Password","engine":"fortify","sources":[0,1],"sourceRisks":["中危","高危"]},
249
+ "F9D3C462-8D1E-4457-967F-9F082B973F88-1": {"risk":"严重","name":"Password Management: Hardcoded Password","engine":"fortify","sources":[1],"sourceRisks":["严重"]}, "FB1F960B-8FD9-40DD-B05E-55F89C04209C-2": {"risk":"高危","name":"Insecure SSL: Server Identity Verification Disabled","engine":"fortify","sources":[1],"sourceRisks":["高危"]},
250
+ "FB_MISSING_EXPECTED_WARNING": {"risk":"中危","name":"Correctness - Missing expected or desired warning from SpotBugs","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "FB_UNEXPECTED_WARNING": {"risk":"中危","name":"Correctness - Unexpected/undesired warning from SpotBugs","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
251
+ "FE_FLOATING_POINT_EQUALITY": {"risk":"低危","name":"Style - Test for floating point equality","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "FE_TEST_IF_EQUAL_TO_NOT_A_NUMBER": {"risk":"中危","name":"Correctness - Doomed test for equality to NaN","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
252
+ "FI_EMPTY": {"risk":"中危","name":"Bad practice - Empty finalizer should be deleted","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "FI_EXPLICIT_INVOCATION": {"risk":"中危","name":"Bad practice - Explicit invocation of finalizer","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
253
+ "FI_FINALIZER_NULLS_FIELDS": {"risk":"中危","name":"Bad practice - Finalizer nulls fields","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "FI_FINALIZER_ONLY_NULLS_FIELDS": {"risk":"中危","name":"Bad practice - Finalizer only nulls fields","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
254
+ "FI_MISSING_SUPER_CALL": {"risk":"中危","name":"Bad practice - Finalizer does not call superclass finalizer","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "FI_NULLIFY_SUPER": {"risk":"中危","name":"Bad practice - Finalizer nullifies superclass finalizer","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
255
+ "FI_PUBLIC_SHOULD_BE_PROTECTED": {"risk":"低危","name":"Malicious code - Finalizer should be protected, not public","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "FI_USELESS": {"risk":"中危","name":"Bad practice - Finalizer does nothing but call superclass finalizer","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
256
+ "FL_FLOATS_AS_LOOP_COUNTERS": {"risk":"中危","name":"Correctness - Do not use floating-point variables as loop counters","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "FL_MATH_USING_FLOAT_PRECISION": {"risk":"中危","name":"Correctness - Method performs math using floating point precision","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
257
+ "GC_UNCHECKED_TYPE_IN_GENERIC_CALL": {"risk":"中危","name":"Bad practice - Unchecked type in generic call","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "GC_UNRELATED_TYPES": {"risk":"中危","name":"Correctness - No relationship between generic parameter and method argument","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
258
+ "HE_EQUALS_NO_HASHCODE": {"risk":"中危","name":"Bad practice - Class defines equals() but not hashCode()","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "HE_EQUALS_USE_HASHCODE": {"risk":"中危","name":"Bad practice - Class defines equals() and uses Object.hashCode()","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
259
+ "HE_HASHCODE_NO_EQUALS": {"risk":"中危","name":"Bad practice - Class defines hashCode() but not equals()","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "HE_HASHCODE_USE_OBJECT_EQUALS": {"risk":"中危","name":"Bad practice - Class defines hashCode() and uses Object.equals()","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
260
+ "HE_INHERITS_EQUALS_USE_HASHCODE": {"risk":"中危","name":"Bad practice - Class inherits equals() and uses Object.hashCode()","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "HE_SIGNATURE_DECLARES_HASHING_OF_UNHASHABLE_CLASS": {"risk":"中危","name":"Correctness - Signature declares use of unhashable class in hashed construct","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
261
+ "HE_USE_OF_UNHASHABLE_CLASS": {"risk":"中危","name":"Correctness - Use of class without a hashCode() method in a hashed data structure","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "HRS_REQUEST_PARAMETER_TO_COOKIE": {"risk":"中危","name":"Security - HTTP cookie formed from untrusted input","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
262
+ "HRS_REQUEST_PARAMETER_TO_HTTP_HEADER": {"risk":"中危","name":"Security - HTTP Response splitting vulnerability","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "HSC_HUGE_SHARED_STRING_CONSTANT": {"risk":"中危","name":"Performance - Huge string constants is duplicated across multiple class files","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
263
+ "IA_AMBIGUOUS_INVOCATION_OF_INHERITED_OR_OUTER_METHOD": {"risk":"低危","name":"Style - Potentially ambiguous invocation of either an inherited or outer method","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "ICAST_BAD_SHIFT_AMOUNT": {"risk":"中危","name":"Correctness - 32 bit int shifted by an amount not in the range -31..31","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
264
+ "ICAST_IDIV_CAST_TO_DOUBLE": {"risk":"低危","name":"Style - Integral division result cast to double or float","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "ICAST_INTEGER_MULTIPLY_CAST_TO_LONG": {"risk":"低危","name":"Style - Result of integer multiplication cast to long","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
265
+ "ICAST_INT_2_LONG_AS_INSTANT": {"risk":"中危","name":"Correctness - int value converted to long and used as absolute time","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "ICAST_INT_CAST_TO_DOUBLE_PASSED_TO_CEIL": {"risk":"中危","name":"Correctness - Integral value cast to double and then passed to Math.ceil","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
266
+ "ICAST_INT_CAST_TO_FLOAT_PASSED_TO_ROUND": {"risk":"中危","name":"Correctness - int value cast to float and then passed to Math.round","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "ICAST_QUESTIONABLE_UNSIGNED_RIGHT_SHIFT": {"risk":"低危","name":"Style - Unsigned right shift cast to short/byte","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
267
+ "IC_INIT_CIRCULARITY": {"risk":"低危","name":"Style - Initialization circularity","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "IC_SUPERCLASS_USES_SUBCLASS_DURING_INITIALIZATION": {"risk":"中危","name":"Bad practice - Superclass uses subclass during initialization","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
268
+ "IIL_ELEMENTS_GET_LENGTH_IN_LOOP": {"risk":"中危","name":"Performance - NodeList.getLength() called in a loop","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "IIL_PATTERN_COMPILE_IN_LOOP": {"risk":"中危","name":"Performance - Method calls Pattern.compile in a loop","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
269
+ "IIL_PATTERN_COMPILE_IN_LOOP_INDIRECT": {"risk":"中危","name":"Performance - Method compiles the regular expression in a loop","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "IIL_PREPARE_STATEMENT_IN_LOOP": {"risk":"中危","name":"Performance - Method calls prepareStatement in a loop","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
270
+ "IIO_INEFFICIENT_INDEX_OF": {"risk":"中危","name":"Performance - Inefficient use of String.indexOf(String)","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "IIO_INEFFICIENT_LAST_INDEX_OF": {"risk":"中危","name":"Performance - Inefficient use of String.lastIndexOf(String)","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
271
+ "IJU_ASSERT_METHOD_INVOKED_FROM_RUN_METHOD": {"risk":"中危","name":"Correctness - JUnit assertion in run method will not be noticed by JUnit","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "IJU_BAD_SUITE_METHOD": {"risk":"中危","name":"Correctness - TestCase declares a bad suite method","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
272
+ "IJU_NO_TESTS": {"risk":"中危","name":"Correctness - TestCase has no tests","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "IJU_SETUP_NO_SUPER": {"risk":"中危","name":"Correctness - TestCase defines setUp that doesn't call super.setUp()","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
273
+ "IJU_SUITE_NOT_STATIC": {"risk":"中危","name":"Correctness - TestCase implements a non-static suite method","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "IJU_TEARDOWN_NO_SUPER": {"risk":"中危","name":"Correctness - TestCase defines tearDown that doesn't call super.tearDown()","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
274
+ "IL_CONTAINER_ADDED_TO_ITSELF": {"risk":"中危","name":"Correctness - A collection is added to itself","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "IL_INFINITE_LOOP": {"risk":"中危","name":"Correctness - An apparent infinite loop","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
275
+ "IL_INFINITE_RECURSIVE_LOOP": {"risk":"中危","name":"Correctness - An apparent infinite recursive loop","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "IMA_INEFFICIENT_MEMBER_ACCESS": {"risk":"中危","name":"Performance - Method accesses a private member variable of owning class","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
276
+ "IMSE_DONT_CATCH_IMSE": {"risk":"中危","name":"Bad practice - Dubious catching of IllegalMonitorStateException","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "IM_AVERAGE_COMPUTATION_COULD_OVERFLOW": {"risk":"低危","name":"Style - Computation of average could overflow","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
277
+ "IM_BAD_CHECK_FOR_ODD": {"risk":"低危","name":"Style - Check for oddness that won't work for negative numbers","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "IM_MULTIPLYING_RESULT_OF_IREM": {"risk":"中危","name":"Correctness - Integer multiply of result of integer remainder","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
278
+ "INT_BAD_COMPARISON_WITH_INT_VALUE": {"risk":"中危","name":"Correctness - Bad comparison of int value with long constant","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "INT_BAD_COMPARISON_WITH_NONNEGATIVE_VALUE": {"risk":"中危","name":"Correctness - Bad comparison of nonnegative value with negative constant or zero","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
279
+ "INT_BAD_COMPARISON_WITH_SIGNED_BYTE": {"risk":"中危","name":"Correctness - Bad comparison of signed byte","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "INT_BAD_REM_BY_1": {"risk":"低危","name":"Style - Integer remainder modulo 1","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
280
+ "INT_VACUOUS_BIT_OPERATION": {"risk":"低危","name":"Style - Vacuous bit mask operation on integer value","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "INT_VACUOUS_COMPARISON": {"risk":"低危","name":"Style - Vacuous comparison of integer value","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
281
+ "IO_APPENDING_TO_OBJECT_OUTPUT_STREAM": {"risk":"中危","name":"Correctness - Doomed attempt to append to an object output stream","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "IP_PARAMETER_IS_DEAD_BUT_OVERWRITTEN": {"risk":"中危","name":"Correctness - A parameter is dead upon entry to a method but overwritten","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
282
+ "IS2_INCONSISTENT_SYNC": {"risk":"中危","name":"Multi-threading - Inconsistent synchronization","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "ISC_INSTANTIATE_STATIC_CLASS": {"risk":"中危","name":"Bad practice - Needless instantiation of class that only supplies static methods","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
283
+ "IS_FIELD_NOT_GUARDED": {"risk":"中危","name":"Multi-threading - Field not guarded against concurrent access","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "IS_INCONSISTENT_SYNC": {"risk":"中危","name":"Multi-threading - Inconsistent synchronization","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
284
+ "ITA_INEFFICIENT_TO_ARRAY": {"risk":"中危","name":"Performance - Method uses toArray() with zero-length array argument","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "IT_NO_SUCH_ELEMENT": {"risk":"中危","name":"Bad practice - Iterator next() method cannot throw NoSuchElementException","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
285
+ "J2EE_STORE_OF_NON_SERIALIZABLE_OBJECT_INTO_SESSION": {"risk":"中危","name":"Bad practice - Store of non serializable object into HttpSession","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "JCIP_FIELD_ISNT_FINAL_IN_IMMUTABLE_CLASS": {"risk":"中危","name":"Bad practice - Fields of immutable classes should be final","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
286
+ "JLM_JSR166_LOCK_MONITORENTER": {"risk":"中危","name":"Multi-threading - Synchronization performed on Lock","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "JLM_JSR166_UTILCONCURRENT_MONITORENTER": {"risk":"中危","name":"Multi-threading - Synchronization performed on util.concurrent instance","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
287
+ "JML_JSR166_CALLING_WAIT_RATHER_THAN_AWAIT": {"risk":"中危","name":"Multi-threading - Using monitor style wait methods on util.concurrent abstraction","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "JUA_DONT_ASSERT_INSTANCEOF_IN_TESTS": {"risk":"中危","name":"Bad practice - Asserting value of instanceof in tests is not recommended.","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
288
+ "LI_LAZY_INIT_INSTANCE": {"risk":"中危","name":"Multi-threading - Incorrect lazy initialization of instance field","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "LI_LAZY_INIT_STATIC": {"risk":"中危","name":"Multi-threading - Incorrect lazy initialization of static field","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
289
+ "LI_LAZY_INIT_UPDATE_STATIC": {"risk":"中危","name":"Multi-threading - Incorrect lazy initialization and update of static field","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "MC_OVERRIDABLE_METHOD_CALL_IN_CLONE": {"risk":"低危","name":"Malicious code - An overridable method is called from the clone() method.","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
290
+ "MC_OVERRIDABLE_METHOD_CALL_IN_CONSTRUCTOR": {"risk":"低危","name":"Malicious code - An overridable method is called from a constructor","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "ME_ENUM_FIELD_SETTER": {"risk":"中危","name":"Bad practice - Public enum method unconditionally sets its field","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
291
+ "ME_MUTABLE_ENUM_FIELD": {"risk":"中危","name":"Bad practice - Enum field is public and mutable","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "MF_CLASS_MASKS_FIELD": {"risk":"中危","name":"Correctness - Class defines field that masks a superclass field","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
292
+ "MF_METHOD_MASKS_FIELD": {"risk":"中危","name":"Correctness - Method defines a variable that obscures a field","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "ML_SYNC_ON_FIELD_TO_GUARD_CHANGING_THAT_FIELD": {"risk":"中危","name":"Multi-threading - Synchronization on field in futile attempt to guard that field","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
293
+ "ML_SYNC_ON_UPDATED_FIELD": {"risk":"中危","name":"Multi-threading - Method synchronizes on an updated field","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "MSF_MUTABLE_SERVLET_FIELD": {"risk":"中危","name":"Multi-threading - Mutable servlet field","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
294
+ "MS_CANNOT_BE_FINAL": {"risk":"低危","name":"Malicious code - Field isn't final and cannot be protected from malicious code","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "MS_EXPOSE_BUF": {"risk":"低危","name":"Malicious code - May expose internal representation by returning a buffer sharing non-public data","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
295
+ "MS_EXPOSE_REP": {"risk":"低危","name":"Malicious code - Public static method may expose internal representation by returning array","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "MS_FINAL_PKGPROTECT": {"risk":"低危","name":"Malicious code - Field should be both final and package protected","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
296
+ "MS_MUTABLE_ARRAY": {"risk":"低危","name":"Malicious code - Field is a mutable array","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "MS_MUTABLE_COLLECTION": {"risk":"低危","name":"Malicious code - Field is a mutable collection","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
297
+ "MS_MUTABLE_COLLECTION_PKGPROTECT": {"risk":"低危","name":"Malicious code - Field is a mutable collection which should be package protected","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "MS_MUTABLE_HASHTABLE": {"risk":"低危","name":"Malicious code - Field is a mutable Hashtable","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
298
+ "MS_OOI_PKGPROTECT": {"risk":"低危","name":"Malicious code - Field should be moved out of an interface and made package protected","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "MS_PKGPROTECT": {"risk":"低危","name":"Malicious code - Field should be package protected","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
299
+ "MS_SHOULD_BE_FINAL": {"risk":"低危","name":"Malicious code - Field isn't final but should be","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "MS_SHOULD_BE_REFACTORED_TO_BE_FINAL": {"risk":"低危","name":"Malicious code - Field isn't final but should be refactored to be so","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
300
+ "MTIA_SUSPECT_SERVLET_INSTANCE_FIELD": {"risk":"低危","name":"Style - Class extends Servlet class and uses instance variables","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "MTIA_SUSPECT_STRUTS_INSTANCE_FIELD": {"risk":"低危","name":"Style - Class extends Struts Action class and uses instance variables","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
301
+ "MWN_MISMATCHED_NOTIFY": {"risk":"中危","name":"Multi-threading - Mismatched notify()","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "MWN_MISMATCHED_WAIT": {"risk":"中危","name":"Multi-threading - Mismatched wait()","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
302
+ "NM_BAD_EQUAL": {"risk":"中危","name":"Correctness - Class defines equal(Object); should it be equals(Object)?","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "NM_CLASS_NAMING_CONVENTION": {"risk":"中危","name":"Bad practice - Class names should start with an upper case letter","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
303
+ "NM_CLASS_NOT_EXCEPTION": {"risk":"中危","name":"Bad practice - Class is not derived from an Exception, even though it is named as such","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "NM_CONFUSING": {"risk":"中危","name":"Bad practice - Confusing method names","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
304
+ "NM_FIELD_NAMING_CONVENTION": {"risk":"中危","name":"Bad practice - Field names should start with a lower case letter","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "NM_FUTURE_KEYWORD_USED_AS_IDENTIFIER": {"risk":"中危","name":"Bad practice - Use of identifier that is a keyword in later versions of Java","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
305
+ "NM_FUTURE_KEYWORD_USED_AS_MEMBER_IDENTIFIER": {"risk":"中危","name":"Bad practice - Use of identifier that is a keyword in later versions of Java","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "NM_LCASE_HASHCODE": {"risk":"中危","name":"Correctness - Class defines hashcode(); should it be hashCode()?","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
306
+ "NM_LCASE_TOSTRING": {"risk":"中危","name":"Correctness - Class defines tostring(); should it be toString()?","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "NM_METHOD_CONSTRUCTOR_CONFUSION": {"risk":"中危","name":"Correctness - Apparent method/constructor confusion","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
307
+ "NM_METHOD_NAMING_CONVENTION": {"risk":"中危","name":"Bad practice - Method names should start with a lower case letter","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "NM_SAME_SIMPLE_NAME_AS_INTERFACE": {"risk":"中危","name":"Bad practice - Class names shouldn't shadow simple name of implemented interface","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
308
+ "NM_SAME_SIMPLE_NAME_AS_SUPERCLASS": {"risk":"中危","name":"Bad practice - Class names shouldn't shadow simple name of superclass","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "NM_VERY_CONFUSING": {"risk":"中危","name":"Correctness - Very confusing method names","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
309
+ "NM_VERY_CONFUSING_INTENTIONAL": {"risk":"中危","name":"Bad practice - Very confusing method names (but perhaps intentional)","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "NM_WRONG_PACKAGE": {"risk":"中危","name":"Correctness - Method doesn't override method in superclass due to wrong package for parameter","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
310
+ "NM_WRONG_PACKAGE_INTENTIONAL": {"risk":"中危","name":"Bad practice - Method doesn't override method in superclass due to wrong package for parameter","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "NN_NAKED_NOTIFY": {"risk":"中危","name":"Multi-threading - Naked notify","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
311
+ "NO_NOTIFY_NOT_NOTIFYALL": {"risk":"中危","name":"Multi-threading - Using notify() rather than notifyAll()","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "NP_ALWAYS_NULL": {"risk":"中危","name":"Correctness - Null pointer dereference","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
312
+ "NP_ALWAYS_NULL_EXCEPTION": {"risk":"中危","name":"Correctness - Null pointer dereference in method on exception path","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "NP_ARGUMENT_MIGHT_BE_NULL": {"risk":"中危","name":"Correctness - Method does not check for null argument","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
313
+ "NP_BOOLEAN_RETURN_NULL": {"risk":"中危","name":"Bad practice - Method with Boolean return type returns explicit null","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "NP_CLONE_COULD_RETURN_NULL": {"risk":"中危","name":"Bad practice - Clone method may return null","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
314
+ "NP_CLOSING_NULL": {"risk":"中危","name":"Correctness - close() invoked on a value that is always null","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "NP_DEREFERENCE_OF_READLINE_VALUE": {"risk":"低危","name":"Style - Dereference of the result of readLine() without nullcheck","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
315
+ "NP_EQUALS_SHOULD_HANDLE_NULL_ARGUMENT": {"risk":"中危","name":"Bad practice - equals() method does not check for null argument","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "NP_GUARANTEED_DEREF": {"risk":"中危","name":"Correctness - Null value is guaranteed to be dereferenced","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
316
+ "NP_GUARANTEED_DEREF_ON_EXCEPTION_PATH": {"risk":"中危","name":"Correctness - Value is null and guaranteed to be dereferenced on exception path","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "NP_IMMEDIATE_DEREFERENCE_OF_READLINE": {"risk":"低危","name":"Style - Immediate dereference of the result of readLine()","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
317
+ "NP_LOAD_OF_KNOWN_NULL_VALUE": {"risk":"低危","name":"Style - Load of known null value","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "NP_METHOD_PARAMETER_RELAXING_ANNOTATION": {"risk":"低危","name":"Style - Method tightens nullness annotation on parameter","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
318
+ "NP_METHOD_PARAMETER_TIGHTENS_ANNOTATION": {"risk":"低危","name":"Style - Method tightens nullness annotation on parameter","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "NP_METHOD_RETURN_RELAXING_ANNOTATION": {"risk":"低危","name":"Style - Method relaxes nullness annotation on return value","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
319
+ "NP_NONNULL_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR": {"risk":"中危","name":"Correctness - Non-null field is not initialized","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "NP_NONNULL_PARAM_VIOLATION": {"risk":"中危","name":"Correctness - Method call passes null to a non-null parameter","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
320
+ "NP_NONNULL_RETURN_VIOLATION": {"risk":"中危","name":"Correctness - Method may return null, but is declared @Nonnull","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "NP_NULL_INSTANCEOF": {"risk":"中危","name":"Correctness - A known null value is checked to see if it is an instance of a type","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
321
+ "NP_NULL_ON_SOME_PATH": {"risk":"中危","name":"Correctness - Possible null pointer dereference","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "NP_NULL_ON_SOME_PATH_EXCEPTION": {"risk":"中危","name":"Correctness - Possible null pointer dereference in method on exception path","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
322
+ "NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE": {"risk":"低危","name":"Style - Possible null pointer dereference due to return value of called method","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "NP_NULL_ON_SOME_PATH_MIGHT_BE_INFEASIBLE": {"risk":"低危","name":"Style - Possible null pointer dereference on branch that might be infeasible","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
323
+ "NP_NULL_PARAM_DEREF": {"risk":"中危","name":"Correctness - Method call passes null for non-null parameter","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "NP_NULL_PARAM_DEREF_ALL_TARGETS_DANGEROUS": {"risk":"中危","name":"Correctness - Method call passes null for non-null parameter","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
324
+ "NP_NULL_PARAM_DEREF_NONVIRTUAL": {"risk":"中危","name":"Correctness - Non-virtual method call passes null for non-null parameter","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "NP_OPTIONAL_RETURN_NULL": {"risk":"中危","name":"Correctness - Method with Optional return type returns explicit null","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
325
+ "NP_PARAMETER_MUST_BE_NONNULL_BUT_MARKED_AS_NULLABLE": {"risk":"低危","name":"Style - Parameter must be non-null but is marked as nullable","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "NP_STORE_INTO_NONNULL_FIELD": {"risk":"中危","name":"Correctness - Store of null value into field annotated @Nonnull","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
326
+ "NP_SYNC_AND_NULL_CHECK_FIELD": {"risk":"中危","name":"Multi-threading - Synchronize and null check on the same field.","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "NP_TOSTRING_COULD_RETURN_NULL": {"risk":"中危","name":"Bad practice - toString method may return null","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
327
+ "NP_UNWRITTEN_FIELD": {"risk":"中危","name":"Correctness - Read of unwritten field","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "NP_UNWRITTEN_PUBLIC_OR_PROTECTED_FIELD": {"risk":"低危","name":"Style - Read of unwritten public or protected field","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
328
+ "NS_DANGEROUS_NON_SHORT_CIRCUIT": {"risk":"低危","name":"Style - Potentially dangerous use of non-short-circuit logic","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "NS_NON_SHORT_CIRCUIT": {"risk":"低危","name":"Style - Questionable use of non-short-circuit logic","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
329
+ "ODR_OPEN_DATABASE_RESOURCE": {"risk":"中危","name":"Bad practice - Method may fail to close database resource","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "ODR_OPEN_DATABASE_RESOURCE_EXCEPTION_PATH": {"risk":"中危","name":"Bad practice - Method may fail to close database resource on exception","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
330
+ "OS_OPEN_STREAM": {"risk":"中危","name":"Bad practice - Method may fail to close stream","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "OS_OPEN_STREAM_EXCEPTION_PATH": {"risk":"中危","name":"Bad practice - Method may fail to close stream on exception","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
331
+ "OVERRIDING_METHODS_MUST_INVOKE_SUPER": {"risk":"中危","name":"Correctness - Super method is annotated with @OverridingMethodsMustInvokeSuper, but the overriding method isn't calling the super method.","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "PERM_SUPER_NOT_CALLED_IN_GETPERMISSIONS": {"risk":"低危","name":"Malicious code - Custom class loader does not call its superclass's getPermissions()","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
332
+ "PS_PUBLIC_SEMAPHORES": {"risk":"低危","name":"Style - Class exposes synchronization and semaphores in its public interface","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "PT_ABSOLUTE_PATH_TRAVERSAL": {"risk":"中危","name":"Security - Absolute path traversal in servlet","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
333
+ "PT_RELATIVE_PATH_TRAVERSAL": {"risk":"中危","name":"Security - Relative path traversal in servlet","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "PZLA_PREFER_ZERO_LENGTH_ARRAYS": {"risk":"低危","name":"Style - Consider returning a zero length array rather than null","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
334
+ "PZ_DONT_REUSE_ENTRY_OBJECTS_IN_ITERATORS": {"risk":"中危","name":"Bad practice - Don't reuse entry objects in iterators","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "QBA_QUESTIONABLE_BOOLEAN_ASSIGNMENT": {"risk":"中危","name":"Correctness - Method assigns boolean literal in boolean expression","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
335
+ "QF_QUESTIONABLE_FOR_LOOP": {"risk":"低危","name":"Style - Complicated, subtle or wrong increment in for-loop","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "RANGE_ARRAY_INDEX": {"risk":"高危","name":"Correctness - Array index is out of bounds","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
336
+ "RANGE_ARRAY_LENGTH": {"risk":"高危","name":"Correctness - Array length is out of bounds","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]}, "RANGE_ARRAY_OFFSET": {"risk":"高危","name":"Correctness - Array offset is out of bounds","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
337
+ "RANGE_STRING_INDEX": {"risk":"高危","name":"Correctness - String index is out of bounds","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]}, "RCN_REDUNDANT_COMPARISON_OF_NULL_AND_NONNULL_VALUE": {"risk":"低危","name":"Style - Redundant comparison of non-null value to null","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
338
+ "RCN_REDUNDANT_COMPARISON_TWO_NULL_VALUES": {"risk":"低危","name":"Style - Redundant comparison of two null values","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "RCN_REDUNDANT_NULLCHECK_OF_NONNULL_VALUE": {"risk":"低危","name":"Style - Redundant nullcheck of value known to be non-null","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
339
+ "RCN_REDUNDANT_NULLCHECK_OF_NULL_VALUE": {"risk":"低危","name":"Style - Redundant nullcheck of value known to be null","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE": {"risk":"中危","name":"Correctness - Nullcheck of value previously dereferenced","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
340
+ "RC_REF_COMPARISON": {"risk":"中危","name":"Correctness - Suspicious reference comparison","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "RC_REF_COMPARISON_BAD_PRACTICE": {"risk":"中危","name":"Bad practice - Suspicious reference comparison to constant","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
341
+ "RC_REF_COMPARISON_BAD_PRACTICE_BOOLEAN": {"risk":"中危","name":"Bad practice - Suspicious reference comparison of Boolean values","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "REC_CATCH_EXCEPTION": {"risk":"低危","name":"Style - Exception is caught when Exception is not thrown","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
342
+ "REFLC_REFLECTION_MAY_INCREASE_ACCESSIBILITY_OF_CLASS": {"risk":"低危","name":"Malicious code - Public method uses reflection to create a class it gets in its parameter which could increase the accessibility of any class","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "REFLF_REFLECTION_MAY_INCREASE_ACCESSIBILITY_OF_FIELD": {"risk":"低危","name":"Malicious code - Public method uses reflection to modify a field it gets in its parameter which could increase the accessibility of any class","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
343
+ "RE_BAD_SYNTAX_FOR_REGULAR_EXPRESSION": {"risk":"中危","name":"Correctness - Invalid syntax for regular expression","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "RE_CANT_USE_FILE_SEPARATOR_AS_REGULAR_EXPRESSION": {"risk":"中危","name":"Correctness - File.separator used for regular expression","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
344
+ "RE_POSSIBLE_UNINTENDED_PATTERN": {"risk":"中危","name":"Correctness - \".\" or \"|\" used for regular expression","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "RI_REDUNDANT_INTERFACES": {"risk":"低危","name":"Style - Class implements same interface as superclass","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
345
+ "RR_NOT_CHECKED": {"risk":"中危","name":"Bad practice - Method ignores results of InputStream.read()","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "RS_READOBJECT_SYNC": {"risk":"中危","name":"Multi-threading - Class's readObject() method is synchronized","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
346
+ "RU_INVOKE_RUN": {"risk":"中危","name":"Multi-threading - Invokes run on a thread (did you mean to start it instead?)","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "RV_01_TO_INT": {"risk":"中危","name":"Correctness - Random value from 0 to 1 is coerced to the integer 0","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
347
+ "RV_ABSOLUTE_VALUE_OF_HASHCODE": {"risk":"中危","name":"Correctness - Bad attempt to compute absolute value of signed 32-bit hashcode","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "RV_ABSOLUTE_VALUE_OF_RANDOM_INT": {"risk":"中危","name":"Correctness - Bad attempt to compute absolute value of signed random integer","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
348
+ "RV_CHECK_COMPARETO_FOR_SPECIFIC_RETURN_VALUE": {"risk":"中危","name":"Correctness - Code checks for specific values returned by compareTo","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "RV_CHECK_FOR_POSITIVE_INDEXOF": {"risk":"低危","name":"Style - Method checks to see if result of String.indexOf is positive","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
349
+ "RV_DONT_JUST_NULL_CHECK_READLINE": {"risk":"低危","name":"Style - Method discards result of readLine after checking if it is non-null","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "RV_EXCEPTION_NOT_THROWN": {"risk":"中危","name":"Correctness - Exception created and dropped rather than thrown","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
350
+ "RV_NEGATING_RESULT_OF_COMPARETO": {"risk":"中危","name":"Bad practice - Negating the result of compareTo()/compare()","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "RV_REM_OF_HASHCODE": {"risk":"低危","name":"Style - Remainder of hashCode could be negative","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
351
+ "RV_REM_OF_RANDOM_INT": {"risk":"低危","name":"Style - Remainder of 32-bit signed random integer","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "RV_RETURN_VALUE_IGNORED": {"risk":"中危","name":"Correctness - Method ignores return value","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
352
+ "RV_RETURN_VALUE_IGNORED_BAD_PRACTICE": {"risk":"中危","name":"Bad practice - Method ignores exceptional return value","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "RV_RETURN_VALUE_IGNORED_INFERRED": {"risk":"低危","name":"Style - Method ignores return value, is this OK?","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
353
+ "RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT": {"risk":"低危","name":"Style - Return value of method without side effect is ignored","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "RV_RETURN_VALUE_OF_PUTIFABSENT_IGNORED": {"risk":"中危","name":"Multi-threading - Return value of putIfAbsent ignored, value passed to putIfAbsent reused","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
354
+ "RpC_REPEATED_CONDITIONAL_TEST": {"risk":"中危","name":"Correctness - Repeated conditional tests","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "SA_FIELD_DOUBLE_ASSIGNMENT": {"risk":"低危","name":"Style - Double assignment of field","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
355
+ "SA_FIELD_SELF_ASSIGNMENT": {"risk":"中危","name":"Correctness - Self assignment of field","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "SA_FIELD_SELF_COMPARISON": {"risk":"中危","name":"Correctness - Self comparison of field with itself","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
356
+ "SA_FIELD_SELF_COMPUTATION": {"risk":"中危","name":"Correctness - Nonsensical self computation involving a field (e.g., x & x)","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "SA_LOCAL_DOUBLE_ASSIGNMENT": {"risk":"低危","name":"Style - Double assignment of local variable","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
357
+ "SA_LOCAL_SELF_ASSIGNMENT": {"risk":"低危","name":"Style - Self assignment of local variable","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "SA_LOCAL_SELF_ASSIGNMENT_INSTEAD_OF_FIELD": {"risk":"中危","name":"Correctness - Self assignment of local rather than assignment to field","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
358
+ "SA_LOCAL_SELF_COMPARISON": {"risk":"中危","name":"Correctness - Self comparison of value with itself","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "SA_LOCAL_SELF_COMPUTATION": {"risk":"中危","name":"Correctness - Nonsensical self computation involving a variable (e.g., x & x)","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
359
+ "SBSC_USE_STRINGBUFFER_CONCATENATION": {"risk":"中危","name":"Performance - Method concatenates strings using + in a loop","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "SC_START_IN_CTOR": {"risk":"中危","name":"Multi-threading - Constructor invokes Thread.start()","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
360
+ "SE_BAD_FIELD": {"risk":"中危","name":"Bad practice - Non-transient non-serializable instance field in serializable class","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "SE_BAD_FIELD_INNER_CLASS": {"risk":"中危","name":"Bad practice - Non-serializable class has a serializable inner class","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
361
+ "SE_BAD_FIELD_STORE": {"risk":"中危","name":"Bad practice - Non-serializable value stored into instance field of a serializable class","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "SE_COMPARATOR_SHOULD_BE_SERIALIZABLE": {"risk":"中危","name":"Bad practice - Comparator doesn't implement Serializable","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
362
+ "SE_INNER_CLASS": {"risk":"中危","name":"Bad practice - Serializable inner class","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "SE_METHOD_MUST_BE_PRIVATE": {"risk":"中危","name":"Correctness - Method must be private in order for serialization to work","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
363
+ "SE_NONFINAL_SERIALVERSIONID": {"risk":"中危","name":"Bad practice - serialVersionUID isn't final","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "SE_NONLONG_SERIALVERSIONID": {"risk":"中危","name":"Bad practice - serialVersionUID isn't long","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
364
+ "SE_NONSTATIC_SERIALVERSIONID": {"risk":"中危","name":"Bad practice - serialVersionUID isn't static","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "SE_NO_SERIALVERSIONID": {"risk":"中危","name":"Bad practice - Class is Serializable, but doesn't define serialVersionUID","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
365
+ "SE_NO_SUITABLE_CONSTRUCTOR": {"risk":"中危","name":"Bad practice - Class is Serializable but its superclass doesn't define a void constructor","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "SE_NO_SUITABLE_CONSTRUCTOR_FOR_EXTERNALIZATION": {"risk":"中危","name":"Bad practice - Class is Externalizable but doesn't define a void constructor","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
366
+ "SE_PRIVATE_READ_RESOLVE_NOT_INHERITED": {"risk":"低危","name":"Style - Private readResolve method not inherited by subclasses","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "SE_READ_RESOLVE_IS_STATIC": {"risk":"中危","name":"Correctness - The readResolve method must not be declared as a static method.","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
367
+ "SE_READ_RESOLVE_MUST_RETURN_OBJECT": {"risk":"中危","name":"Bad practice - The readResolve method must be declared with a return type of Object.","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "SE_TRANSIENT_FIELD_NOT_RESTORED": {"risk":"中危","name":"Bad practice - Transient field that isn't set by deserialization.","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
368
+ "SE_TRANSIENT_FIELD_OF_NONSERIALIZABLE_CLASS": {"risk":"低危","name":"Style - Transient field of class that isn't Serializable.","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "SF_DEAD_STORE_DUE_TO_SWITCH_FALLTHROUGH": {"risk":"中危","name":"Correctness - Dead store due to switch statement fall through","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
369
+ "SF_DEAD_STORE_DUE_TO_SWITCH_FALLTHROUGH_TO_THROW": {"risk":"中危","name":"Correctness - Dead store due to switch statement fall through to throw","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "SF_SWITCH_FALLTHROUGH": {"risk":"低危","name":"Style - Switch statement found where one case falls through to the next case","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
370
+ "SF_SWITCH_NO_DEFAULT": {"risk":"低危","name":"Style - Switch statement found where default case is missing","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "SIC_INNER_SHOULD_BE_STATIC": {"risk":"中危","name":"Performance - Should be a static inner class","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
371
+ "SIC_INNER_SHOULD_BE_STATIC_ANON": {"risk":"中危","name":"Performance - Could be refactored into a named static inner class","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "SIC_INNER_SHOULD_BE_STATIC_NEEDS_THIS": {"risk":"中危","name":"Performance - Could be refactored into a static inner class","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
372
+ "SIC_THREADLOCAL_DEADLY_EMBRACE": {"risk":"中危","name":"Correctness - Deadly embrace of non-static inner class and thread local","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "SIO_SUPERFLUOUS_INSTANCEOF": {"risk":"中危","name":"Correctness - Unnecessary type check done using instanceof operator","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
373
+ "SI_INSTANCE_BEFORE_FINALS_ASSIGNED": {"risk":"中危","name":"Bad practice - Static initializer creates instance before all static final fields assigned","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "SP_SPIN_ON_FIELD": {"risk":"中危","name":"Multi-threading - Method spins on field","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
374
+ "SQL_BAD_PREPARED_STATEMENT_ACCESS": {"risk":"中危","name":"Correctness - Method attempts to access a prepared statement parameter with index 0","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "SQL_BAD_RESULTSET_ACCESS": {"risk":"中危","name":"Correctness - Method attempts to access a result set field with index 0","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
375
+ "SQL_NONCONSTANT_STRING_PASSED_TO_EXECUTE": {"risk":"中危","name":"Security - Nonconstant string passed to execute or addBatch method on an SQL statement","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "SQL_PREPARED_STATEMENT_GENERATED_FROM_NONCONSTANT_STRING": {"risk":"中危","name":"Security - A prepared statement is generated from a nonconstant String","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
376
+ "SR_NOT_CHECKED": {"risk":"中危","name":"Bad practice - Method ignores results of InputStream.skip()","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "SSD_DO_NOT_USE_INSTANCE_LOCK_ON_SHARED_STATIC_DATA": {"risk":"中危","name":"Multi-threading - Instance level lock was used on a shared static data","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
377
+ "SS_SHOULD_BE_STATIC": {"risk":"中危","name":"Performance - Unread field: should this field be static?","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "STCAL_INVOKE_ON_STATIC_CALENDAR_INSTANCE": {"risk":"中危","name":"Multi-threading - Call to static Calendar","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
378
+ "STCAL_INVOKE_ON_STATIC_DATE_FORMAT_INSTANCE": {"risk":"中危","name":"Multi-threading - Call to static DateFormat","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "STCAL_STATIC_CALENDAR_INSTANCE": {"risk":"中危","name":"Multi-threading - Static Calendar field","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
379
+ "STCAL_STATIC_SIMPLE_DATE_FORMAT_INSTANCE": {"risk":"中危","name":"Multi-threading - Static DateFormat","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "STI_INTERRUPTED_ON_CURRENTTHREAD": {"risk":"中危","name":"Correctness - Unneeded use of currentThread() call, to call interrupted()","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
380
+ "STI_INTERRUPTED_ON_UNKNOWNTHREAD": {"risk":"中危","name":"Correctness - Static Thread.interrupted() method invoked on thread instance","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "ST_WRITE_TO_STATIC_FROM_INSTANCE_METHOD": {"risk":"低危","name":"Style - Write to static field from instance method","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
381
+ "SWL_SLEEP_WITH_LOCK_HELD": {"risk":"中危","name":"Multi-threading - Method calls Thread.sleep() with a lock held","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "SW_SWING_METHODS_INVOKED_IN_SWING_THREAD": {"risk":"中危","name":"Bad practice - Certain swing methods need to be invoked in Swing thread","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
382
+ "THROWS_METHOD_THROWS_CLAUSE_BASIC_EXCEPTION": {"risk":"中危","name":"Bad practice - Method lists Exception in its throws clause.","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "THROWS_METHOD_THROWS_CLAUSE_THROWABLE": {"risk":"中危","name":"Bad practice - Method lists Throwable in its throws clause.","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
383
+ "THROWS_METHOD_THROWS_RUNTIMEEXCEPTION": {"risk":"中危","name":"Bad practice - Method intentionally throws RuntimeException.","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "TLW_TWO_LOCK_NOTIFY": {"risk":"中危","name":"Multi-threading - Notify with two locks held","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
384
+ "TLW_TWO_LOCK_WAIT": {"risk":"中危","name":"Multi-threading - Wait with two locks held","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "TQ_ALWAYS_VALUE_USED_WHERE_NEVER_REQUIRED": {"risk":"中危","name":"Correctness - Value annotated as carrying a type qualifier used where a value that must not carry that qualifier is required","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
385
+ "TQ_COMPARING_VALUES_WITH_INCOMPATIBLE_TYPE_QUALIFIERS": {"risk":"中危","name":"Correctness - Comparing values with incompatible type qualifiers","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "TQ_EXPLICIT_UNKNOWN_SOURCE_VALUE_REACHES_ALWAYS_SINK": {"risk":"低危","name":"Style - Value required to have type qualifier, but marked as unknown","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
386
+ "TQ_EXPLICIT_UNKNOWN_SOURCE_VALUE_REACHES_NEVER_SINK": {"risk":"低危","name":"Style - Value required to not have type qualifier, but marked as unknown","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "TQ_MAYBE_SOURCE_VALUE_REACHES_ALWAYS_SINK": {"risk":"中危","name":"Correctness - Value that might not carry a type qualifier is always used in a way requires that type qualifier","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
387
+ "TQ_MAYBE_SOURCE_VALUE_REACHES_NEVER_SINK": {"risk":"中危","name":"Correctness - Value that might carry a type qualifier is always used in a way prohibits it from having that type qualifier","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "TQ_NEVER_VALUE_USED_WHERE_ALWAYS_REQUIRED": {"risk":"中危","name":"Correctness - Value annotated as never carrying a type qualifier used where value carrying that qualifier is required","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
388
+ "TQ_UNKNOWN_VALUE_USED_WHERE_ALWAYS_STRICTLY_REQUIRED": {"risk":"中危","name":"Correctness - Value without a type qualifier used where a value is required to have that qualifier","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "UCF_USELESS_CONTROL_FLOW": {"risk":"低危","name":"Style - Useless control flow","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
389
+ "UCF_USELESS_CONTROL_FLOW_NEXT_LINE": {"risk":"低危","name":"Style - Useless control flow to next line","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "UC_USELESS_CONDITION": {"risk":"低危","name":"Style - Condition has no effect","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
390
+ "UC_USELESS_CONDITION_TYPE": {"risk":"低危","name":"Style - Condition has no effect due to the variable type","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "UC_USELESS_OBJECT": {"risk":"低危","name":"Style - Useless object created","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
391
+ "UC_USELESS_OBJECT_STACK": {"risk":"低危","name":"Style - Useless object created on stack","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "UC_USELESS_VOID_METHOD": {"risk":"低危","name":"Style - Useless non-empty void method","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
392
+ "UG_SYNC_SET_UNSYNC_GET": {"risk":"中危","name":"Multi-threading - Unsynchronized get method, synchronized set method","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "UI_INHERITANCE_UNSAFE_GETRESOURCE": {"risk":"中危","name":"Bad practice - Usage of GetResource may be unsafe if class is extended","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
393
+ "UL_UNRELEASED_LOCK": {"risk":"中危","name":"Multi-threading - Method does not release lock on all paths","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "UL_UNRELEASED_LOCK_EXCEPTION_PATH": {"risk":"中危","name":"Multi-threading - Method does not release lock on all exception paths","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
394
+ "UMAC_UNCALLABLE_METHOD_OF_ANONYMOUS_CLASS": {"risk":"中危","name":"Correctness - Uncallable method defined in anonymous class","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "UM_UNNECESSARY_MATH": {"risk":"中危","name":"Performance - Method calls static Math class method on a constant value","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
395
+ "UPM_UNCALLED_PRIVATE_METHOD": {"risk":"中危","name":"Performance - Private method is never called","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "URF_UNREAD_FIELD": {"risk":"中危","name":"Performance - Unread field","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
396
+ "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD": {"risk":"低危","name":"Style - Unread public/protected field","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "UR_UNINIT_READ": {"risk":"中危","name":"Correctness - Uninitialized read of field in constructor","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
397
+ "UR_UNINIT_READ_CALLED_FROM_SUPER_CONSTRUCTOR": {"risk":"中危","name":"Correctness - Uninitialized read of field method called from constructor of superclass","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "USC_POTENTIAL_SECURITY_CHECK_BASED_ON_UNTRUSTED_SOURCE": {"risk":"低危","name":"Malicious code - Potential security check based on untrusted source.","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
398
+ "USM_USELESS_ABSTRACT_METHOD": {"risk":"低危","name":"Style - Abstract Method is already defined in implemented interface","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "USM_USELESS_SUBCLASS_METHOD": {"risk":"低危","name":"Style - Method superfluously delegates to parent class method","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
399
+ "UUF_UNUSED_FIELD": {"risk":"中危","name":"Performance - Unused field","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "UUF_UNUSED_PUBLIC_OR_PROTECTED_FIELD": {"risk":"低危","name":"Style - Unused public or protected field","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
400
+ "UWF_FIELD_NOT_INITIALIZED_IN_CONSTRUCTOR": {"risk":"低危","name":"Style - Field not initialized in constructor but dereferenced without null check","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "UWF_NULL_FIELD": {"risk":"中危","name":"Correctness - Field only ever set to null","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
401
+ "UWF_UNWRITTEN_FIELD": {"risk":"中危","name":"Correctness - Unwritten field","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "UWF_UNWRITTEN_PUBLIC_OR_PROTECTED_FIELD": {"risk":"低危","name":"Style - Unwritten public or protected field","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
402
+ "UW_UNCOND_WAIT": {"risk":"中危","name":"Multi-threading - Unconditional wait","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "VA_FORMAT_STRING_USES_NEWLINE": {"risk":"中危","name":"Bad practice - Format string should use %n rather than \\\\n","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
403
+ "VA_PRIMITIVE_ARRAY_PASSED_TO_OBJECT_VARARG": {"risk":"中危","name":"Correctness - Primitive array passed to function expecting a variable number of object arguments","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "VO_VOLATILE_INCREMENT": {"risk":"中危","name":"Multi-threading - An increment to a volatile field isn't atomic","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
404
+ "VO_VOLATILE_REFERENCE_TO_ARRAY": {"risk":"中危","name":"Multi-threading - A volatile reference to an array doesn't treat the array elements as volatile","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "VR_UNRESOLVABLE_REFERENCE": {"risk":"中危","name":"Correctness - Class makes reference to unresolvable class or method","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
405
+ "WA_AWAIT_NOT_IN_LOOP": {"risk":"中危","name":"Multi-threading - Condition.await() not in loop","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "WA_NOT_IN_LOOP": {"risk":"中危","name":"Multi-threading - Wait not in loop","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
406
+ "WL_USING_GETCLASS_RATHER_THAN_CLASS_LITERAL": {"risk":"中危","name":"Multi-threading - Synchronization on getClass rather than class literal","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "WMI_WRONG_MAP_ITERATOR": {"risk":"中危","name":"Performance - Inefficient use of keySet iterator instead of entrySet iterator","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
407
+ "WS_WRITEOBJECT_SYNC": {"risk":"中危","name":"Multi-threading - Class's writeObject() method is synchronized but nothing else is","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "XFB_XML_FACTORY_BYPASS": {"risk":"低危","name":"Style - Method directly allocates a specific implementation of xml interfaces","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
408
+ "XSS_REQUEST_PARAMETER_TO_SEND_ERROR": {"risk":"中危","name":"Security - Servlet reflected cross site scripting vulnerability in error page","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "XSS_REQUEST_PARAMETER_TO_SERVLET_WRITER": {"risk":"中危","name":"Security - Servlet reflected cross site scripting vulnerability","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
409
+ "apply_jar": {"risk":"严重","name":"无缺陷","engine":"filescan","sources":[1],"sourceRisks":["严重"]}, "apply_jar_not_used": {"risk":"严重","name":"组件已禁用","engine":"filescan","sources":[1],"sourceRisks":["严重"]},
410
+ "class_fully_qualified_name_conflict": {"risk":"严重","name":"类完全限定名冲突","engine":"conflict","sources":[0,1],"sourceRisks":["严重","严重"]}, "class_fully_qualified_name_conflict_apply": {"risk":"严重","name":"类完全限定名与DCS引入库冲突","engine":"conflict","sources":[1],"sourceRisks":["严重"]},
411
+ "class_fully_qualified_name_conflict_internal": {"risk":"严重","name":"项目内类限定名冲突","engine":"conflict","sources":[1],"sourceRisks":["严重"]}, "class_fully_qualified_name_conflict_isv": {"risk":"严重","name":"类完全限定名与其它isv项目冲突","engine":"conflict","sources":[0],"sourceRisks":["严重"]},
412
+ "class_fully_qualified_name_conflict_private_cus": {"risk":"严重","name":"类完全限定名与其它私有云定制化项目冲突","engine":"conflict","sources":[0],"sourceRisks":["严重"]}, "class_fully_qualified_name_conflict_public_cus": {"risk":"严重","name":"类完全限定名与其它公有云定制化项目冲突","engine":"conflict","sources":[0],"sourceRisks":["严重"]},
413
+ "class_fully_qualified_name_conflict_stp": {"risk":"严重","name":"类完全限定名与标准产品冲突","engine":"conflict","sources":[0],"sourceRisks":["严重"]}, "common-java:DuplicatedBlocks": {"risk":"中危","name":"Source files should not have any duplicated blocks","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
414
+ "cosmic_product_no_source_code_buid": {"risk":"低危","name":"手动上传制品漏洞","engine":"patch","sources":[0],"sourceRisks":["低危"]}, "external_tsc-build-analyzer:TS2304": {"risk":"高危","name":"TS2304 - Cannot find name","engine":"eslint","sources":[0,1],"sourceRisks":["高危","高危"]},
415
+ "external_tsc-build-analyzer:TS2307": {"risk":"高危","name":"TS2307 - Cannot find module","engine":"eslint","sources":[0,1],"sourceRisks":["中危","高危"]}, "external_tsc-build-analyzer:TS2339": {"risk":"高危","name":"TS2339:尝试访问类型上不存在的属性或方法","engine":"eslint","sources":[0,1],"sourceRisks":["中危","高危"]},
416
+ "external_tsc-build-analyzer:TS2551": {"risk":"高危","name":"TS2551 - Property does not exist on type (call)","engine":"eslint","sources":[0,1],"sourceRisks":["中危","高危"]}, "external_tsc-build-analyzer:TS2552": {"risk":"高危","name":"TS2552 - Cannot find name","engine":"eslint","sources":[0,1],"sourceRisks":["高危","高危"]},
417
+ "jar_conflict_isv": {"risk":"严重","name":"jar包与其它isv项目冲突","engine":"jarConflict","sources":[0,1],"sourceRisks":["严重","严重"]}, "jar_conflict_private_cus": {"risk":"严重","name":"jar包与其它私有云定制化项目冲突","engine":"jarConflict","sources":[0,1],"sourceRisks":["严重","严重"]},
418
+ "jar_conflict_public_cus": {"risk":"严重","name":"jar包与其它公有云定制化项目冲突","engine":"jarConflict","sources":[0,1],"sourceRisks":["严重","严重"]}, "jar_conflict_stp": {"risk":"严重","name":"jar包与标准产品冲突","engine":"jarConflict","sources":[0,1],"sourceRisks":["严重","严重"]},
419
+ "java:S100": {"risk":"低危","name":"Method names should comply with a naming convention","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S101": {"risk":"低危","name":"Class names should comply with a naming convention","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
420
+ "java:S106": {"risk":"中危","name":"Standard outputs should not be used directly to log anything","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S1065": {"risk":"中危","name":"Unused labels should be removed","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
421
+ "java:S1066": {"risk":"中危","name":"Collapsible \"if\" statements should be merged","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S1068": {"risk":"中危","name":"Unused \"private\" fields should be removed","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
422
+ "java:S107": {"risk":"中危","name":"Methods should not have too many parameters","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S1075": {"risk":"低危","name":"URIs should not be hardcoded","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
423
+ "java:S108": {"risk":"中危","name":"Nested blocks of code should not be left empty","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S110": {"risk":"中危","name":"Inheritance tree of classes should not be too deep","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
424
+ "java:S1104": {"risk":"低危","name":"Class variable fields should not have public accessibility","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S1110": {"risk":"中危","name":"Redundant pairs of parentheses should be removed","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
425
+ "java:S1111": {"risk":"中危","name":"The Object.finalize() method should not be called","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S1113": {"risk":"高危","name":"The Object.finalize() method should not be overridden","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
426
+ "java:S1114": {"risk":"高危","name":"\"super.finalize()\" should be called at the end of \"Object.finalize()\" implementations","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]}, "java:S1116": {"risk":"低危","name":"Empty statements should be removed","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
427
+ "java:S1117": {"risk":"中危","name":"Local variables should not shadow class fields","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S1118": {"risk":"中危","name":"Utility classes should not have public constructors","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
428
+ "java:S1119": {"risk":"中危","name":"Labels should not be used","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S112": {"risk":"中危","name":"Generic exceptions should never be thrown","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
429
+ "java:S1121": {"risk":"中危","name":"Assignments should not be made from within sub-expressions","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S1123": {"risk":"中危","name":"Deprecated elements should have both the annotation and the Javadoc tag","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
430
+ "java:S1124": {"risk":"低危","name":"Modifiers should be declared in the correct order","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S1125": {"risk":"低危","name":"Boolean literals should not be redundant","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
431
+ "java:S1126": {"risk":"低危","name":"Return of boolean expressions should not be wrapped into an \"if-then-else\" statement","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S1128": {"risk":"低危","name":"Unnecessary imports should be removed","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
432
+ "java:S1130": {"risk":"低危","name":"\"throws\" declarations should not be superfluous","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S1133": {"risk":"低危","name":"Deprecated code should be removed","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
433
+ "java:S1134": {"risk":"中危","name":"Track uses of \"FIXME\" tags","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S1135": {"risk":"低危","name":"Track uses of \"TODO\" tags","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
434
+ "java:S114": {"risk":"低危","name":"Interface names should comply with a naming convention","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S1141": {"risk":"中危","name":"Try-catch blocks should not be nested","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
435
+ "java:S1143": {"risk":"高危","name":"Jump statements should not occur in \"finally\" blocks","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]}, "java:S1144": {"risk":"中危","name":"Unused \"private\" methods should be removed","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
436
+ "java:S1149": {"risk":"中危","name":"Synchronized classes Vector, Hashtable, Stack and StringBuffer should not be used","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S115": {"risk":"高危","name":"Constant names should comply with a naming convention","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
437
+ "java:S1150": {"risk":"中危","name":"Enumeration should not be implemented","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S1153": {"risk":"低危","name":"String.valueOf() should not be appended to a String","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
438
+ "java:S1155": {"risk":"低危","name":"Collection.isEmpty() should be used to test for emptiness","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S1157": {"risk":"低危","name":"Case insensitive string comparisons should be made without intermediate upper or lower casing","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
439
+ "java:S1158": {"risk":"低危","name":"Primitive wrappers should not be instantiated only for \"toString\" or \"compareTo\" calls","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S116": {"risk":"低危","name":"Field names should comply with a naming convention","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
440
+ "java:S1161": {"risk":"中危","name":"\"@Override\" should be used on overriding and implementing methods","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S1163": {"risk":"高危","name":"Exceptions should not be thrown in finally blocks","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
441
+ "java:S1165": {"risk":"低危","name":"Exception classes should be immutable","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S1168": {"risk":"中危","name":"Empty arrays and collections should be returned instead of null","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
442
+ "java:S117": {"risk":"低危","name":"Local variable and method parameter names should comply with a naming convention","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S1170": {"risk":"低危","name":"Public constants and fields initialized at declaration should be \"static final\" rather than merely \"final\"","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
443
+ "java:S1171": {"risk":"中危","name":"Only static class initializers should be used","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S1172": {"risk":"中危","name":"Unused method parameters should be removed","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
444
+ "java:S1174": {"risk":"高危","name":"\"Object.finalize()\" should remain protected (versus public) when overriding","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]}, "java:S1175": {"risk":"高危","name":"The signature of \"finalize()\" should match that of \"Object.finalize()\"","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
445
+ "java:S1181": {"risk":"中危","name":"Throwable and Error should not be caught","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S1182": {"risk":"低危","name":"Classes that override \"clone\" should be \"Cloneable\" and call \"super.clone()\"","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
446
+ "java:S1185": {"risk":"低危","name":"Overriding methods should do more than simply call the same method in the super class","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S1186": {"risk":"高危","name":"Methods should not be empty","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
447
+ "java:S119": {"risk":"低危","name":"Type parameter names should comply with a naming convention","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S1190": {"risk":"严重","name":"Future keywords should not be used as names","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"]},
448
+ "java:S1191": {"risk":"中危","name":"Classes from \"sun.*\" packages should not be used","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S1192": {"risk":"高危","name":"String literals should not be duplicated","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
449
+ "java:S1193": {"risk":"中危","name":"Exception types should not be tested using \"instanceof\" in catch blocks","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S1195": {"risk":"低危","name":"Array designators \"[]\" should be located after the type in method signatures","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
450
+ "java:S1197": {"risk":"低危","name":"Array designators \"[]\" should be on the type, not the variable","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S1199": {"risk":"低危","name":"Nested code blocks should not be used","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
451
+ "java:S120": {"risk":"低危","name":"Package names should comply with a naming convention","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S1201": {"risk":"中危","name":"\"equals\" method overrides should accept \"Object\" parameters","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
452
+ "java:S1206": {"risk":"低危","name":"\"equals(Object obj)\" and \"hashCode()\" should be overridden in pairs","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S1210": {"risk":"低危","name":"\"equals(Object obj)\" should be overridden along with the \"compareTo(T obj)\" method","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
453
+ "java:S1214": {"risk":"高危","name":"Constants should not be defined in interfaces","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]}, "java:S1215": {"risk":"高危","name":"Execution of the Garbage Collector should be triggered only by the JVM","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
454
+ "java:S1217": {"risk":"中危","name":"\"Thread.run()\" should not be called directly","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S1219": {"risk":"严重","name":"\"switch\" statements should not contain non-case labels","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"]},
455
+ "java:S1220": {"risk":"低危","name":"The default unnamed package should not be used","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S1221": {"risk":"中危","name":"Methods should not be named \"tostring\", \"hashcode\" or \"equal\"","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
456
+ "java:S1223": {"risk":"中危","name":"Non-constructor methods should not have the same name as the enclosing class","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S1226": {"risk":"低危","name":"Method parameters, caught exceptions and foreach variables' initial values should not be ignored","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
457
+ "java:S125": {"risk":"中危","name":"Sections of code should not be commented out","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S1264": {"risk":"低危","name":"A \"while\" loop should be used instead of a \"for\" loop","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
458
+ "java:S127": {"risk":"中危","name":"\"for\" loop stop conditions should be invariant","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S128": {"risk":"严重","name":"Switch cases should end with an unconditional \"break\" statement","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"]},
459
+ "java:S1301": {"risk":"低危","name":"\"switch\" statements should have at least 3 \"case\" clauses","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S131": {"risk":"高危","name":"\"switch\" statements should have \"default\" clauses","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
460
+ "java:S1313": {"risk":"低危","name":"Using hardcoded IP addresses is security-sensitive","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S1317": {"risk":"中危","name":"\"StringBuilder\" and \"StringBuffer\" should not be instantiated with a character","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
461
+ "java:S1319": {"risk":"低危","name":"Declarations should use Java collection interfaces such as \"List\" rather than specific implementation classes such as \"LinkedList\"","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S135": {"risk":"低危","name":"Loops should not contain more than a single \"break\" or \"continue\" statement","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
462
+ "java:S1444": {"risk":"低危","name":"\"public static\" fields should be constant","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S1450": {"risk":"低危","name":"Private fields only used as local variables in methods should become local variables","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
463
+ "java:S1452": {"risk":"高危","name":"Generic wildcard types should not be used in return types","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]}, "java:S1479": {"risk":"中危","name":"\"switch\" statements should not have too many \"case\" clauses","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
464
+ "java:S1481": {"risk":"低危","name":"Unused local variables should be removed","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S1488": {"risk":"低危","name":"Local variables should not be declared and then immediately returned or thrown","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
465
+ "java:S1596": {"risk":"低危","name":"\"Collections.EMPTY_LIST\", \"EMPTY_MAP\", and \"EMPTY_SET\" should not be used","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S1598": {"risk":"高危","name":"Package declaration should match source file directory","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
466
+ "java:S1602": {"risk":"低危","name":"Lambdas containing only one statement should not nest this statement in a block","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S1604": {"risk":"中危","name":"Anonymous inner classes containing only one method should become lambdas","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
467
+ "java:S1607": {"risk":"中危","name":"JUnit4 @Ignored and JUnit5 @Disabled annotations should be used to disable tests and should provide a rationale","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S1610": {"risk":"低危","name":"Abstract classes without fields should be converted to interfaces","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
468
+ "java:S1611": {"risk":"低危","name":"Parentheses should be removed from a single lambda input parameter when its type is inferred","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S1612": {"risk":"低危","name":"Lambdas should be replaced with method references","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
469
+ "java:S1640": {"risk":"低危","name":"Maps with keys that are enum values should be replaced with EnumMap","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S1643": {"risk":"低危","name":"Strings should not be concatenated using '+' in a loop","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
470
+ "java:S1656": {"risk":"中危","name":"Variables should not be self-assigned","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S1659": {"risk":"低危","name":"Multiple variables should not be declared on the same line","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
471
+ "java:S1700": {"risk":"中危","name":"A field should not duplicate the name of its containing class","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S1710": {"risk":"低危","name":"Annotation repetitions should not be wrapped","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
472
+ "java:S1751": {"risk":"中危","name":"Loops with at most one iteration should be refactored","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S1764": {"risk":"中危","name":"Identical expressions should not be used on both sides of a binary operator","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
473
+ "java:S1844": {"risk":"中危","name":"\"Object.wait(...)\" should never be called on objects that implement \"java.util.concurrent.locks.Condition\"","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S1845": {"risk":"严重","name":"Methods and field names should not be the same or differ only by capitalization","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"]},
474
+ "java:S1849": {"risk":"中危","name":"\"Iterator.hasNext()\" should not call \"Iterator.next()\"","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S1854": {"risk":"中危","name":"Unused assignments should be removed","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
475
+ "java:S1858": {"risk":"低危","name":"\"toString()\" should never be called on a String object","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S1860": {"risk":"中危","name":"Synchronization should not be done on instances of value-based classes","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
476
+ "java:S1862": {"risk":"中危","name":"Related \"if/else if\" statements should not have the same condition","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S1871": {"risk":"中危","name":"Two branches in a conditional structure should not have exactly the same implementation","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
477
+ "java:S1872": {"risk":"中危","name":"Classes should not be compared by name","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S1874": {"risk":"低危","name":"\"@Deprecated\" code should not be used","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
478
+ "java:S1905": {"risk":"低危","name":"Redundant casts should not be used","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S1940": {"risk":"低危","name":"Boolean checks should not be inverted","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
479
+ "java:S1948": {"risk":"高危","name":"Fields in a \"Serializable\" class should either be transient or serializable","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]}, "java:S1989": {"risk":"低危","name":"Exceptions should not be thrown from servlet methods","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
480
+ "java:S1994": {"risk":"高危","name":"\"for\" loop increment clauses should modify the loops' counters","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]}, "java:S2053": {"risk":"高危","name":"Hashes should include an unpredictable salt","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
481
+ "java:S2055": {"risk":"低危","name":"The non-serializable super class of a \"Serializable\" class should have a no-argument constructor","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S2060": {"risk":"中危","name":"\"Externalizable\" classes should have no-arguments constructors","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
482
+ "java:S2061": {"risk":"中危","name":"Custom serialization method signatures should meet requirements","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S2062": {"risk":"高危","name":"\"readResolve\" methods should be inheritable","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
483
+ "java:S2065": {"risk":"低危","name":"Fields in non-serializable classes should not be \"transient\"","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S2066": {"risk":"低危","name":"\"Serializable\" inner classes of non-serializable classes should be \"static\"","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
484
+ "java:S2068": {"risk":"严重","name":"Hard-coded credentials are security-sensitive","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"]}, "java:S2077": {"risk":"中危","name":"Formatting SQL queries is security-sensitive","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
485
+ "java:S2092": {"risk":"低危","name":"Creating cookies without the \"secure\" flag is security-sensitive","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S2093": {"risk":"高危","name":"Try-with-resources should be used","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
486
+ "java:S2094": {"risk":"低危","name":"Classes should not be empty","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S2095": {"risk":"严重","name":"Resources should be closed","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"]},
487
+ "java:S2097": {"risk":"低危","name":"\"equals(Object obj)\" should test argument type","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S2109": {"risk":"中危","name":"Reflection should not be used to check non-runtime annotations","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
488
+ "java:S2110": {"risk":"中危","name":"Invalid \"Date\" values should not be used","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S2111": {"risk":"中危","name":"\"BigDecimal(double)\" should not be used","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
489
+ "java:S2112": {"risk":"中危","name":"\"URL.hashCode\" and \"URL.equals\" should be avoided","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S2114": {"risk":"中危","name":"Collections should not be passed as arguments to their own methods","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
490
+ "java:S2115": {"risk":"严重","name":"A secure password should be used when connecting to a database","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"]}, "java:S2116": {"risk":"中危","name":"\"hashCode\" and \"toString\" should not be called on array instances","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
491
+ "java:S2118": {"risk":"中危","name":"Non-serializable classes should not be written","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S2119": {"risk":"高危","name":"\"Random\" objects should be reused","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
492
+ "java:S2121": {"risk":"中危","name":"Silly String operations should not be made","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S2122": {"risk":"高危","name":"\"ScheduledThreadPoolExecutor\" should not have 0 core threads","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
493
+ "java:S2123": {"risk":"中危","name":"Values should not be uselessly incremented","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S2127": {"risk":"中危","name":"\"Double.longBitsToDouble\" should not be used for \"int\"","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
494
+ "java:S2129": {"risk":"中危","name":"Constructors should not be used to instantiate \"String\", \"BigInteger\", \"BigDecimal\" and primitive-wrapper classes","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S2130": {"risk":"低危","name":"Parsing should be used to convert \"Strings\" to primitives","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
495
+ "java:S2131": {"risk":"中危","name":"Primitives should not be boxed just for \"String\" conversion","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S2133": {"risk":"中危","name":"Objects should not be created only to \"getClass\"","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
496
+ "java:S2134": {"risk":"中危","name":"Classes extending java.lang.Thread should override the \"run\" method","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S2139": {"risk":"中危","name":"Exceptions should be either logged or rethrown but not both","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
497
+ "java:S2140": {"risk":"低危","name":"Methods of \"Random\" that return floating point values should not be used in random integer generation","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S2142": {"risk":"中危","name":"\"InterruptedException\" should not be ignored","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
498
+ "java:S2147": {"risk":"低危","name":"Catches should be combined","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S2151": {"risk":"高危","name":"\"runFinalizersOnExit\" should not be called","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
499
+ "java:S2153": {"risk":"低危","name":"Boxing and unboxing should not be immediately reversed","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S2154": {"risk":"中危","name":"Dissimilar primitive wrappers should not be used with the ternary operator without explicit casting","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
500
+ "java:S2157": {"risk":"高危","name":"\"Cloneables\" should implement \"clone\"","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]}, "java:S2159": {"risk":"中危","name":"Silly equality checks should not be made","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
501
+ "java:S2160": {"risk":"低危","name":"Subclasses that add fields should override \"equals\"","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S2165": {"risk":"低危","name":"\"finalize\" should not set fields to \"null\"","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
502
+ "java:S2166": {"risk":"中危","name":"Classes named like \"Exception\" should extend \"Exception\" or a subclass","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S2167": {"risk":"低危","name":"\"compareTo\" should not return \"Integer.MIN_VALUE\"","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
503
+ "java:S2168": {"risk":"严重","name":"Double-checked locking should not be used","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"]}, "java:S2175": {"risk":"中危","name":"Inappropriate \"Collection\" calls should not be made","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
504
+ "java:S2176": {"risk":"高危","name":"Class names should not shadow interfaces or superclasses","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]}, "java:S2177": {"risk":"中危","name":"Child class methods named for parent class methods should be overrides","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
505
+ "java:S2178": {"risk":"严重","name":"Short-circuit logic should be used in boolean contexts","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"]}, "java:S2183": {"risk":"低危","name":"Ints and longs should not be shifted by zero or more than their number of bits-1","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
506
+ "java:S2184": {"risk":"低危","name":"Math operands should be cast before assignment","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S2185": {"risk":"中危","name":"Silly math should not be performed","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
507
+ "java:S2186": {"risk":"高危","name":"JUnit assertions should not be used in \"run\" methods","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]}, "java:S2187": {"risk":"严重","name":"TestCases should contain tests","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"]},
508
+ "java:S2188": {"risk":"严重","name":"JUnit test cases should call super methods","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"]}, "java:S2189": {"risk":"严重","name":"Loops should not be infinite","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"]},
509
+ "java:S2200": {"risk":"低危","name":"\"compareTo\" results should not be checked for specific values","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S2201": {"risk":"中危","name":"Return values from functions without side effects should not be ignored","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
510
+ "java:S2204": {"risk":"中危","name":"\".equals()\" should not be used to test the values of \"Atomic\" classes","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S2209": {"risk":"中危","name":"\"static\" members should be accessed statically","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
511
+ "java:S2222": {"risk":"高危","name":"Locks should be released","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]}, "java:S2225": {"risk":"中危","name":"\"toString()\" and \"clone()\" methods should not return null","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
512
+ "java:S2226": {"risk":"中危","name":"Servlets should not have mutable instance fields","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S2229": {"risk":"严重","name":"Methods should not call same-class methods with incompatible \"@Transactional\" values","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"]},
513
+ "java:S2230": {"risk":"中危","name":"Non-public methods should not be \"@Transactional\"","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S2232": {"risk":"中危","name":"\"ResultSet.isLast()\" should not be used","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
514
+ "java:S2234": {"risk":"中危","name":"Parameters should be passed in the correct order","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S2235": {"risk":"高危","name":"IllegalMonitorStateException should not be caught","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
515
+ "java:S2236": {"risk":"严重","name":"Methods \"wait(...)\", \"notify()\" and \"notifyAll()\" should not be called on Thread instances","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"]}, "java:S2245": {"risk":"高危","name":"Using pseudorandom number generators (PRNGs) is security-sensitive","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
516
+ "java:S2251": {"risk":"中危","name":"A \"for\" loop update clause should move the counter in the right direction","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S2252": {"risk":"中危","name":"Loop conditions should be true at least once","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
517
+ "java:S2254": {"risk":"高危","name":"\"HttpServletRequest.getRequestedSessionId()\" should not be used","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]}, "java:S2257": {"risk":"高危","name":"Using non-standard cryptographic algorithms is security-sensitive","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
518
+ "java:S2259": {"risk":"中危","name":"Null pointers should not be dereferenced","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S2272": {"risk":"低危","name":"\"Iterator.next()\" methods should throw \"NoSuchElementException\"","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
519
+ "java:S2273": {"risk":"中危","name":"\"wait\", \"notify\" and \"notifyAll\" should only be called when a lock is obviously held on an object","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S2274": {"risk":"高危","name":"\"Object.wait(...)\" and \"Condition.await(...)\" should be called inside a \"while\" loop","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
520
+ "java:S2275": {"risk":"严重","name":"Printf-style format strings should not lead to unexpected behavior at runtime","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"]}, "java:S2276": {"risk":"严重","name":"\"wait(...)\" should be used instead of \"Thread.sleep(...)\" when a lock is held","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"]},
521
+ "java:S2293": {"risk":"低危","name":"The diamond operator (\"<>\") should be used","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S2326": {"risk":"中危","name":"Unused type parameters should be removed","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
522
+ "java:S2386": {"risk":"低危","name":"Mutable fields should not be \"public static\"","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S2387": {"risk":"严重","name":"Child class fields should not shadow parent class fields","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"]},
523
+ "java:S2388": {"risk":"中危","name":"Inner class calls to super class methods should be unambiguous","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S2390": {"risk":"高危","name":"Classes should not access their own subclasses during initialization","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
524
+ "java:S2437": {"risk":"严重","name":"Silly bit operations should not be performed","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"]}, "java:S2438": {"risk":"中危","name":"\"Threads\" should not be used where \"Runnables\" are expected","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
525
+ "java:S2440": {"risk":"中危","name":"Classes with only \"static\" methods should not be instantiated","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S2441": {"risk":"中危","name":"Non-serializable objects should not be stored in \"HttpSession\" objects","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
526
+ "java:S2442": {"risk":"中危","name":"\"Lock\" objects should not be \"synchronized\"","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S2445": {"risk":"中危","name":"Blocks should be synchronized on \"private final\" fields","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
527
+ "java:S2446": {"risk":"中危","name":"\"notifyAll\" should be used","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S2447": {"risk":"高危","name":"Null should not be returned from a \"Boolean\" method","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
528
+ "java:S2479": {"risk":"高危","name":"Whitespace and control characters in literals should be explicit","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]}, "java:S2583": {"risk":"中危","name":"Conditionally executed code should be reachable","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
529
+ "java:S2589": {"risk":"中危","name":"Boolean expressions should not be gratuitous","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S2612": {"risk":"中危","name":"Setting loose POSIX file permissions is security-sensitive","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
530
+ "java:S2629": {"risk":"中危","name":"\"Preconditions\" and logging arguments should not require evaluation","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S2637": {"risk":"低危","name":"\"@NonNull\" values should not be set to null","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
531
+ "java:S2638": {"risk":"高危","name":"Method overrides should not change contracts","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]}, "java:S2639": {"risk":"中危","name":"Inappropriate regular expressions should not be used","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
532
+ "java:S2647": {"risk":"高危","name":"Basic authentication should not be used","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]}, "java:S2674": {"risk":"低危","name":"The value returned from a stream read should be checked","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
533
+ "java:S2675": {"risk":"中危","name":"\"readObject\" should not be \"synchronized\"","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S2676": {"risk":"低危","name":"Neither \"Math.abs\" nor negation should be used on numbers that could be \"MIN_VALUE\"","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
534
+ "java:S2677": {"risk":"中危","name":"\"read\" and \"readLine\" return values should be used","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S2681": {"risk":"中危","name":"Multiline blocks should be enclosed in curly braces","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
535
+ "java:S2689": {"risk":"严重","name":"Files opened in append mode should not be used with ObjectOutputStream","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"]}, "java:S2692": {"risk":"高危","name":"\"indexOf\" checks should not be for positive numbers","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
536
+ "java:S2695": {"risk":"严重","name":"\"PreparedStatement\" and \"ResultSet\" methods should be called with valid indices","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"]}, "java:S2696": {"risk":"高危","name":"Instance methods should not write to \"static\" fields","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
537
+ "java:S2699": {"risk":"严重","name":"Tests should include assertions","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"]}, "java:S2718": {"risk":"中危","name":"\"DateUtils.truncate\" from Apache Commons Lang library should not be used","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
538
+ "java:S2737": {"risk":"低危","name":"\"catch\" clauses should do more than rethrow","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S2755": {"risk":"严重","name":"XML parsers should not be vulnerable to XXE attacks","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"]},
539
+ "java:S2757": {"risk":"中危","name":"\"=+\" should not be used instead of \"+=\"","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S2761": {"risk":"中危","name":"Unary prefix operators should not be repeated","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
540
+ "java:S2786": {"risk":"低危","name":"Nested \"enum\"s should not be declared static","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S2789": {"risk":"中危","name":"\"null\" should not be used with \"Optional\"","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
541
+ "java:S2864": {"risk":"中危","name":"\"entrySet()\" should be iterated when both the key and value are needed","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S2885": {"risk":"中危","name":"Non-thread-safe fields should not be static","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
542
+ "java:S2886": {"risk":"中危","name":"Getters and setters should be synchronized in pairs","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S2912": {"risk":"低危","name":"\"indexOf\" checks should use a start position","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
543
+ "java:S2924": {"risk":"低危","name":"JUnit rules should be used","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S2925": {"risk":"中危","name":"\"Thread.sleep\" should not be used in tests","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
544
+ "java:S2970": {"risk":"严重","name":"Assertions should be complete","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"]}, "java:S2975": {"risk":"严重","name":"\"clone\" should not be overridden","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"]},
545
+ "java:S3008": {"risk":"低危","name":"Static non-final field names should comply with a naming convention","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S3010": {"risk":"中危","name":"Static fields should not be updated in constructors","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
546
+ "java:S3011": {"risk":"中危","name":"Reflection should not be used to increase accessibility of classes, methods, or fields","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S3012": {"risk":"低危","name":"Arrays should not be copied using loops","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
547
+ "java:S3014": {"risk":"严重","name":"\"ThreadGroup\" should not be used","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"]}, "java:S3020": {"risk":"低危","name":"\"toArray\" should be passed an array of the proper type","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
548
+ "java:S3034": {"risk":"中危","name":"Raw byte values should not be used in bitwise operations in combination with shifts","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S3038": {"risk":"低危","name":"Abstract methods should not be redundant","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
549
+ "java:S3039": {"risk":"中危","name":"\"String\" calls should not go beyond their bounds","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S3042": {"risk":"中危","name":"\"writeObject\" should not be the only \"synchronized\" code in a class","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
550
+ "java:S3046": {"risk":"严重","name":"\"wait\" should not be called when multiple locks are held","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"]}, "java:S3064": {"risk":"中危","name":"Assignment of lazy-initialized members should be the last step with double-checked locking","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
551
+ "java:S3065": {"risk":"中危","name":"Min and max used in combination should not always return the same value","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S3066": {"risk":"低危","name":"\"enum\" fields should not be publicly mutable","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
552
+ "java:S3067": {"risk":"中危","name":"\"getClass\" should not be used for synchronization","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S3077": {"risk":"低危","name":"Non-primitive fields should not be \"volatile\"","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
553
+ "java:S3078": {"risk":"中危","name":"\"volatile\" variables should not be used with compound operators","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S3252": {"risk":"高危","name":"\"static\" base class members should not be accessed via derived types","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
554
+ "java:S3281": {"risk":"严重","name":"Default EJB interceptors should be declared in \"ejb-jar.xml\"","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"]}, "java:S3305": {"risk":"高危","name":"Factory method injection should be used in \"@Configuration\" classes","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
555
+ "java:S3329": {"risk":"低危","name":"Cipher Block Chaining IV's should be unpredictable","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S3330": {"risk":"低危","name":"Creating cookies without the \"HttpOnly\" flag is security-sensitive","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
556
+ "java:S3346": {"risk":"中危","name":"Expressions used in \"assert\" should not produce side effects","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S3355": {"risk":"高危","name":"Defined filters should be used","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
557
+ "java:S3358": {"risk":"中危","name":"Ternary operators should not be nested","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S3374": {"risk":"严重","name":"Struts validation forms should have unique names","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"]},
558
+ "java:S3398": {"risk":"低危","name":"\"private\" methods called only by inner classes should be moved to those classes","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S3400": {"risk":"低危","name":"Methods should not return constants","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
559
+ "java:S3415": {"risk":"中危","name":"Assertion arguments should be passed in the correct order","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S3416": {"risk":"低危","name":"Loggers should be named for their enclosing classes","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
560
+ "java:S3421": {"risk":"低危","name":"Deprecated \"${pom}\" properties should not be used","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S3422": {"risk":"高危","name":"Dependencies should not have \"system\" scope","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
561
+ "java:S3436": {"risk":"中危","name":"Value-based classes should not be used for locking","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S3438": {"risk":"中危","name":"\"SingleConnectionFactory\" instances should be set to \"reconnectOnException\"","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
562
+ "java:S3439": {"risk":"中危","name":"\"DefaultMessageListenerContainer\" instances should not drop messages during restarts","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S3457": {"risk":"中危","name":"Printf-style format strings should be used correctly","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
563
+ "java:S3516": {"risk":"严重","name":"Methods returns should not be invariant","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"]}, "java:S3518": {"risk":"低危","name":"Zero should not be a possible denominator","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
564
+ "java:S3551": {"risk":"中危","name":"Overrides should match their parent class methods in synchronization","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S3577": {"risk":"低危","name":"Test classes should comply with a naming convention","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
565
+ "java:S3599": {"risk":"低危","name":"Double Brace Initialization should not be used","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S3626": {"risk":"低危","name":"Jump statements should not be redundant","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
566
+ "java:S3631": {"risk":"中危","name":"\"Arrays.stream\" should be used for primitive arrays","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S3655": {"risk":"中危","name":"Optional value should only be accessed after calling isPresent()","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
567
+ "java:S3740": {"risk":"中危","name":"Raw types should not be used","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S3751": {"risk":"中危","name":"\"@RequestMapping\" methods should be \"public\"","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
568
+ "java:S3752": {"risk":"低危","name":"Allowing both safe and unsafe HTTP methods is security-sensitive","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S3753": {"risk":"严重","name":"\"@Controller\" classes that use \"@SessionAttributes\" must call \"setComplete\" on their \"SessionStatus\" objects","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"]},
569
+ "java:S3776": {"risk":"高危","name":"Cognitive Complexity of methods should not be too high","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]}, "java:S3822": {"risk":"高危","name":"Hibernate should not update database schemas","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
570
+ "java:S3824": {"risk":"中危","name":"\"Map.get\" and value test should be replaced with single method call","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S3864": {"risk":"中危","name":"\"Stream.peek\" should be used with caution","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
571
+ "java:S3878": {"risk":"低危","name":"Arrays should not be created for varargs parameters","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S3923": {"risk":"中危","name":"All branches in a conditional structure should not have exactly the same implementation","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
572
+ "java:S3958": {"risk":"中危","name":"Intermediate Stream methods should not be left unused","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S3959": {"risk":"中危","name":"Consumed Stream pipelines should not be reused","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
573
+ "java:S3972": {"risk":"高危","name":"Conditionals should start on new lines","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]}, "java:S3973": {"risk":"高危","name":"A conditionally executed single line should be denoted by indentation","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
574
+ "java:S3981": {"risk":"中危","name":"Collection sizes and array length comparisons should make sense","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S3984": {"risk":"中危","name":"Exceptions should not be created without being thrown","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
575
+ "java:S3985": {"risk":"中危","name":"Unused \"private\" classes should be removed","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S3986": {"risk":"中危","name":"Week Year (\"YYYY\") should not be used for date formatting","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
576
+ "java:S4032": {"risk":"低危","name":"Packages containing only \"package-info.java\" should be removed","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S4034": {"risk":"低危","name":"\"Stream\" call chains should be simplified when possible","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
577
+ "java:S4036": {"risk":"低危","name":"Searching OS commands in PATH is security-sensitive","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S4042": {"risk":"中危","name":"\"java.nio.Files#delete\" should be preferred","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
578
+ "java:S4065": {"risk":"低危","name":"\"ThreadLocal.withInitial\" should be preferred","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S4087": {"risk":"低危","name":"\"close()\" calls should not be redundant","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
579
+ "java:S4143": {"risk":"中危","name":"Map values should not be replaced unconditionally","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S4144": {"risk":"中危","name":"Methods should not have identical implementations","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
580
+ "java:S4165": {"risk":"中危","name":"Assignments should not be redundant","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S4201": {"risk":"低危","name":"Null checks should not be used with \"instanceof\"","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
581
+ "java:S4274": {"risk":"中危","name":"Asserts should not be used to check the parameters of a public method","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S4275": {"risk":"高危","name":"Getters and setters should access the expected fields","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
582
+ "java:S4276": {"risk":"低危","name":"Functional Interfaces should be as specialised as possible","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S4347": {"risk":"高危","name":"\"SecureRandom\" seeds should not be predictable","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
583
+ "java:S4348": {"risk":"中危","name":"\"iterator\" should not return \"this\"","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S4349": {"risk":"低危","name":"\"write(byte[],int,int)\" should be overridden","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
584
+ "java:S4351": {"risk":"中危","name":"\"compareTo\" should not be overloaded","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S4423": {"risk":"高危","name":"Weak SSL/TLS protocols should not be used","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
585
+ "java:S4425": {"risk":"中危","name":"\"Integer.toHexString\" should not be used to build hexadecimal strings","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S4426": {"risk":"高危","name":"Cryptographic keys should be robust","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
586
+ "java:S4433": {"risk":"高危","name":"LDAP connections should be authenticated","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]}, "java:S4434": {"risk":"中危","name":"Allowing deserialization of LDAP objects is security-sensitive","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
587
+ "java:S4449": {"risk":"中危","name":"Nullness of parameters should be guaranteed","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S4454": {"risk":"高危","name":"\"equals\" method parameters should not be marked \"@Nonnull\"","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
588
+ "java:S4488": {"risk":"低危","name":"Composed \"@RequestMapping\" variants should be preferred","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S4502": {"risk":"高危","name":"Disabling CSRF protections is security-sensitive","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
589
+ "java:S4507": {"risk":"低危","name":"Delivering code in production with debug features activated is security-sensitive","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S4512": {"risk":"高危","name":"Setting JavaBean properties is security-sensitive","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
590
+ "java:S4517": {"risk":"中危","name":"InputSteam.read() implementation should not return a signed byte","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S4524": {"risk":"高危","name":"\"default\" clauses should be last","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
591
+ "java:S4544": {"risk":"高危","name":"Using unsafe Jackson deserialization configuration is security-sensitive","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]}, "java:S4601": {"risk":"高危","name":"\"HttpSecurity\" URL patterns should be correctly ordered","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
592
+ "java:S4602": {"risk":"严重","name":"\"@SpringBootApplication\" and \"@ComponentScan\" should not be used in the default package","engine":"sonar","sources":[0,1],"sourceRisks":["严重","严重"]}, "java:S4635": {"risk":"高危","name":"String offset-based methods should be preferred for finding substrings from offsets","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
593
+ "java:S4682": {"risk":"低危","name":"\"@CheckForNull\" or \"@Nullable\" should not be used on primitive types","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S4684": {"risk":"高危","name":"Persistent entities should not be used as arguments of \"@RequestMapping\" methods","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
594
+ "java:S4719": {"risk":"低危","name":"\"StandardCharsets\" constants should be preferred","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S4738": {"risk":"中危","name":"Java features should be preferred to Guava","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
595
+ "java:S4790": {"risk":"高危","name":"Using weak hashing algorithms is security-sensitive","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]}, "java:S4792": {"risk":"高危","name":"Configuring loggers is security-sensitive","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
596
+ "java:S4830": {"risk":"高危","name":"Server certificates should be verified during SSL/TLS connections","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]}, "java:S4838": {"risk":"低危","name":"An iteration on a Collection should be performed on the type handled by the Collection","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
597
+ "java:S4925": {"risk":"中危","name":"\"Class.forName()\" should not load JDBC 4.0+ drivers","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S4929": {"risk":"低危","name":"\"read(byte[],int,int)\" should be overridden","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
598
+ "java:S4970": {"risk":"高危","name":"Derived exceptions should not hide their parents' catch blocks","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]}, "java:S4973": {"risk":"中危","name":"Strings and Boxed types should be compared using \"equals()\"","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
599
+ "java:S4977": {"risk":"低危","name":"Type parameters should not shadow other type parameters","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S5042": {"risk":"高危","name":"Expanding archive files without controlling resource consumption is security-sensitive","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
600
+ "java:S5122": {"risk":"低危","name":"Having a permissive Cross-Origin Resource Sharing policy is security-sensitive","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S5164": {"risk":"中危","name":"\"ThreadLocal\" variables should be cleaned up when no longer used","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
601
+ "java:S5247": {"risk":"中危","name":"Disabling auto-escaping in template engines is security-sensitive","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S5261": {"risk":"中危","name":"\"else\" statements should be clearly matched with an \"if\"","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
602
+ "java:S5301": {"risk":"低危","name":"\"ActiveMQConnectionFactory\" should not be vulnerable to malicious code deserialization","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S5320": {"risk":"高危","name":"Broadcasting intents is security-sensitive","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
603
+ "java:S5322": {"risk":"高危","name":"Receiving intents is security-sensitive","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]}, "java:S5324": {"risk":"高危","name":"Accessing Android external storage is security-sensitive","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
604
+ "java:S5332": {"risk":"高危","name":"Using clear-text protocols is security-sensitive","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]}, "java:S5344": {"risk":"高危","name":"Passwords should not be stored in plain-text or with a fast hashing algorithm","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
605
+ "java:S5361": {"risk":"高危","name":"\"String#replace\" should be preferred to \"String#replaceAll\"","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]}, "java:S5411": {"risk":"低危","name":"Boxed \"Boolean\" should be avoided in boolean expressions","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
606
+ "java:S5413": {"risk":"中危","name":"'List.remove()' should not be used in ascending 'for' loops","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S5443": {"risk":"高危","name":"Using publicly writable directories is security-sensitive","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
607
+ "java:S5445": {"risk":"高危","name":"Insecure temporary file creation methods should not be used","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]}, "java:S5527": {"risk":"高危","name":"Server hostnames should be verified during SSL/TLS connections","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
608
+ "java:S5542": {"risk":"低危","name":"Encryption algorithms should be used with secure mode and padding scheme","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S5547": {"risk":"高危","name":"Cipher algorithms should be robust","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
609
+ "java:S5659": {"risk":"高危","name":"JWT should be signed and verified with strong cipher algorithms","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]}, "java:S5663": {"risk":"低危","name":"Simple string literal should be used for single line strings","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
610
+ "java:S5664": {"risk":"中危","name":"Whitespace for text block indent should be consistent","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S5665": {"risk":"低危","name":"Escape sequences should not be used in text blocks","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
611
+ "java:S5669": {"risk":"中危","name":"Vararg method arguments should not be confusing","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S5679": {"risk":"中危","name":"OpenSAML2 should be configured to prevent authentication bypass","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
612
+ "java:S5689": {"risk":"低危","name":"Disclosing fingerprints from web application technologies is security-sensitive","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S5693": {"risk":"中危","name":"Allowing requests with excessive content length is security-sensitive","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
613
+ "java:S5738": {"risk":"中危","name":"\"@Deprecated\" code marked for removal should never be used","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S5776": {"risk":"中危","name":"Exception testing via JUnit ExpectedException rule should not be mixed with other assertions","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
614
+ "java:S5777": {"risk":"低危","name":"Exception testing via JUnit @Test annotation should be avoided","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S5778": {"risk":"中危","name":"Only one method invocation is expected when testing runtime exceptions","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
615
+ "java:S5779": {"risk":"高危","name":"Assertion methods should not be used within the try block of a try-catch catching an Error","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]}, "java:S5783": {"risk":"高危","name":"Only one method invocation is expected when testing checked exceptions","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
616
+ "java:S5785": {"risk":"中危","name":"JUnit assertTrue/assertFalse should be simplified to the corresponding dedicated assertion","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S5786": {"risk":"低危","name":"JUnit5 test classes and methods should have default package visibility","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
617
+ "java:S5790": {"risk":"高危","name":"JUnit5 inner test classes should be annotated with @Nested","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]}, "java:S5803": {"risk":"高危","name":"Class members annotated with \"@VisibleForTesting\" should not be accessed from production code","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
618
+ "java:S5804": {"risk":"中危","name":"Allowing user enumeration is security-sensitive","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S5808": {"risk":"中危","name":"Authorizations should be based on strong decisions","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
619
+ "java:S5810": {"risk":"中危","name":"JUnit5 test classes and methods should not be silently ignored","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S5826": {"risk":"高危","name":"Methods setUp() and tearDown() should be correctly annotated starting with JUnit4","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
620
+ "java:S5831": {"risk":"中危","name":"AssertJ configuration should be applied","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S5833": {"risk":"中危","name":"AssertJ methods setting the assertion context should come before an assertion","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
621
+ "java:S5838": {"risk":"低危","name":"Chained AssertJ assertions should be simplified to the corresponding dedicated assertion","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S5841": {"risk":"低危","name":"AssertJ assertions \"allMatch\" and \"doesNotContains\" should also test for emptiness","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
622
+ "java:S5842": {"risk":"低危","name":"Regex repetition pattern's body should not match the empty String","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S5843": {"risk":"中危","name":"Regular expressions should not be too complicated","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
623
+ "java:S5845": {"risk":"高危","name":"Assertions comparing incompatible types should not be made","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]}, "java:S5846": {"risk":"高危","name":"Empty lines should not be tested with regex MULTILINE flag","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
624
+ "java:S5850": {"risk":"中危","name":"Alternatives in regular expressions should be grouped when used with anchors","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S5852": {"risk":"高危","name":"Using slow regular expressions is security-sensitive","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
625
+ "java:S5853": {"risk":"低危","name":"Consecutive AssertJ \"assertThat\" statements should be chained","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S5854": {"risk":"中危","name":"Regexes containing characters subject to normalization should use the CANON_EQ flag","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
626
+ "java:S5855": {"risk":"中危","name":"Regex alternatives should not be redundant","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S5856": {"risk":"高危","name":"Regular expressions should be syntactically valid","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
627
+ "java:S5857": {"risk":"低危","name":"Character classes should be preferred over reluctant quantifiers in regular expressions","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S5860": {"risk":"中危","name":"Names of regular expressions named groups should be used","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
628
+ "java:S5863": {"risk":"中危","name":"Assertions should not compare an object to itself","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S5866": {"risk":"中危","name":"Case insensitive Unicode regular expressions should enable the “UNICODE_CASE” flag","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
629
+ "java:S5868": {"risk":"中危","name":"Unicode Grapheme Clusters should be avoided inside regex character classes","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S5869": {"risk":"中危","name":"Character classes in regular expressions should not contain the same character twice","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
630
+ "java:S5876": {"risk":"高危","name":"A new session should be created during user authentication","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]}, "java:S5917": {"risk":"中危","name":"DateTimeFormatters should not use mismatched year and week numbers","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
631
+ "java:S5958": {"risk":"中危","name":"AssertJ \"assertThatThrownBy\" should not be used alone","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S5960": {"risk":"中危","name":"Assertions should not be used in production code","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
632
+ "java:S5961": {"risk":"中危","name":"Test methods should not contain too many assertions","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S5967": {"risk":"中危","name":"Tests method should not be annotated with competing annotations","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
633
+ "java:S5969": {"risk":"高危","name":"Mocking all non-private methods of a class should be avoided","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]}, "java:S5973": {"risk":"中危","name":"Tests should be stable","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
634
+ "java:S5976": {"risk":"中危","name":"Similar tests should be grouped in a single Parameterized test","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S5993": {"risk":"中危","name":"Constructors of an \"abstract\" class should not be declared \"public\"","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
635
+ "java:S5994": {"risk":"高危","name":"Regex patterns following a possessive quantifier should not always fail","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]}, "java:S5996": {"risk":"高危","name":"Regex boundaries should not be used in a way that can never be matched","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
636
+ "java:S5998": {"risk":"中危","name":"Regular expressions should not overflow the stack","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S6001": {"risk":"高危","name":"Back references in regular expressions should only refer to capturing groups that are matched before the reference","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]},
637
+ "java:S6002": {"risk":"高危","name":"Regex lookahead assertions should not be contradictory","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]}, "java:S6019": {"risk":"中危","name":"Reluctant quantifiers in regular expressions should be followed by an expression that can't match the empty string","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
638
+ "java:S6035": {"risk":"中危","name":"Single-character alternations in regular expressions should be replaced with character classes","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S6068": {"risk":"低危","name":"Call to Mockito method \"verify\", \"when\" or \"given\" should be simplified","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
639
+ "java:S6070": {"risk":"中危","name":"The regex escape sequence \\cX should only be used with characters in the @-_ range","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S6103": {"risk":"中危","name":"AssertJ assertions with \"Consumer\" arguments should contain assertion inside consumers","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
640
+ "java:S6104": {"risk":"高危","name":"Map \"computeIfAbsent()\" and \"computeIfPresent()\" should not be used to add \"null\" values.","engine":"sonar","sources":[0,1],"sourceRisks":["高危","高危"]}, "java:S6126": {"risk":"中危","name":"String multiline concatenation should be replaced with Text Blocks","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
641
+ "java:S6202": {"risk":"中危","name":"Operator \"instanceof\" should be used instead of \"A.class.isInstance()\"","engine":"sonar","sources":[0],"sourceRisks":["中危"]}, "java:S6203": {"risk":"低危","name":"Text blocks should not be used in complex expressions","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
642
+ "java:S6205": {"risk":"低危","name":"Switch arrow labels should not use redundant keywords","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S6208": {"risk":"低危","name":"Comma-separated labels should be used in Switch with colon case","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
643
+ "java:S6212": {"risk":"低危","name":"Local-Variable Type Inference should be used","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "java:S6213": {"risk":"中危","name":"Restricted Identifiers should not be used as Identifiers","engine":"sonar","sources":[0],"sourceRisks":["中危"]},
644
+ "java:S899": {"risk":"低危","name":"Return values should not be ignored when they contain the operation status code","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "kd-custom-rules:DynamicCreateClassInstancesCheck": {"risk":"低危","name":"动态创建类实例不符合热部署规范","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
645
+ "kd-custom-rules:SerializedStandardCheck": {"risk":"低危","name":"二开序列化对象使用规范不符合热部署规范","engine":"sonar","sources":[0],"sourceRisks":["低危"]}, "kd-custom-rules:SystemResourceAccessNameCheck": {"risk":"低危","name":"系统资源访问命名不符合热部署规范","engine":"sonar","sources":[0],"sourceRisks":["低危"]},
646
+ "meta_inheritpath_check": {"risk":"严重","name":"元数据继承规范检测","engine":"metaScan","sources":[0],"sourceRisks":["严重"]}, "meta_list_filterfields_not_define": {"risk":"高危","name":"列表过滤方案出现未定义字段","engine":"metaScan","sources":[0],"sourceRisks":["高危"]},
647
+ "meta_loadability_check": {"risk":"高危","name":"元数据可加载性检查未通过","engine":"metaScan","sources":[0],"sourceRisks":["高危"]}, "typescript:S100": {"risk":"低危","name":"Function and method names should comply with a naming convention","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
648
+ "typescript:S101": {"risk":"低危","name":"Class names should comply with a naming convention","engine":"eslint","sources":[0],"sourceRisks":["低危"]}, "typescript:S103": {"risk":"中危","name":"Lines should not be too long","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
649
+ "typescript:S104": {"risk":"中危","name":"Files should not have too many lines of code","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S105": {"risk":"低危","name":"Tabulation characters should not be used","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
650
+ "typescript:S106": {"risk":"中危","name":"Standard outputs should not be used directly to log anything","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S1066": {"risk":"中危","name":"Mergeable \"if\" statements should be combined","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
651
+ "typescript:S1067": {"risk":"高危","name":"Expressions should not be too complex","engine":"eslint","sources":[0,1],"sourceRisks":["中危","高危"]}, "typescript:S1068": {"risk":"中危","name":"Unused private class members should be removed","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
652
+ "typescript:S107": {"risk":"中危","name":"Functions should not have too many parameters","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S108": {"risk":"中危","name":"Nested blocks of code should not be left empty","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
653
+ "typescript:S109": {"risk":"中危","name":"Magic numbers should not be used","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S1105": {"risk":"低危","name":"An open curly brace should be located at the end of a line","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
654
+ "typescript:S1110": {"risk":"中危","name":"Redundant pairs of parentheses should be removed","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S1116": {"risk":"低危","name":"Extra semicolons should be removed","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
655
+ "typescript:S1117": {"risk":"中危","name":"Variables should not be shadowed","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S1119": {"risk":"中危","name":"Labels should not be used","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
656
+ "typescript:S1121": {"risk":"中危","name":"Assignments should not be made from within sub-expressions","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S1125": {"risk":"低危","name":"Boolean literals should not be used in comparisons","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
657
+ "typescript:S1128": {"risk":"低危","name":"Unnecessary imports should be removed","engine":"eslint","sources":[0],"sourceRisks":["低危"]}, "typescript:S113": {"risk":"低危","name":"Files should end with a newline","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
658
+ "typescript:S1131": {"risk":"低危","name":"Lines should not end with trailing whitespaces","engine":"eslint","sources":[0],"sourceRisks":["低危"]}, "typescript:S1134": {"risk":"中危","name":"Track uses of \"FIXME\" tags","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
659
+ "typescript:S1135": {"risk":"严重","name":"Track uses of \"TODO\" tags","engine":"eslint","sources":[0,1],"sourceRisks":["低危","严重"]}, "typescript:S1143": {"risk":"高危","name":"Jump statements should not occur in \"finally\" blocks","engine":"eslint","sources":[0,1],"sourceRisks":["中危","高危"]},
660
+ "typescript:S1154": {"risk":"中危","name":"Results of operations on strings should not be ignored","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S117": {"risk":"低危","name":"Variable, property and parameter names should comply with a naming convention","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
661
+ "typescript:S1172": {"risk":"中危","name":"Unused function parameters should be removed","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S1186": {"risk":"高危","name":"Functions should not be empty","engine":"eslint","sources":[0,1],"sourceRisks":["中危","高危"]},
662
+ "typescript:S1192": {"risk":"高危","name":"String literals should not be duplicated","engine":"eslint","sources":[0,1],"sourceRisks":["中危","高危"]}, "typescript:S1199": {"risk":"低危","name":"Nested code blocks should not be used","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
663
+ "typescript:S121": {"risk":"高危","name":"Control structures should use curly braces","engine":"eslint","sources":[0,1],"sourceRisks":["低危","高危"]}, "typescript:S1219": {"risk":"严重","name":"\"switch\" statements should not contain non-case labels","engine":"eslint","sources":[0,1],"sourceRisks":["中危","严重"]},
664
+ "typescript:S122": {"risk":"中危","name":"Statements should be on separate lines","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S1226": {"risk":"低危","name":"Initial values of parameters, caught exceptions, and loop variables should not be ignored","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
665
+ "typescript:S124": {"risk":"中危","name":"Track comments matching a regular expression","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S125": {"risk":"低危","name":"Sections of code should not be commented out","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
666
+ "typescript:S126": {"risk":"高危","name":"\"if ... else if\" constructs should end with \"else\" clauses","engine":"eslint","sources":[0,1],"sourceRisks":["中危","高危"]}, "typescript:S1264": {"risk":"低危","name":"A \"while\" loop should be used instead of a \"for\" loop","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
667
+ "typescript:S128": {"risk":"严重","name":"Switch cases should end with an unconditional \"break\" statement","engine":"eslint","sources":[0,1],"sourceRisks":["中危","严重"]}, "typescript:S1291": {"risk":"中危","name":"Track uses of \"NOSONAR\" comments","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
668
+ "typescript:S1301": {"risk":"低危","name":"\"if\" statements should be preferred over \"switch\" when simpler","engine":"eslint","sources":[0],"sourceRisks":["低危"]}, "typescript:S131": {"risk":"高危","name":"\"switch\" statements should have \"default\" clauses","engine":"eslint","sources":[0,1],"sourceRisks":["中危","高危"]},
669
+ "typescript:S1313": {"risk":"中危","name":"Using hardcoded IP addresses is security-sensitive","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S1314": {"risk":"严重","name":"Octal values should not be used","engine":"eslint","sources":[0,1],"sourceRisks":["中危","严重"]},
670
+ "typescript:S134": {"risk":"高危","name":"Control flow statements \"if\", \"for\", \"while\", \"switch\" and \"try\" should not be nested too deeply","engine":"eslint","sources":[0,1],"sourceRisks":["中危","高危"]}, "typescript:S135": {"risk":"低危","name":"Loops should not contain more than a single \"break\" or \"continue\" statement","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
671
+ "typescript:S138": {"risk":"中危","name":"Functions should not have too many lines of code","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S139": {"risk":"低危","name":"Comments should not be located at the end of lines of code","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
672
+ "typescript:S1438": {"risk":"低危","name":"Statements should end with semicolons","engine":"eslint","sources":[0],"sourceRisks":["低危"]}, "typescript:S1439": {"risk":"中危","name":"Only \"while\", \"do\", \"for\" and \"switch\" statements should be labelled","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
673
+ "typescript:S1440": {"risk":"中危","name":"\"===\" and \"!==\" should be used instead of \"==\" and \"!=\"","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S1441": {"risk":"低危","name":"Quotes for string literals should be used consistently","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
674
+ "typescript:S1444": {"risk":"低危","name":"Public \"static\" fields should be read-only","engine":"eslint","sources":[0],"sourceRisks":["低危"]}, "typescript:S1472": {"risk":"低危","name":"Function call arguments should not start on new lines","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
675
+ "typescript:S1479": {"risk":"中危","name":"\"switch\" statements should not have too many \"case\" clauses","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S1488": {"risk":"低危","name":"Local variables should not be declared and then immediately returned or thrown","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
676
+ "typescript:S1515": {"risk":"中危","name":"Functions should not be defined inside loops","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S1516": {"risk":"低危","name":"Multiline string literals should not be used","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
677
+ "typescript:S1523": {"risk":"高危","name":"Dynamically executing code is security-sensitive","engine":"eslint","sources":[0],"sourceRisks":["高危"]}, "typescript:S1525": {"risk":"中危","name":"Debugger statements should not be used","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
678
+ "typescript:S1526": {"risk":"严重","name":"Variables declared with \"var\" should be declared before they are used","engine":"eslint","sources":[0,1],"sourceRisks":["中危","严重"]}, "typescript:S1528": {"risk":"低危","name":"Array constructors should not be used","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
679
+ "typescript:S1529": {"risk":"中危","name":"Bitwise operators should not be used in boolean contexts","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S1530": {"risk":"低危","name":"Function declarations should not be made within blocks","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
680
+ "typescript:S1533": {"risk":"低危","name":"Wrapper objects should not be used for primitive types","engine":"eslint","sources":[0],"sourceRisks":["低危"]}, "typescript:S1534": {"risk":"中危","name":"Member names should not be duplicated within a class or object literal","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
681
+ "typescript:S1535": {"risk":"中危","name":"\"for...in\" loops should filter properties before acting on them","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S1537": {"risk":"低危","name":"Trailing commas should not be used","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
682
+ "typescript:S1539": {"risk":"高危","name":"\"strict\" mode should be used with caution","engine":"eslint","sources":[0,1],"sourceRisks":["中危","高危"]}, "typescript:S1541": {"risk":"高危","name":"Cyclomatic Complexity of functions should not be too high","engine":"eslint","sources":[0,1],"sourceRisks":["中危","高危"]},
683
+ "typescript:S1607": {"risk":"中危","name":"Tests should not be skipped without providing a reason","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S1656": {"risk":"中危","name":"Variables should not be self-assigned","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
684
+ "typescript:S1751": {"risk":"中危","name":"Loops with at most one iteration should be refactored","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S1763": {"risk":"中危","name":"All code should be reachable","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
685
+ "typescript:S1764": {"risk":"中危","name":"Identical expressions should not be used on both sides of a binary operator","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S1774": {"risk":"中危","name":"The ternary operator should not be used","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
686
+ "typescript:S1788": {"risk":"中危","name":"Function parameters with default values should be last","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S1821": {"risk":"高危","name":"\"switch\" statements should not be nested","engine":"eslint","sources":[0,1],"sourceRisks":["中危","高危"]},
687
+ "typescript:S1848": {"risk":"中危","name":"Objects should not be created to be dropped immediately without being used","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S1854": {"risk":"中危","name":"Unused assignments should be removed","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
688
+ "typescript:S1862": {"risk":"中危","name":"\"if/else if\" chains and \"switch\" cases should not have the same condition","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S1871": {"risk":"中危","name":"Two branches in a conditional structure should not have exactly the same implementation","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
689
+ "typescript:S1874": {"risk":"低危","name":"Deprecated APIs should not be used","engine":"eslint","sources":[0],"sourceRisks":["低危"]}, "typescript:S1940": {"risk":"低危","name":"Boolean checks should not be inverted","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
690
+ "typescript:S1994": {"risk":"高危","name":"\"for\" loop increment clauses should modify the loops' counters","engine":"eslint","sources":[0,1],"sourceRisks":["中危","高危"]}, "typescript:S2004": {"risk":"高危","name":"Functions should not be nested too deeply","engine":"eslint","sources":[0,1],"sourceRisks":["中危","高危"]},
691
+ "typescript:S2068": {"risk":"中危","name":"Hard-coded passwords are security-sensitive","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S2077": {"risk":"中危","name":"Formatting SQL queries is security-sensitive","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
692
+ "typescript:S2094": {"risk":"低危","name":"Classes should not be empty","engine":"eslint","sources":[0],"sourceRisks":["低危"]}, "typescript:S2123": {"risk":"中危","name":"Values should not be uselessly incremented","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
693
+ "typescript:S2137": {"risk":"中危","name":"Special identifiers should not be bound or assigned","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S2138": {"risk":"低危","name":"\"undefined\" should not be assigned","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
694
+ "typescript:S2187": {"risk":"严重","name":"Test files should contain at least one test case","engine":"eslint","sources":[0,1],"sourceRisks":["中危","严重"]}, "typescript:S2201": {"risk":"中危","name":"Return values from functions without side effects should not be ignored","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
695
+ "typescript:S2208": {"risk":"高危","name":"Wildcard imports should not be used","engine":"eslint","sources":[0,1],"sourceRisks":["中危","高危"]}, "typescript:S2234": {"risk":"中危","name":"Parameters should be passed in the correct order","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
696
+ "typescript:S2245": {"risk":"中危","name":"Using pseudorandom number generators (PRNGs) is security-sensitive","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S2251": {"risk":"中危","name":"A \"for\" loop update clause should move the counter in the right direction","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
697
+ "typescript:S2260": {"risk":"中危","name":"JavaScript parser failure","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S2301": {"risk":"中危","name":"Methods should not contain selector parameters","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
698
+ "typescript:S2310": {"risk":"中危","name":"Loop counters should not be assigned within the loop body","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S2376": {"risk":"中危","name":"Property getters and setters should come in pairs","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
699
+ "typescript:S2392": {"risk":"中危","name":"Variables should be used in the blocks where they are declared","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S2424": {"risk":"高危","name":"Built-in objects should not be overridden","engine":"eslint","sources":[0],"sourceRisks":["高危"]},
700
+ "typescript:S2427": {"risk":"低危","name":"The base should be provided to \"parseInt\"","engine":"eslint","sources":[0],"sourceRisks":["低危"]}, "typescript:S2430": {"risk":"高危","name":"Constructor names should start with an upper case letter","engine":"eslint","sources":[0,1],"sourceRisks":["中危","高危"]},
701
+ "typescript:S2486": {"risk":"低危","name":"Exceptions should not be ignored","engine":"eslint","sources":[0],"sourceRisks":["低危"]}, "typescript:S2589": {"risk":"中危","name":"Boolean expressions should not be gratuitous","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
702
+ "typescript:S2639": {"risk":"中危","name":"Empty character classes should not be used","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S2681": {"risk":"中危","name":"Multiline blocks should be enclosed in curly braces","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
703
+ "typescript:S2685": {"risk":"中危","name":"\"arguments.caller\" and \"arguments.callee\" should not be used","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S2688": {"risk":"中危","name":"\"NaN\" should not be used in comparisons","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
704
+ "typescript:S2692": {"risk":"中危","name":"\"indexOf\" checks should not be for positive numbers","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S2699": {"risk":"严重","name":"Tests should include assertions","engine":"eslint","sources":[0,1],"sourceRisks":["中危","严重"]},
705
+ "typescript:S2737": {"risk":"低危","name":"\"catch\" clauses should do more than rethrow","engine":"eslint","sources":[0],"sourceRisks":["低危"]}, "typescript:S2757": {"risk":"中危","name":"Non-existent operators '=+', '=-' and '=!' should not be used","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
706
+ "typescript:S2870": {"risk":"中危","name":"\"delete\" should not be used on arrays","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S2871": {"risk":"高危","name":"\"Array.prototype.sort()\" and \"Array.prototype.toSorted()\" should use a compare function","engine":"eslint","sources":[0,1],"sourceRisks":["中危","高危"]},
707
+ "typescript:S2933": {"risk":"中危","name":"Fields that are only assigned in the constructor should be \"readonly\"","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S2966": {"risk":"低危","name":"Non-null assertions should not be used","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
708
+ "typescript:S2970": {"risk":"严重","name":"Assertions should be complete","engine":"eslint","sources":[0,1],"sourceRisks":["中危","严重"]}, "typescript:S2990": {"risk":"低危","name":"The global \"this\" object should not be used","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
709
+ "typescript:S2999": {"risk":"中危","name":"\"new\" should only be used with functions and classes","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S3001": {"risk":"低危","name":"\"delete\" should be used only with object properties","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
710
+ "typescript:S3003": {"risk":"中危","name":"Comparison operators should not be used with strings","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S3257": {"risk":"低危","name":"Primitive types should be omitted from initialized or defaulted declarations","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
711
+ "typescript:S3317": {"risk":"低危","name":"Default export names and file names should match","engine":"eslint","sources":[0],"sourceRisks":["低危"]}, "typescript:S3358": {"risk":"中危","name":"Ternary operators should not be nested","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
712
+ "typescript:S3402": {"risk":"低危","name":"Strings and non-strings should not be added","engine":"eslint","sources":[0],"sourceRisks":["低危"]}, "typescript:S3415": {"risk":"中危","name":"Assertion arguments should be passed in the correct order","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
713
+ "typescript:S3498": {"risk":"低危","name":"Object literal shorthand syntax should be used","engine":"eslint","sources":[0],"sourceRisks":["低危"]}, "typescript:S3499": {"risk":"低危","name":"Shorthand object properties should be grouped at the beginning or end of an object declaration","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
714
+ "typescript:S3504": {"risk":"高危","name":"Variables should be declared with \"let\" or \"const\"","engine":"eslint","sources":[0,1],"sourceRisks":["中危","高危"]}, "typescript:S3512": {"risk":"低危","name":"Template strings should be used instead of concatenation","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
715
+ "typescript:S3513": {"risk":"中危","name":"\"arguments\" should not be accessed directly","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S3514": {"risk":"低危","name":"Destructuring syntax should be used for assignments","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
716
+ "typescript:S3516": {"risk":"严重","name":"Function returns should not be invariant","engine":"eslint","sources":[0,1],"sourceRisks":["中危","严重"]}, "typescript:S3524": {"risk":"低危","name":"Braces and parentheses should be used consistently with arrow functions","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
717
+ "typescript:S3525": {"risk":"高危","name":"Class methods should be used instead of \"prototype\" assignments","engine":"eslint","sources":[0,1],"sourceRisks":["中危","高危"]}, "typescript:S3531": {"risk":"中危","name":"Generators should explicitly \"yield\" a value","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
718
+ "typescript:S3533": {"risk":"低危","name":"\"import\" should be used to include external code","engine":"eslint","sources":[0],"sourceRisks":["低危"]}, "typescript:S3579": {"risk":"中危","name":"Array indexes should be numeric","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
719
+ "typescript:S3616": {"risk":"中危","name":"Comma and logical OR operators should not be used in switch cases","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S3626": {"risk":"低危","name":"Jump statements should not be redundant","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
720
+ "typescript:S3696": {"risk":"中危","name":"Literals should not be thrown","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S3699": {"risk":"中危","name":"The return value of void functions should not be used","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
721
+ "typescript:S3735": {"risk":"高危","name":"\"void\" should not be used","engine":"eslint","sources":[0,1],"sourceRisks":["中危","高危"]}, "typescript:S3776": {"risk":"高危","name":"Cognitive Complexity of functions should not be too high","engine":"eslint","sources":[0,1],"sourceRisks":["低危","高危"]},
722
+ "typescript:S3786": {"risk":"中危","name":"Template literal placeholder syntax should not be used in regular strings","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S3799": {"risk":"中危","name":"Destructuring patterns should not be empty","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
723
+ "typescript:S3801": {"risk":"中危","name":"Functions should use \"return\" consistently","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S3812": {"risk":"高危","name":"Parentheses should be used when negating \"in\" and \"instanceof\" operations","engine":"eslint","sources":[0,1],"sourceRisks":["中危","高危"]},
724
+ "typescript:S3854": {"risk":"高危","name":"\"super()\" should be invoked appropriately","engine":"eslint","sources":[0,1],"sourceRisks":["中危","高危"]}, "typescript:S3863": {"risk":"低危","name":"Imports from the same module should be merged","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
725
+ "typescript:S3923": {"risk":"中危","name":"All branches in a conditional structure should not have exactly the same implementation","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S3972": {"risk":"高危","name":"Conditionals should start on new lines","engine":"eslint","sources":[0,1],"sourceRisks":["中危","高危"]},
726
+ "typescript:S3973": {"risk":"高危","name":"A conditionally executed single line should be denoted by indentation","engine":"eslint","sources":[0,1],"sourceRisks":["中危","高危"]}, "typescript:S3981": {"risk":"中危","name":"Collection size and array length comparisons should make sense","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
727
+ "typescript:S3984": {"risk":"中危","name":"Errors should not be created without being thrown","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S4023": {"risk":"低危","name":"Interfaces should not be empty","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
728
+ "typescript:S4030": {"risk":"中危","name":"Collection contents should be used","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S4036": {"risk":"中危","name":"Searching OS commands in PATH is security-sensitive","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
729
+ "typescript:S4043": {"risk":"中危","name":"Array-mutating methods should not be used misleadingly","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S4123": {"risk":"高危","name":"\"await\" should only be used with promises","engine":"eslint","sources":[0,1],"sourceRisks":["中危","高危"]},
730
+ "typescript:S4124": {"risk":"中危","name":"Constructors should not be declared inside interfaces","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S4136": {"risk":"低危","name":"Method overloads should be grouped together","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
731
+ "typescript:S4137": {"risk":"中危","name":"Type assertions should use \"as\"","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S4138": {"risk":"低危","name":"\"for of\" should be used with Iterables","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
732
+ "typescript:S4139": {"risk":"中危","name":"\"for in\" should not be used with iterables","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S4140": {"risk":"中危","name":"Sparse arrays should not be created with extra commas","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
733
+ "typescript:S4143": {"risk":"中危","name":"Collection elements should not be replaced unconditionally","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S4144": {"risk":"中危","name":"Functions should not have identical implementations","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
734
+ "typescript:S4156": {"risk":"低危","name":"\"module\" should not be used","engine":"eslint","sources":[0],"sourceRisks":["低危"]}, "typescript:S4157": {"risk":"低危","name":"Default type parameters should be omitted","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
735
+ "typescript:S4158": {"risk":"低危","name":"Empty collections should not be accessed or iterated","engine":"eslint","sources":[0],"sourceRisks":["低危"]}, "typescript:S4165": {"risk":"中危","name":"Assignments should not be redundant","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
736
+ "typescript:S4204": {"risk":"低危","name":"The \"any\" type should not be used","engine":"eslint","sources":[0],"sourceRisks":["低危"]}, "typescript:S4275": {"risk":"高危","name":"Getters and setters should access the expected fields","engine":"eslint","sources":[0,1],"sourceRisks":["中危","高危"]},
737
+ "typescript:S4322": {"risk":"低危","name":"Type predicates should be used","engine":"eslint","sources":[0],"sourceRisks":["低危"]}, "typescript:S4323": {"risk":"低危","name":"Type aliases should be used","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
738
+ "typescript:S4324": {"risk":"低危","name":"Primitive return types should be used","engine":"eslint","sources":[0],"sourceRisks":["低危"]}, "typescript:S4325": {"risk":"低危","name":"Redundant casts and non-null assertions should be avoided","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
739
+ "typescript:S4326": {"risk":"低危","name":"\"await\" should not be used redundantly","engine":"eslint","sources":[0],"sourceRisks":["低危"]}, "typescript:S4327": {"risk":"低危","name":"\"this\" should not be assigned to variables","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
740
+ "typescript:S4328": {"risk":"中危","name":"Dependencies should be explicit","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S4335": {"risk":"高危","name":"Type intersections should use meaningful types","engine":"eslint","sources":[0,1],"sourceRisks":["中危","高危"]},
741
+ "typescript:S4426": {"risk":"高危","name":"Cryptographic keys should be robust","engine":"eslint","sources":[0,1],"sourceRisks":["中危","高危"]}, "typescript:S4507": {"risk":"中危","name":"Delivering code in production with debug features activated is security-sensitive","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
742
+ "typescript:S4524": {"risk":"高危","name":"\"default\" clauses should be last","engine":"eslint","sources":[0,1],"sourceRisks":["中危","高危"]}, "typescript:S4619": {"risk":"中危","name":"\"in\" should not be used on arrays","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
743
+ "typescript:S4621": {"risk":"高危","name":"Union and intersection types should not include duplicated constituents","engine":"eslint","sources":[0,1],"sourceRisks":["中危","高危"]}, "typescript:S4622": {"risk":"中危","name":"Union types should not have too many elements","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
744
+ "typescript:S4623": {"risk":"中危","name":"\"undefined\" should not be passed as the value of optional parameters","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S4624": {"risk":"中危","name":"Template literals should not be nested","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
745
+ "typescript:S4782": {"risk":"中危","name":"Optional property declarations should not use both '?' and 'undefined' syntax","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S4784": {"risk":"中危","name":"Using regular expressions is security-sensitive","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
746
+ "typescript:S4787": {"risk":"中危","name":"Encrypting data is security-sensitive","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S4790": {"risk":"中危","name":"Using weak hashing algorithms is security-sensitive","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
747
+ "typescript:S4798": {"risk":"中危","name":"Optional boolean parameters should have default value","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S5247": {"risk":"中危","name":"Disabling auto-escaping in template engines is security-sensitive","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
748
+ "typescript:S5332": {"risk":"中危","name":"Using clear-text protocols is security-sensitive","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S5527": {"risk":"高危","name":"Server hostnames should be verified during SSL/TLS connections","engine":"eslint","sources":[0,1],"sourceRisks":["中危","高危"]},
749
+ "typescript:S5542": {"risk":"高危","name":"Encryption algorithms should be used with secure mode and padding scheme","engine":"eslint","sources":[0,1],"sourceRisks":["中危","高危"]}, "typescript:S5547": {"risk":"高危","name":"Cipher algorithms should be robust","engine":"eslint","sources":[0,1],"sourceRisks":["中危","高危"]},
750
+ "typescript:S5604": {"risk":"中危","name":"Using intrusive permissions is security-sensitive","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S5689": {"risk":"中危","name":"Disclosing fingerprints from web application technologies is security-sensitive","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
751
+ "typescript:S5691": {"risk":"中危","name":"Statically serving hidden files is security-sensitive","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S5693": {"risk":"中危","name":"Allowing requests with excessive content length is security-sensitive","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
752
+ "typescript:S5725": {"risk":"中危","name":"Using remote artifacts without integrity checks is security-sensitive","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S5757": {"risk":"中危","name":"Allowing confidential information to be logged is security-sensitive","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
753
+ "typescript:S5759": {"risk":"中危","name":"Forwarding client IP address is security-sensitive","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S5842": {"risk":"低危","name":"Repeated patterns in regular expressions should not match the empty string","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
754
+ "typescript:S5843": {"risk":"中危","name":"Regular expressions should not be too complicated","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S5850": {"risk":"中危","name":"Alternatives in regular expressions should be grouped when used with anchors","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
755
+ "typescript:S5852": {"risk":"中危","name":"Using slow regular expressions is security-sensitive","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S5856": {"risk":"高危","name":"Regular expressions should be syntactically valid","engine":"eslint","sources":[0,1],"sourceRisks":["中危","高危"]},
756
+ "typescript:S5860": {"risk":"中危","name":"Names of regular expressions named groups should be used","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S5863": {"risk":"中危","name":"Assertions should not be given twice the same argument","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
757
+ "typescript:S5867": {"risk":"低危","name":"Regular expressions using Unicode character classes or property escapes should enable the unicode flag","engine":"eslint","sources":[0],"sourceRisks":["低危"]}, "typescript:S5868": {"risk":"中危","name":"Unicode Grapheme Clusters should be avoided inside regex character classes","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
758
+ "typescript:S5869": {"risk":"中危","name":"Character classes in regular expressions should not contain the same character twice","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S5958": {"risk":"中危","name":"Tests should check which exception is thrown","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
759
+ "typescript:S5973": {"risk":"中危","name":"Tests should be stable","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S6019": {"risk":"中危","name":"Reluctant quantifiers in regular expressions should be followed by an expression that can't match the empty string","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
760
+ "typescript:S6035": {"risk":"中危","name":"Single-character alternations in regular expressions should be replaced with character classes","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S6079": {"risk":"高危","name":"Tests should not execute any code after \"done()\" is called","engine":"eslint","sources":[0,1],"sourceRisks":["中危","高危"]},
761
+ "typescript:S6080": {"risk":"中危","name":"Disabling Mocha timeouts should be explicit","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S6092": {"risk":"中危","name":"Chai assertions should have only one reason to succeed","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
762
+ "typescript:S6317": {"risk":"高危","name":"AWS IAM policies should limit the scope of permissions given","engine":"eslint","sources":[0,1],"sourceRisks":["中危","高危"]}, "typescript:S6321": {"risk":"低危","name":"Administration services access should be restricted to specific IP addresses","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
763
+ "typescript:S6323": {"risk":"中危","name":"Alternation in regular expressions should not contain empty alternatives","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S6324": {"risk":"中危","name":"Regular expressions should not contain control characters","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
764
+ "typescript:S6325": {"risk":"低危","name":"Regular expression literals should be used when possible","engine":"eslint","sources":[0],"sourceRisks":["低危"]}, "typescript:S6326": {"risk":"中危","name":"Regular expressions should not contain multiple spaces","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
765
+ "typescript:S6328": {"risk":"中危","name":"Replacement strings should reference existing regular expression groups","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S6329": {"risk":"中危","name":"Allowing public network access to cloud resources is security-sensitive","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
766
+ "typescript:S6331": {"risk":"中危","name":"Regular expressions should not contain empty groups","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S6333": {"risk":"中危","name":"Creating public APIs is security-sensitive","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
767
+ "typescript:S6351": {"risk":"中危","name":"Regular expressions with the global flag should be used with caution","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S6353": {"risk":"低危","name":"Regular expression quantifiers and character classes should be used concisely","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
768
+ "typescript:S6397": {"risk":"中危","name":"Character classes in regular expressions should not contain only one character","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S6418": {"risk":"中危","name":"Hard-coded secrets are security-sensitive","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
769
+ "typescript:S6426": {"risk":"中危","name":"Exclusive tests should not be committed to version control","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S6435": {"risk":"中危","name":"React \"render\" functions should return a value","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
770
+ "typescript:S6439": {"risk":"中危","name":"React components should not render non-boolean condition values","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S6440": {"risk":"中危","name":"React Hooks should be properly called","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
771
+ "typescript:S6442": {"risk":"中危","name":"React's useState hook should not be used directly in the render function or body of a component","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S6443": {"risk":"中危","name":"React state setter function should not be called with its matching state variable","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
772
+ "typescript:S6509": {"risk":"低危","name":"Extra boolean casts should be removed","engine":"eslint","sources":[0],"sourceRisks":["低危"]}, "typescript:S6522": {"risk":"中危","name":"Import variables should not be reassigned","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
773
+ "typescript:S6523": {"risk":"中危","name":"Optional chaining should not be used if returning \"undefined\" throws an error","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S6534": {"risk":"中危","name":"Numbers should not lose precision","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
774
+ "typescript:S6535": {"risk":"中危","name":"Unnecessary character escapes should be removed","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S6544": {"risk":"中危","name":"Promises should not be misused","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
775
+ "typescript:S6550": {"risk":"中危","name":"All enum members should be literals","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S6551": {"risk":"低危","name":"Objects and classes converted or coerced to strings should define a \"toString()\" method","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
776
+ "typescript:S6557": {"risk":"中危","name":"Ends of strings should be checked with \"startsWith()\" and \"endsWith()\"","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S6564": {"risk":"中危","name":"Redundant type aliases should not be used","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
777
+ "typescript:S6565": {"risk":"低危","name":"Prefer the return type \"this\" in fluent interfaces","engine":"eslint","sources":[0],"sourceRisks":["低危"]}, "typescript:S6568": {"risk":"低危","name":"Non-null assertions should not be used misleadingly","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
778
+ "typescript:S6569": {"risk":"中危","name":"Unnecessary type constraints should be removed","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S6571": {"risk":"低危","name":"Type constituents of unions and intersections should not be redundant","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
779
+ "typescript:S6572": {"risk":"中危","name":"Enum member values should be either all initialized or none","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S6578": {"risk":"中危","name":"Enum values should be unique","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
780
+ "typescript:S6582": {"risk":"中危","name":"Optional chaining should be preferred","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S6583": {"risk":"中危","name":"Enum members should not mix value types","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
781
+ "typescript:S6590": {"risk":"中危","name":"\"as const\" assertions should be preferred","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S6594": {"risk":"低危","name":"\"RegExp.exec()\" should be preferred over \"String.match()\"","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
782
+ "typescript:S6598": {"risk":"低危","name":"Function types should be preferred","engine":"eslint","sources":[0],"sourceRisks":["低危"]}, "typescript:S6606": {"risk":"低危","name":"Nullish coalescing should be preferred","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
783
+ "typescript:S6627": {"risk":"中危","name":"Users should not use internal APIs","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S6635": {"risk":"低危","name":"Constructors should not return values","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
784
+ "typescript:S6637": {"risk":"低危","name":"Unnecessary calls to \".bind()\" should not be used","engine":"eslint","sources":[0],"sourceRisks":["低危"]}, "typescript:S6638": {"risk":"中危","name":"Binary expressions should not always return the same value","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
785
+ "typescript:S6643": {"risk":"高危","name":"Prototypes of builtin objects should not be modified","engine":"eslint","sources":[0],"sourceRisks":["高危"]}, "typescript:S6644": {"risk":"低危","name":"Ternary operator should not be used instead of simpler alternatives","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
786
+ "typescript:S6647": {"risk":"低危","name":"Unnecessary constructors should be removed","engine":"eslint","sources":[0],"sourceRisks":["低危"]}, "typescript:S6650": {"risk":"低危","name":"Renaming import, export, and destructuring assignments should not be to the same name","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
787
+ "typescript:S6653": {"risk":"低危","name":"Use Object.hasOwn static method instead of hasOwnProperty","engine":"eslint","sources":[0],"sourceRisks":["低危"]}, "typescript:S6654": {"risk":"低危","name":"__proto__ property should not be used","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
788
+ "typescript:S6657": {"risk":"中危","name":"Octal escape sequences should not be used","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S6660": {"risk":"中危","name":"If statements should not be the only statement in else blocks","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
789
+ "typescript:S6661": {"risk":"中危","name":"Object spread syntax should be used instead of \"Object.assign\"","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S6666": {"risk":"中危","name":"Spread syntax should be used instead of \"apply()\"","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
790
+ "typescript:S6671": {"risk":"中危","name":"Literals should not be used for promise rejection","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S6676": {"risk":"中危","name":"Calls to \".call()\" and \".apply()\" methods should not be redundant","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
791
+ "typescript:S6679": {"risk":"中危","name":"\"Number.isNaN()\" should be used to check for \"NaN\" value","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S6775": {"risk":"低危","name":"All \"defaultProps\" should have non-required PropTypes","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
792
+ "typescript:S6836": {"risk":"中危","name":"\"case\" and \"default\" clauses should not contain lexical declarations","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S6859": {"risk":"低危","name":"Imports should not use absolute paths","engine":"eslint","sources":[0],"sourceRisks":["低危"]},
793
+ "typescript:S6958": {"risk":"高危","name":"Literals should not be used as functions","engine":"eslint","sources":[0,1],"sourceRisks":["中危","高危"]}, "typescript:S6959": {"risk":"中危","name":"\"Array.reduce()\" calls should include an initial value","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
794
+ "typescript:S7059": {"risk":"高危","name":"Constructors should not contain asynchronous operations","engine":"eslint","sources":[0,1],"sourceRisks":["中危","高危"]}, "typescript:S7060": {"risk":"中危","name":"Module should not import itself","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
795
+ "typescript:S7656": {"risk":"高危","name":"Angular Pipes should implement PipeTransform interface","engine":"eslint","sources":[0,1],"sourceRisks":["中危","高危"]}, "typescript:S878": {"risk":"中危","name":"Comma operator should not be used","engine":"eslint","sources":[0],"sourceRisks":["中危"]},
796
+ "typescript:S881": {"risk":"中危","name":"Increment (++) and decrement (--) operators should not be used in a method call or mixed with other operators in an expression","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S888": {"risk":"高危","name":"Equality operators should not be used in \"for\" loop termination conditions","engine":"eslint","sources":[0,1],"sourceRisks":["中危","高危"]},
797
+ "typescript:S905": {"risk":"中危","name":"Non-empty statements should change control flow or have at least one side-effect","engine":"eslint","sources":[0],"sourceRisks":["中危"]}, "typescript:S909": {"risk":"低危","name":"\"continue\" should not be used","engine":"eslint","sources":[0],"sourceRisks":["低危"]}
798
+ }
799
+ }