tapps-agents 3.5.40__py3-none-any.whl → 3.6.0__py3-none-any.whl
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.
- tapps_agents/__init__.py +2 -2
- tapps_agents/agents/__init__.py +22 -22
- tapps_agents/agents/analyst/__init__.py +5 -5
- tapps_agents/agents/architect/__init__.py +5 -5
- tapps_agents/agents/architect/agent.py +1033 -1033
- tapps_agents/agents/architect/pattern_detector.py +75 -75
- tapps_agents/agents/cleanup/__init__.py +7 -7
- tapps_agents/agents/cleanup/agent.py +445 -445
- tapps_agents/agents/debugger/__init__.py +7 -7
- tapps_agents/agents/debugger/agent.py +310 -310
- tapps_agents/agents/debugger/error_analyzer.py +437 -437
- tapps_agents/agents/designer/__init__.py +5 -5
- tapps_agents/agents/designer/agent.py +786 -786
- tapps_agents/agents/designer/visual_designer.py +638 -638
- tapps_agents/agents/documenter/__init__.py +7 -7
- tapps_agents/agents/documenter/agent.py +531 -531
- tapps_agents/agents/documenter/doc_generator.py +472 -472
- tapps_agents/agents/documenter/doc_validator.py +393 -393
- tapps_agents/agents/documenter/framework_doc_updater.py +493 -493
- tapps_agents/agents/enhancer/__init__.py +7 -7
- tapps_agents/agents/evaluator/__init__.py +7 -7
- tapps_agents/agents/evaluator/agent.py +443 -443
- tapps_agents/agents/evaluator/priority_evaluator.py +641 -641
- tapps_agents/agents/evaluator/quality_analyzer.py +147 -147
- tapps_agents/agents/evaluator/report_generator.py +344 -344
- tapps_agents/agents/evaluator/usage_analyzer.py +192 -192
- tapps_agents/agents/evaluator/workflow_analyzer.py +189 -189
- tapps_agents/agents/implementer/__init__.py +7 -7
- tapps_agents/agents/implementer/agent.py +798 -798
- tapps_agents/agents/implementer/auto_fix.py +1119 -1119
- tapps_agents/agents/implementer/code_generator.py +73 -73
- tapps_agents/agents/improver/__init__.py +1 -1
- tapps_agents/agents/improver/agent.py +753 -753
- tapps_agents/agents/ops/__init__.py +1 -1
- tapps_agents/agents/ops/agent.py +619 -619
- tapps_agents/agents/ops/dependency_analyzer.py +600 -600
- tapps_agents/agents/orchestrator/__init__.py +5 -5
- tapps_agents/agents/orchestrator/agent.py +522 -522
- tapps_agents/agents/planner/__init__.py +7 -7
- tapps_agents/agents/planner/agent.py +1127 -1127
- tapps_agents/agents/reviewer/__init__.py +24 -24
- tapps_agents/agents/reviewer/agent.py +3513 -3513
- tapps_agents/agents/reviewer/aggregator.py +213 -213
- tapps_agents/agents/reviewer/batch_review.py +448 -448
- tapps_agents/agents/reviewer/cache.py +443 -443
- tapps_agents/agents/reviewer/context7_enhancer.py +630 -630
- tapps_agents/agents/reviewer/context_detector.py +203 -203
- tapps_agents/agents/reviewer/docker_compose_validator.py +158 -158
- tapps_agents/agents/reviewer/dockerfile_validator.py +176 -176
- tapps_agents/agents/reviewer/error_handling.py +126 -126
- tapps_agents/agents/reviewer/feedback_generator.py +490 -490
- tapps_agents/agents/reviewer/influxdb_validator.py +316 -316
- tapps_agents/agents/reviewer/issue_tracking.py +169 -169
- tapps_agents/agents/reviewer/library_detector.py +295 -295
- tapps_agents/agents/reviewer/library_patterns.py +268 -268
- tapps_agents/agents/reviewer/maintainability_scorer.py +593 -593
- tapps_agents/agents/reviewer/metric_strategies.py +276 -276
- tapps_agents/agents/reviewer/mqtt_validator.py +160 -160
- tapps_agents/agents/reviewer/output_enhancer.py +105 -105
- tapps_agents/agents/reviewer/pattern_detector.py +241 -241
- tapps_agents/agents/reviewer/performance_scorer.py +357 -357
- tapps_agents/agents/reviewer/phased_review.py +516 -516
- tapps_agents/agents/reviewer/progressive_review.py +435 -435
- tapps_agents/agents/reviewer/react_scorer.py +331 -331
- tapps_agents/agents/reviewer/score_constants.py +228 -228
- tapps_agents/agents/reviewer/score_validator.py +507 -507
- tapps_agents/agents/reviewer/scorer_registry.py +373 -373
- tapps_agents/agents/reviewer/scoring.py +1566 -1566
- tapps_agents/agents/reviewer/service_discovery.py +534 -534
- tapps_agents/agents/reviewer/tools/__init__.py +41 -41
- tapps_agents/agents/reviewer/tools/parallel_executor.py +581 -581
- tapps_agents/agents/reviewer/tools/ruff_grouping.py +250 -250
- tapps_agents/agents/reviewer/tools/scoped_mypy.py +284 -284
- tapps_agents/agents/reviewer/typescript_scorer.py +1142 -1142
- tapps_agents/agents/reviewer/validation.py +208 -208
- tapps_agents/agents/reviewer/websocket_validator.py +132 -132
- tapps_agents/agents/tester/__init__.py +7 -7
- tapps_agents/agents/tester/accessibility_auditor.py +309 -309
- tapps_agents/agents/tester/agent.py +1080 -1080
- tapps_agents/agents/tester/batch_generator.py +54 -54
- tapps_agents/agents/tester/context_learner.py +51 -51
- tapps_agents/agents/tester/coverage_analyzer.py +386 -386
- tapps_agents/agents/tester/coverage_test_generator.py +290 -290
- tapps_agents/agents/tester/debug_enhancer.py +238 -238
- tapps_agents/agents/tester/device_emulator.py +241 -241
- tapps_agents/agents/tester/integration_generator.py +62 -62
- tapps_agents/agents/tester/network_recorder.py +300 -300
- tapps_agents/agents/tester/performance_monitor.py +320 -320
- tapps_agents/agents/tester/test_fixer.py +316 -316
- tapps_agents/agents/tester/test_generator.py +632 -632
- tapps_agents/agents/tester/trace_manager.py +234 -234
- tapps_agents/agents/tester/visual_regression.py +291 -291
- tapps_agents/analysis/pattern_detector.py +36 -36
- tapps_agents/beads/hydration.py +213 -213
- tapps_agents/beads/parse.py +32 -32
- tapps_agents/beads/specs.py +206 -206
- tapps_agents/cli/__init__.py +9 -9
- tapps_agents/cli/__main__.py +8 -8
- tapps_agents/cli/base.py +478 -478
- tapps_agents/cli/command_classifier.py +72 -72
- tapps_agents/cli/commands/__init__.py +2 -2
- tapps_agents/cli/commands/analyst.py +173 -173
- tapps_agents/cli/commands/architect.py +109 -109
- tapps_agents/cli/commands/cleanup_agent.py +92 -92
- tapps_agents/cli/commands/common.py +126 -126
- tapps_agents/cli/commands/debugger.py +90 -90
- tapps_agents/cli/commands/designer.py +112 -112
- tapps_agents/cli/commands/documenter.py +136 -136
- tapps_agents/cli/commands/enhancer.py +110 -110
- tapps_agents/cli/commands/evaluator.py +255 -255
- tapps_agents/cli/commands/health.py +665 -665
- tapps_agents/cli/commands/implementer.py +301 -301
- tapps_agents/cli/commands/improver.py +91 -91
- tapps_agents/cli/commands/knowledge.py +111 -111
- tapps_agents/cli/commands/learning.py +172 -172
- tapps_agents/cli/commands/observability.py +283 -283
- tapps_agents/cli/commands/ops.py +135 -135
- tapps_agents/cli/commands/orchestrator.py +116 -116
- tapps_agents/cli/commands/planner.py +237 -237
- tapps_agents/cli/commands/reviewer.py +1872 -1872
- tapps_agents/cli/commands/status.py +285 -285
- tapps_agents/cli/commands/task.py +227 -219
- tapps_agents/cli/commands/tester.py +191 -191
- tapps_agents/cli/commands/top_level.py +3586 -3586
- tapps_agents/cli/feedback.py +936 -936
- tapps_agents/cli/formatters.py +608 -608
- tapps_agents/cli/help/__init__.py +7 -7
- tapps_agents/cli/help/static_help.py +425 -425
- tapps_agents/cli/network_detection.py +110 -110
- tapps_agents/cli/output_compactor.py +274 -274
- tapps_agents/cli/parsers/__init__.py +2 -2
- tapps_agents/cli/parsers/analyst.py +186 -186
- tapps_agents/cli/parsers/architect.py +167 -167
- tapps_agents/cli/parsers/cleanup_agent.py +228 -228
- tapps_agents/cli/parsers/debugger.py +116 -116
- tapps_agents/cli/parsers/designer.py +182 -182
- tapps_agents/cli/parsers/documenter.py +134 -134
- tapps_agents/cli/parsers/enhancer.py +113 -113
- tapps_agents/cli/parsers/evaluator.py +213 -213
- tapps_agents/cli/parsers/implementer.py +168 -168
- tapps_agents/cli/parsers/improver.py +132 -132
- tapps_agents/cli/parsers/ops.py +159 -159
- tapps_agents/cli/parsers/orchestrator.py +98 -98
- tapps_agents/cli/parsers/planner.py +145 -145
- tapps_agents/cli/parsers/reviewer.py +462 -462
- tapps_agents/cli/parsers/tester.py +124 -124
- tapps_agents/cli/progress_heartbeat.py +254 -254
- tapps_agents/cli/streaming_progress.py +336 -336
- tapps_agents/cli/utils/__init__.py +6 -6
- tapps_agents/cli/utils/agent_lifecycle.py +48 -48
- tapps_agents/cli/utils/error_formatter.py +82 -82
- tapps_agents/cli/utils/error_recovery.py +188 -188
- tapps_agents/cli/utils/output_handler.py +59 -59
- tapps_agents/cli/utils/prompt_enhancer.py +319 -319
- tapps_agents/cli/validators/__init__.py +9 -9
- tapps_agents/cli/validators/command_validator.py +81 -81
- tapps_agents/context7/__init__.py +112 -112
- tapps_agents/context7/agent_integration.py +869 -869
- tapps_agents/context7/analytics.py +382 -382
- tapps_agents/context7/analytics_dashboard.py +299 -299
- tapps_agents/context7/async_cache.py +681 -681
- tapps_agents/context7/backup_client.py +958 -958
- tapps_agents/context7/cache_locking.py +194 -194
- tapps_agents/context7/cache_metadata.py +214 -214
- tapps_agents/context7/cache_prewarm.py +488 -488
- tapps_agents/context7/cache_structure.py +168 -168
- tapps_agents/context7/cache_warming.py +604 -604
- tapps_agents/context7/circuit_breaker.py +376 -376
- tapps_agents/context7/cleanup.py +461 -461
- tapps_agents/context7/commands.py +858 -858
- tapps_agents/context7/credential_validation.py +276 -276
- tapps_agents/context7/cross_reference_resolver.py +168 -168
- tapps_agents/context7/cross_references.py +424 -424
- tapps_agents/context7/doc_manager.py +225 -225
- tapps_agents/context7/fuzzy_matcher.py +369 -369
- tapps_agents/context7/kb_cache.py +404 -404
- tapps_agents/context7/language_detector.py +219 -219
- tapps_agents/context7/library_detector.py +725 -725
- tapps_agents/context7/lookup.py +738 -738
- tapps_agents/context7/metadata.py +258 -258
- tapps_agents/context7/refresh_queue.py +300 -300
- tapps_agents/context7/security.py +373 -373
- tapps_agents/context7/staleness_policies.py +278 -278
- tapps_agents/context7/tiles_integration.py +47 -47
- tapps_agents/continuous_bug_fix/__init__.py +20 -20
- tapps_agents/continuous_bug_fix/bug_finder.py +306 -306
- tapps_agents/continuous_bug_fix/bug_fix_coordinator.py +177 -177
- tapps_agents/continuous_bug_fix/commit_manager.py +178 -178
- tapps_agents/continuous_bug_fix/continuous_bug_fixer.py +322 -322
- tapps_agents/continuous_bug_fix/proactive_bug_finder.py +285 -285
- tapps_agents/core/__init__.py +298 -298
- tapps_agents/core/adaptive_cache_config.py +432 -432
- tapps_agents/core/agent_base.py +647 -647
- tapps_agents/core/agent_cache.py +466 -466
- tapps_agents/core/agent_learning.py +1865 -1865
- tapps_agents/core/analytics_dashboard.py +563 -563
- tapps_agents/core/analytics_enhancements.py +597 -597
- tapps_agents/core/anonymization.py +274 -274
- tapps_agents/core/artifact_context_builder.py +293 -0
- tapps_agents/core/ast_parser.py +228 -228
- tapps_agents/core/async_file_ops.py +402 -402
- tapps_agents/core/best_practice_consultant.py +299 -299
- tapps_agents/core/brownfield_analyzer.py +299 -299
- tapps_agents/core/brownfield_review.py +541 -541
- tapps_agents/core/browser_controller.py +513 -513
- tapps_agents/core/capability_registry.py +418 -418
- tapps_agents/core/change_impact_analyzer.py +190 -190
- tapps_agents/core/checkpoint_manager.py +377 -377
- tapps_agents/core/code_generator.py +329 -329
- tapps_agents/core/code_validator.py +276 -276
- tapps_agents/core/command_registry.py +327 -327
- tapps_agents/core/config.py +33 -0
- tapps_agents/core/context_gathering/__init__.py +2 -2
- tapps_agents/core/context_gathering/repository_explorer.py +28 -28
- tapps_agents/core/context_intelligence/__init__.py +2 -2
- tapps_agents/core/context_intelligence/relevance_scorer.py +24 -24
- tapps_agents/core/context_intelligence/token_budget_manager.py +27 -27
- tapps_agents/core/context_manager.py +240 -240
- tapps_agents/core/cursor_feedback_monitor.py +146 -146
- tapps_agents/core/cursor_verification.py +290 -290
- tapps_agents/core/customization_loader.py +280 -280
- tapps_agents/core/customization_schema.py +260 -260
- tapps_agents/core/customization_template.py +238 -238
- tapps_agents/core/debug_logger.py +124 -124
- tapps_agents/core/design_validator.py +298 -298
- tapps_agents/core/diagram_generator.py +226 -226
- tapps_agents/core/docker_utils.py +232 -232
- tapps_agents/core/document_generator.py +617 -617
- tapps_agents/core/domain_detector.py +30 -30
- tapps_agents/core/error_envelope.py +454 -454
- tapps_agents/core/error_handler.py +270 -270
- tapps_agents/core/estimation_tracker.py +189 -189
- tapps_agents/core/eval_prompt_engine.py +116 -116
- tapps_agents/core/evaluation_base.py +119 -119
- tapps_agents/core/evaluation_models.py +320 -320
- tapps_agents/core/evaluation_orchestrator.py +225 -225
- tapps_agents/core/evaluators/__init__.py +7 -7
- tapps_agents/core/evaluators/architectural_evaluator.py +205 -205
- tapps_agents/core/evaluators/behavioral_evaluator.py +160 -160
- tapps_agents/core/evaluators/performance_profile_evaluator.py +160 -160
- tapps_agents/core/evaluators/security_posture_evaluator.py +148 -148
- tapps_agents/core/evaluators/spec_compliance_evaluator.py +181 -181
- tapps_agents/core/exceptions.py +107 -107
- tapps_agents/core/expert_config_generator.py +293 -293
- tapps_agents/core/export_schema.py +202 -202
- tapps_agents/core/external_feedback_models.py +102 -102
- tapps_agents/core/external_feedback_storage.py +213 -213
- tapps_agents/core/fallback_strategy.py +314 -314
- tapps_agents/core/feedback_analyzer.py +162 -162
- tapps_agents/core/feedback_collector.py +178 -178
- tapps_agents/core/git_operations.py +445 -445
- tapps_agents/core/hardware_profiler.py +151 -151
- tapps_agents/core/instructions.py +324 -324
- tapps_agents/core/io_guardrails.py +69 -69
- tapps_agents/core/issue_manifest.py +249 -249
- tapps_agents/core/issue_schema.py +139 -139
- tapps_agents/core/json_utils.py +128 -128
- tapps_agents/core/knowledge_graph.py +446 -446
- tapps_agents/core/language_detector.py +296 -296
- tapps_agents/core/learning_confidence.py +242 -242
- tapps_agents/core/learning_dashboard.py +246 -246
- tapps_agents/core/learning_decision.py +384 -384
- tapps_agents/core/learning_explainability.py +578 -578
- tapps_agents/core/learning_export.py +287 -287
- tapps_agents/core/learning_integration.py +228 -228
- tapps_agents/core/llm_behavior.py +232 -232
- tapps_agents/core/long_duration_support.py +786 -786
- tapps_agents/core/mcp_setup.py +106 -106
- tapps_agents/core/memory_integration.py +396 -396
- tapps_agents/core/meta_learning.py +666 -666
- tapps_agents/core/module_path_sanitizer.py +199 -199
- tapps_agents/core/multi_agent_orchestrator.py +382 -382
- tapps_agents/core/network_errors.py +125 -125
- tapps_agents/core/nfr_validator.py +336 -336
- tapps_agents/core/offline_mode.py +158 -158
- tapps_agents/core/output_contracts.py +300 -300
- tapps_agents/core/output_formatter.py +300 -300
- tapps_agents/core/path_normalizer.py +174 -174
- tapps_agents/core/path_validator.py +322 -322
- tapps_agents/core/pattern_library.py +250 -250
- tapps_agents/core/performance_benchmark.py +301 -301
- tapps_agents/core/performance_monitor.py +184 -184
- tapps_agents/core/playwright_mcp_controller.py +771 -771
- tapps_agents/core/policy_loader.py +135 -135
- tapps_agents/core/progress.py +166 -166
- tapps_agents/core/project_profile.py +354 -354
- tapps_agents/core/project_type_detector.py +454 -454
- tapps_agents/core/prompt_base.py +223 -223
- tapps_agents/core/prompt_learning/__init__.py +2 -2
- tapps_agents/core/prompt_learning/learning_loop.py +24 -24
- tapps_agents/core/prompt_learning/project_prompt_store.py +25 -25
- tapps_agents/core/prompt_learning/skills_prompt_analyzer.py +35 -35
- tapps_agents/core/prompt_optimization/__init__.py +6 -6
- tapps_agents/core/prompt_optimization/ab_tester.py +114 -114
- tapps_agents/core/prompt_optimization/correlation_analyzer.py +160 -160
- tapps_agents/core/prompt_optimization/progressive_refiner.py +129 -129
- tapps_agents/core/prompt_optimization/prompt_library.py +37 -37
- tapps_agents/core/requirements_evaluator.py +431 -431
- tapps_agents/core/resource_aware_executor.py +449 -449
- tapps_agents/core/resource_monitor.py +343 -343
- tapps_agents/core/resume_handler.py +298 -298
- tapps_agents/core/retry_handler.py +197 -197
- tapps_agents/core/review_checklists.py +479 -479
- tapps_agents/core/role_loader.py +201 -201
- tapps_agents/core/role_template_loader.py +201 -201
- tapps_agents/core/runtime_mode.py +60 -60
- tapps_agents/core/security_scanner.py +342 -342
- tapps_agents/core/skill_agent_registry.py +194 -194
- tapps_agents/core/skill_integration.py +208 -208
- tapps_agents/core/skill_loader.py +492 -492
- tapps_agents/core/skill_template.py +341 -341
- tapps_agents/core/skill_validator.py +478 -478
- tapps_agents/core/stack_analyzer.py +35 -35
- tapps_agents/core/startup.py +174 -174
- tapps_agents/core/storage_manager.py +397 -397
- tapps_agents/core/storage_models.py +166 -166
- tapps_agents/core/story_evaluator.py +410 -410
- tapps_agents/core/subprocess_utils.py +170 -170
- tapps_agents/core/task_duration.py +296 -296
- tapps_agents/core/task_memory.py +582 -582
- tapps_agents/core/task_state.py +226 -226
- tapps_agents/core/tech_stack_priorities.py +208 -208
- tapps_agents/core/temp_directory.py +194 -194
- tapps_agents/core/template_merger.py +600 -600
- tapps_agents/core/template_selector.py +280 -280
- tapps_agents/core/test_generator.py +286 -286
- tapps_agents/core/tiered_context.py +253 -253
- tapps_agents/core/token_monitor.py +345 -345
- tapps_agents/core/traceability.py +254 -254
- tapps_agents/core/trajectory_tracker.py +50 -50
- tapps_agents/core/unicode_safe.py +143 -143
- tapps_agents/core/unified_cache_config.py +170 -170
- tapps_agents/core/unified_state.py +324 -324
- tapps_agents/core/validate_cursor_setup.py +237 -237
- tapps_agents/core/validation_registry.py +136 -136
- tapps_agents/core/validators/__init__.py +4 -4
- tapps_agents/core/validators/python_validator.py +87 -87
- tapps_agents/core/verification_agent.py +90 -90
- tapps_agents/core/visual_feedback.py +644 -644
- tapps_agents/core/workflow_validator.py +197 -197
- tapps_agents/core/worktree.py +367 -367
- tapps_agents/docker/__init__.py +10 -10
- tapps_agents/docker/analyzer.py +186 -186
- tapps_agents/docker/debugger.py +229 -229
- tapps_agents/docker/error_patterns.py +216 -216
- tapps_agents/epic/__init__.py +22 -22
- tapps_agents/epic/beads_sync.py +115 -115
- tapps_agents/epic/markdown_sync.py +105 -105
- tapps_agents/epic/models.py +96 -96
- tapps_agents/experts/__init__.py +163 -163
- tapps_agents/experts/agent_integration.py +243 -243
- tapps_agents/experts/auto_generator.py +331 -331
- tapps_agents/experts/base_expert.py +536 -536
- tapps_agents/experts/builtin_registry.py +261 -261
- tapps_agents/experts/business_metrics.py +565 -565
- tapps_agents/experts/cache.py +266 -266
- tapps_agents/experts/confidence_breakdown.py +306 -306
- tapps_agents/experts/confidence_calculator.py +336 -336
- tapps_agents/experts/confidence_metrics.py +236 -236
- tapps_agents/experts/domain_config.py +311 -311
- tapps_agents/experts/domain_detector.py +550 -550
- tapps_agents/experts/domain_utils.py +84 -84
- tapps_agents/experts/expert_config.py +113 -113
- tapps_agents/experts/expert_engine.py +465 -465
- tapps_agents/experts/expert_registry.py +744 -744
- tapps_agents/experts/expert_synthesizer.py +70 -70
- tapps_agents/experts/governance.py +197 -197
- tapps_agents/experts/history_logger.py +312 -312
- tapps_agents/experts/knowledge/README.md +180 -180
- tapps_agents/experts/knowledge/accessibility/accessible-forms.md +331 -331
- tapps_agents/experts/knowledge/accessibility/aria-patterns.md +344 -344
- tapps_agents/experts/knowledge/accessibility/color-contrast.md +285 -285
- tapps_agents/experts/knowledge/accessibility/keyboard-navigation.md +332 -332
- tapps_agents/experts/knowledge/accessibility/screen-readers.md +282 -282
- tapps_agents/experts/knowledge/accessibility/semantic-html.md +355 -355
- tapps_agents/experts/knowledge/accessibility/testing-accessibility.md +369 -369
- tapps_agents/experts/knowledge/accessibility/wcag-2.1.md +296 -296
- tapps_agents/experts/knowledge/accessibility/wcag-2.2.md +211 -211
- tapps_agents/experts/knowledge/agent-learning/best-practices.md +715 -715
- tapps_agents/experts/knowledge/agent-learning/pattern-extraction.md +282 -282
- tapps_agents/experts/knowledge/agent-learning/prompt-optimization.md +320 -320
- tapps_agents/experts/knowledge/ai-frameworks/model-optimization.md +90 -90
- tapps_agents/experts/knowledge/ai-frameworks/openvino-patterns.md +260 -260
- tapps_agents/experts/knowledge/api-design-integration/api-gateway-patterns.md +309 -309
- tapps_agents/experts/knowledge/api-design-integration/api-security-patterns.md +521 -521
- tapps_agents/experts/knowledge/api-design-integration/api-versioning.md +421 -421
- tapps_agents/experts/knowledge/api-design-integration/async-protocol-patterns.md +61 -61
- tapps_agents/experts/knowledge/api-design-integration/contract-testing.md +221 -221
- tapps_agents/experts/knowledge/api-design-integration/external-api-integration.md +489 -489
- tapps_agents/experts/knowledge/api-design-integration/fastapi-patterns.md +360 -360
- tapps_agents/experts/knowledge/api-design-integration/fastapi-testing.md +262 -262
- tapps_agents/experts/knowledge/api-design-integration/graphql-patterns.md +582 -582
- tapps_agents/experts/knowledge/api-design-integration/grpc-best-practices.md +499 -499
- tapps_agents/experts/knowledge/api-design-integration/mqtt-patterns.md +455 -455
- tapps_agents/experts/knowledge/api-design-integration/rate-limiting.md +507 -507
- tapps_agents/experts/knowledge/api-design-integration/restful-api-design.md +618 -618
- tapps_agents/experts/knowledge/api-design-integration/websocket-patterns.md +480 -480
- tapps_agents/experts/knowledge/cloud-infrastructure/cloud-native-patterns.md +175 -175
- tapps_agents/experts/knowledge/cloud-infrastructure/container-health-checks.md +261 -261
- tapps_agents/experts/knowledge/cloud-infrastructure/containerization.md +222 -222
- tapps_agents/experts/knowledge/cloud-infrastructure/cost-optimization.md +122 -122
- tapps_agents/experts/knowledge/cloud-infrastructure/disaster-recovery.md +153 -153
- tapps_agents/experts/knowledge/cloud-infrastructure/dockerfile-patterns.md +285 -285
- tapps_agents/experts/knowledge/cloud-infrastructure/infrastructure-as-code.md +187 -187
- tapps_agents/experts/knowledge/cloud-infrastructure/kubernetes-patterns.md +253 -253
- tapps_agents/experts/knowledge/cloud-infrastructure/multi-cloud-strategies.md +155 -155
- tapps_agents/experts/knowledge/cloud-infrastructure/serverless-architecture.md +200 -200
- tapps_agents/experts/knowledge/code-quality-analysis/README.md +16 -16
- tapps_agents/experts/knowledge/code-quality-analysis/code-metrics.md +137 -137
- tapps_agents/experts/knowledge/code-quality-analysis/complexity-analysis.md +181 -181
- tapps_agents/experts/knowledge/code-quality-analysis/technical-debt-patterns.md +191 -191
- tapps_agents/experts/knowledge/data-privacy-compliance/anonymization.md +313 -313
- tapps_agents/experts/knowledge/data-privacy-compliance/ccpa.md +255 -255
- tapps_agents/experts/knowledge/data-privacy-compliance/consent-management.md +282 -282
- tapps_agents/experts/knowledge/data-privacy-compliance/data-minimization.md +275 -275
- tapps_agents/experts/knowledge/data-privacy-compliance/data-retention.md +297 -297
- tapps_agents/experts/knowledge/data-privacy-compliance/data-subject-rights.md +383 -383
- tapps_agents/experts/knowledge/data-privacy-compliance/encryption-privacy.md +285 -285
- tapps_agents/experts/knowledge/data-privacy-compliance/gdpr.md +344 -344
- tapps_agents/experts/knowledge/data-privacy-compliance/hipaa.md +385 -385
- tapps_agents/experts/knowledge/data-privacy-compliance/privacy-by-design.md +280 -280
- tapps_agents/experts/knowledge/database-data-management/acid-vs-cap.md +164 -164
- tapps_agents/experts/knowledge/database-data-management/backup-and-recovery.md +182 -182
- tapps_agents/experts/knowledge/database-data-management/data-modeling.md +172 -172
- tapps_agents/experts/knowledge/database-data-management/database-design.md +187 -187
- tapps_agents/experts/knowledge/database-data-management/flux-query-optimization.md +342 -342
- tapps_agents/experts/knowledge/database-data-management/influxdb-connection-patterns.md +432 -432
- tapps_agents/experts/knowledge/database-data-management/influxdb-patterns.md +442 -442
- tapps_agents/experts/knowledge/database-data-management/migration-strategies.md +216 -216
- tapps_agents/experts/knowledge/database-data-management/nosql-patterns.md +259 -259
- tapps_agents/experts/knowledge/database-data-management/scalability-patterns.md +184 -184
- tapps_agents/experts/knowledge/database-data-management/sql-optimization.md +175 -175
- tapps_agents/experts/knowledge/database-data-management/time-series-modeling.md +444 -444
- tapps_agents/experts/knowledge/development-workflow/README.md +16 -16
- tapps_agents/experts/knowledge/development-workflow/automation-best-practices.md +216 -216
- tapps_agents/experts/knowledge/development-workflow/build-strategies.md +198 -198
- tapps_agents/experts/knowledge/development-workflow/deployment-patterns.md +205 -205
- tapps_agents/experts/knowledge/development-workflow/git-workflows.md +205 -205
- tapps_agents/experts/knowledge/documentation-knowledge-management/README.md +16 -16
- tapps_agents/experts/knowledge/documentation-knowledge-management/api-documentation-patterns.md +231 -231
- tapps_agents/experts/knowledge/documentation-knowledge-management/documentation-standards.md +191 -191
- tapps_agents/experts/knowledge/documentation-knowledge-management/knowledge-management.md +171 -171
- tapps_agents/experts/knowledge/documentation-knowledge-management/technical-writing-guide.md +192 -192
- tapps_agents/experts/knowledge/observability-monitoring/alerting-patterns.md +461 -461
- tapps_agents/experts/knowledge/observability-monitoring/apm-tools.md +459 -459
- tapps_agents/experts/knowledge/observability-monitoring/distributed-tracing.md +367 -367
- tapps_agents/experts/knowledge/observability-monitoring/logging-strategies.md +478 -478
- tapps_agents/experts/knowledge/observability-monitoring/metrics-and-monitoring.md +510 -510
- tapps_agents/experts/knowledge/observability-monitoring/observability-best-practices.md +492 -492
- tapps_agents/experts/knowledge/observability-monitoring/open-telemetry.md +573 -573
- tapps_agents/experts/knowledge/observability-monitoring/slo-sli-sla.md +419 -419
- tapps_agents/experts/knowledge/performance/anti-patterns.md +284 -284
- tapps_agents/experts/knowledge/performance/api-performance.md +256 -256
- tapps_agents/experts/knowledge/performance/caching.md +327 -327
- tapps_agents/experts/knowledge/performance/database-performance.md +252 -252
- tapps_agents/experts/knowledge/performance/optimization-patterns.md +327 -327
- tapps_agents/experts/knowledge/performance/profiling.md +297 -297
- tapps_agents/experts/knowledge/performance/resource-management.md +293 -293
- tapps_agents/experts/knowledge/performance/scalability.md +306 -306
- tapps_agents/experts/knowledge/security/owasp-top10.md +209 -209
- tapps_agents/experts/knowledge/security/secure-coding-practices.md +207 -207
- tapps_agents/experts/knowledge/security/threat-modeling.md +220 -220
- tapps_agents/experts/knowledge/security/vulnerability-patterns.md +342 -342
- tapps_agents/experts/knowledge/software-architecture/docker-compose-patterns.md +314 -314
- tapps_agents/experts/knowledge/software-architecture/microservices-patterns.md +379 -379
- tapps_agents/experts/knowledge/software-architecture/service-communication.md +316 -316
- tapps_agents/experts/knowledge/testing/best-practices.md +310 -310
- tapps_agents/experts/knowledge/testing/coverage-analysis.md +293 -293
- tapps_agents/experts/knowledge/testing/mocking.md +256 -256
- tapps_agents/experts/knowledge/testing/test-automation.md +276 -276
- tapps_agents/experts/knowledge/testing/test-data.md +271 -271
- tapps_agents/experts/knowledge/testing/test-design-patterns.md +280 -280
- tapps_agents/experts/knowledge/testing/test-maintenance.md +236 -236
- tapps_agents/experts/knowledge/testing/test-strategies.md +311 -311
- tapps_agents/experts/knowledge/user-experience/information-architecture.md +325 -325
- tapps_agents/experts/knowledge/user-experience/interaction-design.md +363 -363
- tapps_agents/experts/knowledge/user-experience/prototyping.md +293 -293
- tapps_agents/experts/knowledge/user-experience/usability-heuristics.md +337 -337
- tapps_agents/experts/knowledge/user-experience/usability-testing.md +311 -311
- tapps_agents/experts/knowledge/user-experience/user-journeys.md +296 -296
- tapps_agents/experts/knowledge/user-experience/user-research.md +373 -373
- tapps_agents/experts/knowledge/user-experience/ux-principles.md +340 -340
- tapps_agents/experts/knowledge_freshness.py +321 -321
- tapps_agents/experts/knowledge_ingestion.py +438 -438
- tapps_agents/experts/knowledge_need_detector.py +93 -93
- tapps_agents/experts/knowledge_validator.py +382 -382
- tapps_agents/experts/observability.py +440 -440
- tapps_agents/experts/passive_notifier.py +238 -238
- tapps_agents/experts/proactive_orchestrator.py +32 -32
- tapps_agents/experts/rag_chunker.py +205 -205
- tapps_agents/experts/rag_embedder.py +152 -152
- tapps_agents/experts/rag_evaluation.py +299 -299
- tapps_agents/experts/rag_index.py +303 -303
- tapps_agents/experts/rag_metrics.py +293 -293
- tapps_agents/experts/rag_safety.py +263 -263
- tapps_agents/experts/report_generator.py +296 -296
- tapps_agents/experts/setup_wizard.py +441 -441
- tapps_agents/experts/simple_rag.py +431 -431
- tapps_agents/experts/vector_rag.py +354 -354
- tapps_agents/experts/weight_distributor.py +304 -304
- tapps_agents/health/__init__.py +24 -24
- tapps_agents/health/base.py +75 -75
- tapps_agents/health/checks/__init__.py +22 -22
- tapps_agents/health/checks/automation.py +127 -127
- tapps_agents/health/checks/context7_cache.py +210 -210
- tapps_agents/health/checks/environment.py +116 -116
- tapps_agents/health/checks/execution.py +170 -170
- tapps_agents/health/checks/knowledge_base.py +187 -187
- tapps_agents/health/checks/outcomes.py +324 -324
- tapps_agents/health/collector.py +280 -280
- tapps_agents/health/dashboard.py +137 -137
- tapps_agents/health/metrics.py +151 -151
- tapps_agents/health/orchestrator.py +271 -271
- tapps_agents/health/registry.py +166 -166
- tapps_agents/hooks/__init__.py +33 -33
- tapps_agents/hooks/config.py +140 -140
- tapps_agents/hooks/events.py +135 -135
- tapps_agents/hooks/executor.py +128 -128
- tapps_agents/hooks/manager.py +143 -143
- tapps_agents/integration/__init__.py +8 -8
- tapps_agents/integration/service_integrator.py +121 -121
- tapps_agents/integrations/__init__.py +10 -10
- tapps_agents/integrations/clawdbot.py +525 -525
- tapps_agents/integrations/memory_bridge.py +356 -356
- tapps_agents/mcp/__init__.py +18 -18
- tapps_agents/mcp/gateway.py +112 -112
- tapps_agents/mcp/servers/__init__.py +13 -13
- tapps_agents/mcp/servers/analysis.py +204 -204
- tapps_agents/mcp/servers/context7.py +198 -198
- tapps_agents/mcp/servers/filesystem.py +218 -218
- tapps_agents/mcp/servers/git.py +201 -201
- tapps_agents/mcp/tool_registry.py +115 -115
- tapps_agents/quality/__init__.py +54 -54
- tapps_agents/quality/coverage_analyzer.py +379 -379
- tapps_agents/quality/enforcement.py +82 -82
- tapps_agents/quality/gates/__init__.py +37 -37
- tapps_agents/quality/gates/approval_gate.py +255 -255
- tapps_agents/quality/gates/base.py +84 -84
- tapps_agents/quality/gates/exceptions.py +43 -43
- tapps_agents/quality/gates/policy_gate.py +195 -195
- tapps_agents/quality/gates/registry.py +239 -239
- tapps_agents/quality/gates/security_gate.py +156 -156
- tapps_agents/quality/quality_gates.py +369 -369
- tapps_agents/quality/secret_scanner.py +335 -335
- tapps_agents/session/__init__.py +19 -19
- tapps_agents/session/manager.py +256 -256
- tapps_agents/simple_mode/__init__.py +66 -66
- tapps_agents/simple_mode/agent_contracts.py +357 -357
- tapps_agents/simple_mode/beads_hooks.py +151 -151
- tapps_agents/simple_mode/code_snippet_handler.py +382 -382
- tapps_agents/simple_mode/documentation_manager.py +395 -395
- tapps_agents/simple_mode/documentation_reader.py +187 -187
- tapps_agents/simple_mode/file_inference.py +292 -292
- tapps_agents/simple_mode/framework_change_detector.py +268 -268
- tapps_agents/simple_mode/intent_parser.py +510 -510
- tapps_agents/simple_mode/learning_progression.py +358 -358
- tapps_agents/simple_mode/nl_handler.py +700 -700
- tapps_agents/simple_mode/onboarding.py +253 -253
- tapps_agents/simple_mode/orchestrators/__init__.py +38 -38
- tapps_agents/simple_mode/orchestrators/base.py +185 -185
- tapps_agents/simple_mode/orchestrators/breakdown_orchestrator.py +49 -49
- tapps_agents/simple_mode/orchestrators/brownfield_orchestrator.py +135 -135
- tapps_agents/simple_mode/orchestrators/build_orchestrator.py +2700 -2667
- tapps_agents/simple_mode/orchestrators/deliverable_checklist.py +349 -349
- tapps_agents/simple_mode/orchestrators/enhance_orchestrator.py +53 -53
- tapps_agents/simple_mode/orchestrators/epic_orchestrator.py +122 -122
- tapps_agents/simple_mode/orchestrators/explore_orchestrator.py +184 -184
- tapps_agents/simple_mode/orchestrators/fix_orchestrator.py +723 -723
- tapps_agents/simple_mode/orchestrators/plan_analysis_orchestrator.py +206 -206
- tapps_agents/simple_mode/orchestrators/pr_orchestrator.py +237 -237
- tapps_agents/simple_mode/orchestrators/refactor_orchestrator.py +222 -222
- tapps_agents/simple_mode/orchestrators/requirements_tracer.py +262 -262
- tapps_agents/simple_mode/orchestrators/resume_orchestrator.py +210 -210
- tapps_agents/simple_mode/orchestrators/review_orchestrator.py +161 -161
- tapps_agents/simple_mode/orchestrators/test_orchestrator.py +82 -82
- tapps_agents/simple_mode/output_aggregator.py +340 -340
- tapps_agents/simple_mode/result_formatters.py +598 -598
- tapps_agents/simple_mode/step_dependencies.py +382 -382
- tapps_agents/simple_mode/step_results.py +276 -276
- tapps_agents/simple_mode/streaming.py +388 -388
- tapps_agents/simple_mode/variations.py +129 -129
- tapps_agents/simple_mode/visual_feedback.py +238 -238
- tapps_agents/simple_mode/zero_config.py +274 -274
- tapps_agents/suggestions/__init__.py +8 -8
- tapps_agents/suggestions/inline_suggester.py +52 -52
- tapps_agents/templates/__init__.py +8 -8
- tapps_agents/templates/microservice_generator.py +274 -274
- tapps_agents/utils/env_validator.py +291 -291
- tapps_agents/workflow/__init__.py +171 -171
- tapps_agents/workflow/acceptance_verifier.py +132 -132
- tapps_agents/workflow/agent_handlers/__init__.py +41 -41
- tapps_agents/workflow/agent_handlers/analyst_handler.py +75 -75
- tapps_agents/workflow/agent_handlers/architect_handler.py +107 -107
- tapps_agents/workflow/agent_handlers/base.py +84 -84
- tapps_agents/workflow/agent_handlers/debugger_handler.py +100 -100
- tapps_agents/workflow/agent_handlers/designer_handler.py +110 -110
- tapps_agents/workflow/agent_handlers/documenter_handler.py +94 -94
- tapps_agents/workflow/agent_handlers/implementer_handler.py +235 -235
- tapps_agents/workflow/agent_handlers/ops_handler.py +62 -62
- tapps_agents/workflow/agent_handlers/orchestrator_handler.py +43 -43
- tapps_agents/workflow/agent_handlers/planner_handler.py +98 -98
- tapps_agents/workflow/agent_handlers/registry.py +119 -119
- tapps_agents/workflow/agent_handlers/reviewer_handler.py +119 -119
- tapps_agents/workflow/agent_handlers/tester_handler.py +69 -69
- tapps_agents/workflow/analytics_accessor.py +337 -337
- tapps_agents/workflow/analytics_alerts.py +416 -416
- tapps_agents/workflow/analytics_dashboard_cursor.py +281 -281
- tapps_agents/workflow/analytics_dual_write.py +103 -103
- tapps_agents/workflow/analytics_integration.py +119 -119
- tapps_agents/workflow/analytics_query_parser.py +278 -278
- tapps_agents/workflow/analytics_visualizer.py +259 -259
- tapps_agents/workflow/artifact_helper.py +204 -204
- tapps_agents/workflow/audit_logger.py +263 -263
- tapps_agents/workflow/auto_execution_config.py +340 -340
- tapps_agents/workflow/auto_progression.py +586 -586
- tapps_agents/workflow/branch_cleanup.py +349 -349
- tapps_agents/workflow/checkpoint.py +256 -256
- tapps_agents/workflow/checkpoint_manager.py +178 -178
- tapps_agents/workflow/code_artifact.py +179 -179
- tapps_agents/workflow/common_enums.py +96 -96
- tapps_agents/workflow/confirmation_handler.py +130 -130
- tapps_agents/workflow/context_analyzer.py +222 -222
- tapps_agents/workflow/context_artifact.py +230 -230
- tapps_agents/workflow/cursor_chat.py +94 -94
- tapps_agents/workflow/cursor_executor.py +2337 -2196
- tapps_agents/workflow/cursor_skill_helper.py +516 -516
- tapps_agents/workflow/dependency_resolver.py +244 -244
- tapps_agents/workflow/design_artifact.py +156 -156
- tapps_agents/workflow/detector.py +751 -751
- tapps_agents/workflow/direct_execution_fallback.py +301 -301
- tapps_agents/workflow/docs_artifact.py +168 -168
- tapps_agents/workflow/enforcer.py +389 -389
- tapps_agents/workflow/enhancement_artifact.py +142 -142
- tapps_agents/workflow/error_recovery.py +806 -806
- tapps_agents/workflow/event_bus.py +183 -183
- tapps_agents/workflow/event_log.py +612 -612
- tapps_agents/workflow/events.py +63 -63
- tapps_agents/workflow/exceptions.py +43 -43
- tapps_agents/workflow/execution_graph.py +498 -498
- tapps_agents/workflow/execution_plan.py +126 -126
- tapps_agents/workflow/file_utils.py +186 -186
- tapps_agents/workflow/gate_evaluator.py +182 -182
- tapps_agents/workflow/gate_integration.py +200 -200
- tapps_agents/workflow/graph_visualizer.py +130 -130
- tapps_agents/workflow/health_checker.py +206 -206
- tapps_agents/workflow/logging_helper.py +243 -243
- tapps_agents/workflow/manifest.py +582 -582
- tapps_agents/workflow/marker_writer.py +250 -250
- tapps_agents/workflow/message_formatter.py +188 -188
- tapps_agents/workflow/messaging.py +325 -325
- tapps_agents/workflow/metadata_models.py +91 -91
- tapps_agents/workflow/metrics_integration.py +226 -226
- tapps_agents/workflow/migration_utils.py +116 -116
- tapps_agents/workflow/models.py +148 -111
- tapps_agents/workflow/nlp_config.py +198 -198
- tapps_agents/workflow/nlp_error_handler.py +207 -207
- tapps_agents/workflow/nlp_executor.py +163 -163
- tapps_agents/workflow/nlp_parser.py +528 -528
- tapps_agents/workflow/observability_dashboard.py +451 -451
- tapps_agents/workflow/observer.py +170 -170
- tapps_agents/workflow/ops_artifact.py +257 -257
- tapps_agents/workflow/output_passing.py +214 -214
- tapps_agents/workflow/parallel_executor.py +463 -463
- tapps_agents/workflow/planning_artifact.py +179 -179
- tapps_agents/workflow/preset_loader.py +285 -285
- tapps_agents/workflow/preset_recommender.py +270 -270
- tapps_agents/workflow/progress_logger.py +145 -145
- tapps_agents/workflow/progress_manager.py +303 -303
- tapps_agents/workflow/progress_monitor.py +186 -186
- tapps_agents/workflow/progress_updates.py +423 -423
- tapps_agents/workflow/quality_artifact.py +158 -158
- tapps_agents/workflow/quality_loopback.py +101 -101
- tapps_agents/workflow/recommender.py +387 -387
- tapps_agents/workflow/remediation_loop.py +166 -166
- tapps_agents/workflow/result_aggregator.py +300 -300
- tapps_agents/workflow/review_artifact.py +185 -185
- tapps_agents/workflow/schema_validator.py +522 -522
- tapps_agents/workflow/session_handoff.py +178 -178
- tapps_agents/workflow/skill_invoker.py +648 -648
- tapps_agents/workflow/state_manager.py +756 -756
- tapps_agents/workflow/state_persistence_config.py +331 -331
- tapps_agents/workflow/status_monitor.py +449 -449
- tapps_agents/workflow/step_checkpoint.py +314 -314
- tapps_agents/workflow/step_details.py +201 -201
- tapps_agents/workflow/story_models.py +147 -147
- tapps_agents/workflow/streaming.py +416 -416
- tapps_agents/workflow/suggestion_engine.py +552 -552
- tapps_agents/workflow/testing_artifact.py +186 -186
- tapps_agents/workflow/timeline.py +158 -158
- tapps_agents/workflow/token_integration.py +209 -209
- tapps_agents/workflow/validation.py +217 -217
- tapps_agents/workflow/visual_feedback.py +391 -391
- tapps_agents/workflow/workflow_chain.py +95 -95
- tapps_agents/workflow/workflow_summary.py +219 -219
- tapps_agents/workflow/worktree_manager.py +724 -724
- {tapps_agents-3.5.40.dist-info → tapps_agents-3.6.0.dist-info}/METADATA +672 -672
- tapps_agents-3.6.0.dist-info/RECORD +758 -0
- {tapps_agents-3.5.40.dist-info → tapps_agents-3.6.0.dist-info}/licenses/LICENSE +22 -22
- tapps_agents/health/checks/outcomes.backup_20260204_064058.py +0 -324
- tapps_agents/health/checks/outcomes.backup_20260204_064256.py +0 -324
- tapps_agents/health/checks/outcomes.backup_20260204_064600.py +0 -324
- tapps_agents-3.5.40.dist-info/RECORD +0 -760
- {tapps_agents-3.5.40.dist-info → tapps_agents-3.6.0.dist-info}/WHEEL +0 -0
- {tapps_agents-3.5.40.dist-info → tapps_agents-3.6.0.dist-info}/entry_points.txt +0 -0
- {tapps_agents-3.5.40.dist-info → tapps_agents-3.6.0.dist-info}/top_level.txt +0 -0
|
@@ -1,342 +1,342 @@
|
|
|
1
|
-
# Common Vulnerability Patterns
|
|
2
|
-
|
|
3
|
-
## Injection Vulnerabilities
|
|
4
|
-
|
|
5
|
-
### SQL Injection
|
|
6
|
-
**Pattern**: User input directly concatenated into SQL queries
|
|
7
|
-
|
|
8
|
-
**Vulnerable Code**:
|
|
9
|
-
```python
|
|
10
|
-
query = f"SELECT * FROM users WHERE username = '{username}'"
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
**Secure Code**:
|
|
14
|
-
```python
|
|
15
|
-
query = "SELECT * FROM users WHERE username = ?"
|
|
16
|
-
cursor.execute(query, (username,))
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
**Prevention**:
|
|
20
|
-
- Use parameterized queries (prepared statements)
|
|
21
|
-
- Use ORM frameworks
|
|
22
|
-
- Validate and sanitize input
|
|
23
|
-
- Use least privilege database accounts
|
|
24
|
-
|
|
25
|
-
### Command Injection
|
|
26
|
-
**Pattern**: User input used in system commands
|
|
27
|
-
|
|
28
|
-
**Vulnerable Code**:
|
|
29
|
-
```python
|
|
30
|
-
os.system(f"ping {hostname}")
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
**Secure Code**:
|
|
34
|
-
```python
|
|
35
|
-
subprocess.run(["ping", hostname], check=True)
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
**Prevention**:
|
|
39
|
-
- Avoid shell execution
|
|
40
|
-
- Use parameterized system calls
|
|
41
|
-
- Validate input against whitelist
|
|
42
|
-
- Use safe APIs
|
|
43
|
-
|
|
44
|
-
### LDAP Injection
|
|
45
|
-
**Pattern**: User input in LDAP queries without sanitization
|
|
46
|
-
|
|
47
|
-
**Prevention**:
|
|
48
|
-
- Use parameterized LDAP APIs
|
|
49
|
-
- Escape special characters
|
|
50
|
-
- Validate input format
|
|
51
|
-
|
|
52
|
-
## Cross-Site Scripting (XSS)
|
|
53
|
-
|
|
54
|
-
### Stored XSS
|
|
55
|
-
**Pattern**: Malicious script stored in database and executed when displayed
|
|
56
|
-
|
|
57
|
-
**Vulnerable Code**:
|
|
58
|
-
```html
|
|
59
|
-
<div>{{ user_input }}</div>
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
**Secure Code**:
|
|
63
|
-
```html
|
|
64
|
-
<div>{{ user_input | escape }}</div>
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
**Prevention**:
|
|
68
|
-
- Encode all output
|
|
69
|
-
- Use Content Security Policy (CSP)
|
|
70
|
-
- Validate and sanitize input
|
|
71
|
-
- Use templating engines with auto-escaping
|
|
72
|
-
|
|
73
|
-
### Reflected XSS
|
|
74
|
-
**Pattern**: Malicious script reflected in response
|
|
75
|
-
|
|
76
|
-
**Prevention**:
|
|
77
|
-
- Encode all output
|
|
78
|
-
- Validate input
|
|
79
|
-
- Use CSP headers
|
|
80
|
-
|
|
81
|
-
### DOM-based XSS
|
|
82
|
-
**Pattern**: Client-side JavaScript manipulating DOM with untrusted data
|
|
83
|
-
|
|
84
|
-
**Prevention**:
|
|
85
|
-
- Avoid `innerHTML` with user data
|
|
86
|
-
- Use `textContent` instead
|
|
87
|
-
- Validate and sanitize client-side input
|
|
88
|
-
|
|
89
|
-
## Cross-Site Request Forgery (CSRF)
|
|
90
|
-
|
|
91
|
-
**Pattern**: Forcing authenticated users to perform unwanted actions
|
|
92
|
-
|
|
93
|
-
**Vulnerable Code**:
|
|
94
|
-
```html
|
|
95
|
-
<form action="/transfer" method="POST">
|
|
96
|
-
<input name="amount" value="1000">
|
|
97
|
-
<input name="to" value="attacker">
|
|
98
|
-
</form>
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
**Secure Code**:
|
|
102
|
-
```html
|
|
103
|
-
<form action="/transfer" method="POST">
|
|
104
|
-
<input type="hidden" name="csrf_token" value="{{ csrf_token }}">
|
|
105
|
-
<!-- ... -->
|
|
106
|
-
</form>
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
**Prevention**:
|
|
110
|
-
- Use CSRF tokens
|
|
111
|
-
- Verify origin/referer headers
|
|
112
|
-
- Use SameSite cookie attribute
|
|
113
|
-
- Require re-authentication for sensitive operations
|
|
114
|
-
|
|
115
|
-
## Insecure Direct Object References (IDOR)
|
|
116
|
-
|
|
117
|
-
**Pattern**: Accessing resources by manipulating identifiers
|
|
118
|
-
|
|
119
|
-
**Vulnerable Code**:
|
|
120
|
-
```python
|
|
121
|
-
def get_file(file_id):
|
|
122
|
-
return open(f"/files/{file_id}") # No access check
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
**Secure Code**:
|
|
126
|
-
```python
|
|
127
|
-
def get_file(file_id, user_id):
|
|
128
|
-
file = File.query.filter_by(id=file_id, owner_id=user_id).first()
|
|
129
|
-
if not file:
|
|
130
|
-
raise PermissionDenied
|
|
131
|
-
return file
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
**Prevention**:
|
|
135
|
-
- Verify authorization on every request
|
|
136
|
-
- Use indirect references (maps to real IDs)
|
|
137
|
-
- Check ownership/access rights
|
|
138
|
-
- Don't expose internal identifiers
|
|
139
|
-
|
|
140
|
-
## Security Misconfiguration
|
|
141
|
-
|
|
142
|
-
### Default Credentials
|
|
143
|
-
**Pattern**: Using default usernames/passwords
|
|
144
|
-
|
|
145
|
-
**Prevention**:
|
|
146
|
-
- Change all default credentials
|
|
147
|
-
- Use strong, unique passwords
|
|
148
|
-
- Implement password policies
|
|
149
|
-
- Disable default accounts
|
|
150
|
-
|
|
151
|
-
### Verbose Error Messages
|
|
152
|
-
**Pattern**: Exposing sensitive information in errors
|
|
153
|
-
|
|
154
|
-
**Vulnerable Code**:
|
|
155
|
-
```python
|
|
156
|
-
except Exception as e:
|
|
157
|
-
return {"error": str(e)} # Exposes stack trace
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
**Secure Code**:
|
|
161
|
-
```python
|
|
162
|
-
except Exception as e:
|
|
163
|
-
logger.error(f"Error: {e}", exc_info=True)
|
|
164
|
-
return {"error": "An error occurred"} # Generic message
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
**Prevention**:
|
|
168
|
-
- Use generic error messages
|
|
169
|
-
- Log detailed errors server-side
|
|
170
|
-
- Don't expose stack traces
|
|
171
|
-
- Don't reveal system internals
|
|
172
|
-
|
|
173
|
-
### Missing Security Headers
|
|
174
|
-
**Pattern**: Not setting security headers
|
|
175
|
-
|
|
176
|
-
**Prevention**:
|
|
177
|
-
- Set Content-Security-Policy
|
|
178
|
-
- Set X-Frame-Options
|
|
179
|
-
- Set X-Content-Type-Options
|
|
180
|
-
- Set Strict-Transport-Security
|
|
181
|
-
- Set Referrer-Policy
|
|
182
|
-
|
|
183
|
-
## Broken Authentication
|
|
184
|
-
|
|
185
|
-
### Weak Password Requirements
|
|
186
|
-
**Pattern**: Allowing weak passwords
|
|
187
|
-
|
|
188
|
-
**Prevention**:
|
|
189
|
-
- Require minimum length (12+ characters)
|
|
190
|
-
- Require complexity (mixed case, numbers, symbols)
|
|
191
|
-
- Check against common password lists
|
|
192
|
-
- Implement password history
|
|
193
|
-
|
|
194
|
-
### Session Fixation
|
|
195
|
-
**Pattern**: Not regenerating session ID after login
|
|
196
|
-
|
|
197
|
-
**Vulnerable Code**:
|
|
198
|
-
```python
|
|
199
|
-
session['user_id'] = user.id # Same session ID
|
|
200
|
-
```
|
|
201
|
-
|
|
202
|
-
**Secure Code**:
|
|
203
|
-
```python
|
|
204
|
-
session.regenerate()
|
|
205
|
-
session['user_id'] = user.id # New session ID
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
**Prevention**:
|
|
209
|
-
- Regenerate session ID after login
|
|
210
|
-
- Regenerate after privilege changes
|
|
211
|
-
- Use secure session management
|
|
212
|
-
- Set appropriate timeouts
|
|
213
|
-
|
|
214
|
-
### Insecure Password Storage
|
|
215
|
-
**Pattern**: Storing passwords in plain text or weak hashing
|
|
216
|
-
|
|
217
|
-
**Vulnerable Code**:
|
|
218
|
-
```python
|
|
219
|
-
password_hash = md5(password) # Weak and deprecated
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
**Secure Code**:
|
|
223
|
-
```python
|
|
224
|
-
password_hash = bcrypt.hashpw(password, bcrypt.gensalt())
|
|
225
|
-
```
|
|
226
|
-
|
|
227
|
-
**Prevention**:
|
|
228
|
-
- Use strong hashing (bcrypt, Argon2, PBKDF2)
|
|
229
|
-
- Never store plain text passwords
|
|
230
|
-
- Use salt for all hashes
|
|
231
|
-
- Use appropriate work factors
|
|
232
|
-
|
|
233
|
-
## Sensitive Data Exposure
|
|
234
|
-
|
|
235
|
-
### Insecure Transmission
|
|
236
|
-
**Pattern**: Sending sensitive data over HTTP
|
|
237
|
-
|
|
238
|
-
**Prevention**:
|
|
239
|
-
- Use HTTPS for all sensitive data
|
|
240
|
-
- Enforce HTTPS (HSTS)
|
|
241
|
-
- Use secure protocols (TLS 1.2+)
|
|
242
|
-
- Validate certificates
|
|
243
|
-
|
|
244
|
-
### Insecure Storage
|
|
245
|
-
**Pattern**: Storing sensitive data without encryption
|
|
246
|
-
|
|
247
|
-
**Prevention**:
|
|
248
|
-
- Encrypt sensitive data at rest
|
|
249
|
-
- Use strong encryption (AES-256)
|
|
250
|
-
- Secure key management
|
|
251
|
-
- Don't store unnecessary sensitive data
|
|
252
|
-
|
|
253
|
-
### Insecure Logging
|
|
254
|
-
**Pattern**: Logging sensitive information
|
|
255
|
-
|
|
256
|
-
**Vulnerable Code**:
|
|
257
|
-
```python
|
|
258
|
-
logger.info(f"User login: {username}, password: {password}")
|
|
259
|
-
```
|
|
260
|
-
|
|
261
|
-
**Secure Code**:
|
|
262
|
-
```python
|
|
263
|
-
logger.info(f"User login: {username}") # Never log passwords
|
|
264
|
-
```
|
|
265
|
-
|
|
266
|
-
**Prevention**:
|
|
267
|
-
- Don't log passwords, tokens, or secrets
|
|
268
|
-
- Mask sensitive data in logs
|
|
269
|
-
- Use data classification
|
|
270
|
-
- Implement log access controls
|
|
271
|
-
|
|
272
|
-
## XML External Entity (XXE)
|
|
273
|
-
|
|
274
|
-
**Pattern**: Processing XML with external entity references
|
|
275
|
-
|
|
276
|
-
**Vulnerable Code**:
|
|
277
|
-
```python
|
|
278
|
-
tree = ET.parse(xml_string) # Processes external entities
|
|
279
|
-
```
|
|
280
|
-
|
|
281
|
-
**Secure Code**:
|
|
282
|
-
```python
|
|
283
|
-
parser = ET.XMLParser()
|
|
284
|
-
parser.entity = {} # Disable external entities
|
|
285
|
-
tree = ET.parse(xml_string, parser=parser)
|
|
286
|
-
```
|
|
287
|
-
|
|
288
|
-
**Prevention**:
|
|
289
|
-
- Disable external entity processing
|
|
290
|
-
- Use simpler data formats (JSON)
|
|
291
|
-
- Validate XML schemas
|
|
292
|
-
- Use whitelist for XML parsers
|
|
293
|
-
|
|
294
|
-
## Insecure Deserialization
|
|
295
|
-
|
|
296
|
-
**Pattern**: Deserializing untrusted data
|
|
297
|
-
|
|
298
|
-
**Vulnerable Code**:
|
|
299
|
-
```python
|
|
300
|
-
data = pickle.loads(user_input) # Dangerous!
|
|
301
|
-
```
|
|
302
|
-
|
|
303
|
-
**Secure Code**:
|
|
304
|
-
```python
|
|
305
|
-
data = json.loads(user_input) # Safer format
|
|
306
|
-
# Or use signed serialization
|
|
307
|
-
```
|
|
308
|
-
|
|
309
|
-
**Prevention**:
|
|
310
|
-
- Avoid deserializing untrusted data
|
|
311
|
-
- Use safe serialization formats (JSON)
|
|
312
|
-
- Implement integrity checks
|
|
313
|
-
- Use digital signatures
|
|
314
|
-
|
|
315
|
-
## Using Components with Known Vulnerabilities
|
|
316
|
-
|
|
317
|
-
**Pattern**: Using outdated or vulnerable libraries
|
|
318
|
-
|
|
319
|
-
**Prevention**:
|
|
320
|
-
- Keep dependencies up to date
|
|
321
|
-
- Monitor for vulnerabilities
|
|
322
|
-
- Use dependency scanning tools
|
|
323
|
-
- Remove unused dependencies
|
|
324
|
-
- Use only trusted sources
|
|
325
|
-
|
|
326
|
-
## Insufficient Logging and Monitoring
|
|
327
|
-
|
|
328
|
-
**Pattern**: Not logging security events
|
|
329
|
-
|
|
330
|
-
**Prevention**:
|
|
331
|
-
- Log all authentication attempts
|
|
332
|
-
- Log all authorization failures
|
|
333
|
-
- Log all input validation failures
|
|
334
|
-
- Implement real-time monitoring
|
|
335
|
-
- Set up alerts for suspicious activity
|
|
336
|
-
|
|
337
|
-
## References
|
|
338
|
-
|
|
339
|
-
- [OWASP Top 10](https://owasp.org/Top10/)
|
|
340
|
-
- [CWE Top 25](https://cwe.mitre.org/top25/)
|
|
341
|
-
- [OWASP Cheat Sheet Series](https://cheatsheetseries.owasp.org/)
|
|
342
|
-
|
|
1
|
+
# Common Vulnerability Patterns
|
|
2
|
+
|
|
3
|
+
## Injection Vulnerabilities
|
|
4
|
+
|
|
5
|
+
### SQL Injection
|
|
6
|
+
**Pattern**: User input directly concatenated into SQL queries
|
|
7
|
+
|
|
8
|
+
**Vulnerable Code**:
|
|
9
|
+
```python
|
|
10
|
+
query = f"SELECT * FROM users WHERE username = '{username}'"
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
**Secure Code**:
|
|
14
|
+
```python
|
|
15
|
+
query = "SELECT * FROM users WHERE username = ?"
|
|
16
|
+
cursor.execute(query, (username,))
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
**Prevention**:
|
|
20
|
+
- Use parameterized queries (prepared statements)
|
|
21
|
+
- Use ORM frameworks
|
|
22
|
+
- Validate and sanitize input
|
|
23
|
+
- Use least privilege database accounts
|
|
24
|
+
|
|
25
|
+
### Command Injection
|
|
26
|
+
**Pattern**: User input used in system commands
|
|
27
|
+
|
|
28
|
+
**Vulnerable Code**:
|
|
29
|
+
```python
|
|
30
|
+
os.system(f"ping {hostname}")
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
**Secure Code**:
|
|
34
|
+
```python
|
|
35
|
+
subprocess.run(["ping", hostname], check=True)
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
**Prevention**:
|
|
39
|
+
- Avoid shell execution
|
|
40
|
+
- Use parameterized system calls
|
|
41
|
+
- Validate input against whitelist
|
|
42
|
+
- Use safe APIs
|
|
43
|
+
|
|
44
|
+
### LDAP Injection
|
|
45
|
+
**Pattern**: User input in LDAP queries without sanitization
|
|
46
|
+
|
|
47
|
+
**Prevention**:
|
|
48
|
+
- Use parameterized LDAP APIs
|
|
49
|
+
- Escape special characters
|
|
50
|
+
- Validate input format
|
|
51
|
+
|
|
52
|
+
## Cross-Site Scripting (XSS)
|
|
53
|
+
|
|
54
|
+
### Stored XSS
|
|
55
|
+
**Pattern**: Malicious script stored in database and executed when displayed
|
|
56
|
+
|
|
57
|
+
**Vulnerable Code**:
|
|
58
|
+
```html
|
|
59
|
+
<div>{{ user_input }}</div>
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**Secure Code**:
|
|
63
|
+
```html
|
|
64
|
+
<div>{{ user_input | escape }}</div>
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**Prevention**:
|
|
68
|
+
- Encode all output
|
|
69
|
+
- Use Content Security Policy (CSP)
|
|
70
|
+
- Validate and sanitize input
|
|
71
|
+
- Use templating engines with auto-escaping
|
|
72
|
+
|
|
73
|
+
### Reflected XSS
|
|
74
|
+
**Pattern**: Malicious script reflected in response
|
|
75
|
+
|
|
76
|
+
**Prevention**:
|
|
77
|
+
- Encode all output
|
|
78
|
+
- Validate input
|
|
79
|
+
- Use CSP headers
|
|
80
|
+
|
|
81
|
+
### DOM-based XSS
|
|
82
|
+
**Pattern**: Client-side JavaScript manipulating DOM with untrusted data
|
|
83
|
+
|
|
84
|
+
**Prevention**:
|
|
85
|
+
- Avoid `innerHTML` with user data
|
|
86
|
+
- Use `textContent` instead
|
|
87
|
+
- Validate and sanitize client-side input
|
|
88
|
+
|
|
89
|
+
## Cross-Site Request Forgery (CSRF)
|
|
90
|
+
|
|
91
|
+
**Pattern**: Forcing authenticated users to perform unwanted actions
|
|
92
|
+
|
|
93
|
+
**Vulnerable Code**:
|
|
94
|
+
```html
|
|
95
|
+
<form action="/transfer" method="POST">
|
|
96
|
+
<input name="amount" value="1000">
|
|
97
|
+
<input name="to" value="attacker">
|
|
98
|
+
</form>
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
**Secure Code**:
|
|
102
|
+
```html
|
|
103
|
+
<form action="/transfer" method="POST">
|
|
104
|
+
<input type="hidden" name="csrf_token" value="{{ csrf_token }}">
|
|
105
|
+
<!-- ... -->
|
|
106
|
+
</form>
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
**Prevention**:
|
|
110
|
+
- Use CSRF tokens
|
|
111
|
+
- Verify origin/referer headers
|
|
112
|
+
- Use SameSite cookie attribute
|
|
113
|
+
- Require re-authentication for sensitive operations
|
|
114
|
+
|
|
115
|
+
## Insecure Direct Object References (IDOR)
|
|
116
|
+
|
|
117
|
+
**Pattern**: Accessing resources by manipulating identifiers
|
|
118
|
+
|
|
119
|
+
**Vulnerable Code**:
|
|
120
|
+
```python
|
|
121
|
+
def get_file(file_id):
|
|
122
|
+
return open(f"/files/{file_id}") # No access check
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
**Secure Code**:
|
|
126
|
+
```python
|
|
127
|
+
def get_file(file_id, user_id):
|
|
128
|
+
file = File.query.filter_by(id=file_id, owner_id=user_id).first()
|
|
129
|
+
if not file:
|
|
130
|
+
raise PermissionDenied
|
|
131
|
+
return file
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
**Prevention**:
|
|
135
|
+
- Verify authorization on every request
|
|
136
|
+
- Use indirect references (maps to real IDs)
|
|
137
|
+
- Check ownership/access rights
|
|
138
|
+
- Don't expose internal identifiers
|
|
139
|
+
|
|
140
|
+
## Security Misconfiguration
|
|
141
|
+
|
|
142
|
+
### Default Credentials
|
|
143
|
+
**Pattern**: Using default usernames/passwords
|
|
144
|
+
|
|
145
|
+
**Prevention**:
|
|
146
|
+
- Change all default credentials
|
|
147
|
+
- Use strong, unique passwords
|
|
148
|
+
- Implement password policies
|
|
149
|
+
- Disable default accounts
|
|
150
|
+
|
|
151
|
+
### Verbose Error Messages
|
|
152
|
+
**Pattern**: Exposing sensitive information in errors
|
|
153
|
+
|
|
154
|
+
**Vulnerable Code**:
|
|
155
|
+
```python
|
|
156
|
+
except Exception as e:
|
|
157
|
+
return {"error": str(e)} # Exposes stack trace
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
**Secure Code**:
|
|
161
|
+
```python
|
|
162
|
+
except Exception as e:
|
|
163
|
+
logger.error(f"Error: {e}", exc_info=True)
|
|
164
|
+
return {"error": "An error occurred"} # Generic message
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
**Prevention**:
|
|
168
|
+
- Use generic error messages
|
|
169
|
+
- Log detailed errors server-side
|
|
170
|
+
- Don't expose stack traces
|
|
171
|
+
- Don't reveal system internals
|
|
172
|
+
|
|
173
|
+
### Missing Security Headers
|
|
174
|
+
**Pattern**: Not setting security headers
|
|
175
|
+
|
|
176
|
+
**Prevention**:
|
|
177
|
+
- Set Content-Security-Policy
|
|
178
|
+
- Set X-Frame-Options
|
|
179
|
+
- Set X-Content-Type-Options
|
|
180
|
+
- Set Strict-Transport-Security
|
|
181
|
+
- Set Referrer-Policy
|
|
182
|
+
|
|
183
|
+
## Broken Authentication
|
|
184
|
+
|
|
185
|
+
### Weak Password Requirements
|
|
186
|
+
**Pattern**: Allowing weak passwords
|
|
187
|
+
|
|
188
|
+
**Prevention**:
|
|
189
|
+
- Require minimum length (12+ characters)
|
|
190
|
+
- Require complexity (mixed case, numbers, symbols)
|
|
191
|
+
- Check against common password lists
|
|
192
|
+
- Implement password history
|
|
193
|
+
|
|
194
|
+
### Session Fixation
|
|
195
|
+
**Pattern**: Not regenerating session ID after login
|
|
196
|
+
|
|
197
|
+
**Vulnerable Code**:
|
|
198
|
+
```python
|
|
199
|
+
session['user_id'] = user.id # Same session ID
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
**Secure Code**:
|
|
203
|
+
```python
|
|
204
|
+
session.regenerate()
|
|
205
|
+
session['user_id'] = user.id # New session ID
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
**Prevention**:
|
|
209
|
+
- Regenerate session ID after login
|
|
210
|
+
- Regenerate after privilege changes
|
|
211
|
+
- Use secure session management
|
|
212
|
+
- Set appropriate timeouts
|
|
213
|
+
|
|
214
|
+
### Insecure Password Storage
|
|
215
|
+
**Pattern**: Storing passwords in plain text or weak hashing
|
|
216
|
+
|
|
217
|
+
**Vulnerable Code**:
|
|
218
|
+
```python
|
|
219
|
+
password_hash = md5(password) # Weak and deprecated
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
**Secure Code**:
|
|
223
|
+
```python
|
|
224
|
+
password_hash = bcrypt.hashpw(password, bcrypt.gensalt())
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
**Prevention**:
|
|
228
|
+
- Use strong hashing (bcrypt, Argon2, PBKDF2)
|
|
229
|
+
- Never store plain text passwords
|
|
230
|
+
- Use salt for all hashes
|
|
231
|
+
- Use appropriate work factors
|
|
232
|
+
|
|
233
|
+
## Sensitive Data Exposure
|
|
234
|
+
|
|
235
|
+
### Insecure Transmission
|
|
236
|
+
**Pattern**: Sending sensitive data over HTTP
|
|
237
|
+
|
|
238
|
+
**Prevention**:
|
|
239
|
+
- Use HTTPS for all sensitive data
|
|
240
|
+
- Enforce HTTPS (HSTS)
|
|
241
|
+
- Use secure protocols (TLS 1.2+)
|
|
242
|
+
- Validate certificates
|
|
243
|
+
|
|
244
|
+
### Insecure Storage
|
|
245
|
+
**Pattern**: Storing sensitive data without encryption
|
|
246
|
+
|
|
247
|
+
**Prevention**:
|
|
248
|
+
- Encrypt sensitive data at rest
|
|
249
|
+
- Use strong encryption (AES-256)
|
|
250
|
+
- Secure key management
|
|
251
|
+
- Don't store unnecessary sensitive data
|
|
252
|
+
|
|
253
|
+
### Insecure Logging
|
|
254
|
+
**Pattern**: Logging sensitive information
|
|
255
|
+
|
|
256
|
+
**Vulnerable Code**:
|
|
257
|
+
```python
|
|
258
|
+
logger.info(f"User login: {username}, password: {password}")
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
**Secure Code**:
|
|
262
|
+
```python
|
|
263
|
+
logger.info(f"User login: {username}") # Never log passwords
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
**Prevention**:
|
|
267
|
+
- Don't log passwords, tokens, or secrets
|
|
268
|
+
- Mask sensitive data in logs
|
|
269
|
+
- Use data classification
|
|
270
|
+
- Implement log access controls
|
|
271
|
+
|
|
272
|
+
## XML External Entity (XXE)
|
|
273
|
+
|
|
274
|
+
**Pattern**: Processing XML with external entity references
|
|
275
|
+
|
|
276
|
+
**Vulnerable Code**:
|
|
277
|
+
```python
|
|
278
|
+
tree = ET.parse(xml_string) # Processes external entities
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
**Secure Code**:
|
|
282
|
+
```python
|
|
283
|
+
parser = ET.XMLParser()
|
|
284
|
+
parser.entity = {} # Disable external entities
|
|
285
|
+
tree = ET.parse(xml_string, parser=parser)
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
**Prevention**:
|
|
289
|
+
- Disable external entity processing
|
|
290
|
+
- Use simpler data formats (JSON)
|
|
291
|
+
- Validate XML schemas
|
|
292
|
+
- Use whitelist for XML parsers
|
|
293
|
+
|
|
294
|
+
## Insecure Deserialization
|
|
295
|
+
|
|
296
|
+
**Pattern**: Deserializing untrusted data
|
|
297
|
+
|
|
298
|
+
**Vulnerable Code**:
|
|
299
|
+
```python
|
|
300
|
+
data = pickle.loads(user_input) # Dangerous!
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
**Secure Code**:
|
|
304
|
+
```python
|
|
305
|
+
data = json.loads(user_input) # Safer format
|
|
306
|
+
# Or use signed serialization
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
**Prevention**:
|
|
310
|
+
- Avoid deserializing untrusted data
|
|
311
|
+
- Use safe serialization formats (JSON)
|
|
312
|
+
- Implement integrity checks
|
|
313
|
+
- Use digital signatures
|
|
314
|
+
|
|
315
|
+
## Using Components with Known Vulnerabilities
|
|
316
|
+
|
|
317
|
+
**Pattern**: Using outdated or vulnerable libraries
|
|
318
|
+
|
|
319
|
+
**Prevention**:
|
|
320
|
+
- Keep dependencies up to date
|
|
321
|
+
- Monitor for vulnerabilities
|
|
322
|
+
- Use dependency scanning tools
|
|
323
|
+
- Remove unused dependencies
|
|
324
|
+
- Use only trusted sources
|
|
325
|
+
|
|
326
|
+
## Insufficient Logging and Monitoring
|
|
327
|
+
|
|
328
|
+
**Pattern**: Not logging security events
|
|
329
|
+
|
|
330
|
+
**Prevention**:
|
|
331
|
+
- Log all authentication attempts
|
|
332
|
+
- Log all authorization failures
|
|
333
|
+
- Log all input validation failures
|
|
334
|
+
- Implement real-time monitoring
|
|
335
|
+
- Set up alerts for suspicious activity
|
|
336
|
+
|
|
337
|
+
## References
|
|
338
|
+
|
|
339
|
+
- [OWASP Top 10](https://owasp.org/Top10/)
|
|
340
|
+
- [CWE Top 25](https://cwe.mitre.org/top25/)
|
|
341
|
+
- [OWASP Cheat Sheet Series](https://cheatsheetseries.owasp.org/)
|
|
342
|
+
|