scryer 1.2.1 → 1.3.0

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 (76) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +129 -10
  3. data/README.md +9 -4
  4. data/docs/architecture.md +45 -36
  5. data/docs/rails-integration.md +182 -1
  6. data/docs/rules.md +8 -1
  7. data/docs/usage.md +5 -2
  8. data/lib/generators/scryer/install_generator.rb +1 -0
  9. data/lib/generators/scryer/templates/scryer_initializer.rb +22 -0
  10. data/lib/scryer/ai_client.rb +1 -0
  11. data/lib/scryer/ai_fix_suggester.rb +1 -0
  12. data/lib/scryer/apm.rb +458 -0
  13. data/lib/scryer/ast.rb +53 -0
  14. data/lib/scryer/authorization_watcher.rb +1 -0
  15. data/lib/scryer/baseline.rb +1 -0
  16. data/lib/scryer/cache_extractor.rb +1 -0
  17. data/lib/scryer/cli.rb +19 -11
  18. data/lib/scryer/colorizer.rb +1 -0
  19. data/lib/scryer/dependency_audit.rb +1 -0
  20. data/lib/scryer/dependency_fixer.rb +1 -0
  21. data/lib/scryer/duplicate_detector.rb +1 -0
  22. data/lib/scryer/finding.rb +1 -0
  23. data/lib/scryer/fix_runner.rb +1 -0
  24. data/lib/scryer/fix_verifier.rb +1 -0
  25. data/lib/scryer/mechanical_fixer.rb +1 -0
  26. data/lib/scryer/method_extractor.rb +1 -0
  27. data/lib/scryer/minitest.rb +1 -0
  28. data/lib/scryer/performance_rules/inefficient_save_loop_rule.rb +1 -0
  29. data/lib/scryer/performance_rules/missing_pagination_rule.rb +1 -0
  30. data/lib/scryer/performance_rules/n_plus_one_query_rule.rb +2 -0
  31. data/lib/scryer/performance_rules/unbounded_table_scan_rule.rb +9 -1
  32. data/lib/scryer/query_extractor.rb +1 -0
  33. data/lib/scryer/query_watcher.rb +1 -0
  34. data/lib/scryer/railtie.rb +64 -4
  35. data/lib/scryer/report_renderer.rb +161 -99
  36. data/lib/scryer/rspec.rb +1 -0
  37. data/lib/scryer/rule.rb +15 -2
  38. data/lib/scryer/rule_set.rb +1 -0
  39. data/lib/scryer/rules/action_cable_forgery_protection_rule.rb +1 -0
  40. data/lib/scryer/rules/active_storage_inline_disposition_rule.rb +1 -0
  41. data/lib/scryer/rules/active_storage_missing_content_type_validation_rule.rb +1 -0
  42. data/lib/scryer/rules/authentication_bypass_rule.rb +1 -0
  43. data/lib/scryer/rules/command_injection_rule.rb +1 -0
  44. data/lib/scryer/rules/consider_all_requests_local_rule.rb +1 -0
  45. data/lib/scryer/rules/cors_misconfiguration_rule.rb +1 -0
  46. data/lib/scryer/rules/csrf_protection_rule.rb +1 -0
  47. data/lib/scryer/rules/dangerous_eval_rule.rb +117 -0
  48. data/lib/scryer/rules/force_ssl_rule.rb +1 -0
  49. data/lib/scryer/rules/graphql_missing_query_limits_rule.rb +1 -0
  50. data/lib/scryer/rules/hardcoded_basic_auth_rule.rb +1 -0
  51. data/lib/scryer/rules/hardcoded_secret_key_base_rule.rb +1 -0
  52. data/lib/scryer/rules/hardcoded_secret_rule.rb +1 -0
  53. data/lib/scryer/rules/host_authorization_disabled_rule.rb +1 -0
  54. data/lib/scryer/rules/idor_rule.rb +6 -14
  55. data/lib/scryer/rules/insecure_cookie_serializer_rule.rb +1 -0
  56. data/lib/scryer/rules/job_raw_params_rule.rb +1 -0
  57. data/lib/scryer/rules/jwt_insecure_rule.rb +1 -0
  58. data/lib/scryer/rules/mass_assignment_rule.rb +10 -16
  59. data/lib/scryer/rules/missing_authorization_rule.rb +1 -0
  60. data/lib/scryer/rules/missing_policy_scope_rule.rb +2 -9
  61. data/lib/scryer/rules/open_redirect_rule.rb +1 -0
  62. data/lib/scryer/rules/path_traversal_rule.rb +1 -0
  63. data/lib/scryer/rules/security_headers_rule.rb +1 -0
  64. data/lib/scryer/rules/sql_injection_rule.rb +1 -0
  65. data/lib/scryer/rules/ssrf_rule.rb +1 -0
  66. data/lib/scryer/rules/unsafe_deserialization_rule.rb +1 -0
  67. data/lib/scryer/rules/verbose_production_log_level_rule.rb +1 -0
  68. data/lib/scryer/rules/weak_crypto_rule.rb +1 -0
  69. data/lib/scryer/rules/weak_session_cookie_rule.rb +1 -0
  70. data/lib/scryer/rules/xss_unsafe_html_rule.rb +1 -0
  71. data/lib/scryer/scanner.rb +126 -7
  72. data/lib/scryer/style_rules/frozen_string_literal_rule.rb +1 -0
  73. data/lib/scryer/version.rb +2 -1
  74. data/lib/scryer.rb +49 -0
  75. data/lib/tasks/scryer.rake +8 -2
  76. metadata +3 -1
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: scryer
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.1
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ram Laxman Yadav
@@ -76,6 +76,7 @@ files:
76
76
  - lib/scryer.rb
77
77
  - lib/scryer/ai_client.rb
78
78
  - lib/scryer/ai_fix_suggester.rb
79
+ - lib/scryer/apm.rb
79
80
  - lib/scryer/ast.rb
80
81
  - lib/scryer/authorization_watcher.rb
81
82
  - lib/scryer/baseline.rb
@@ -110,6 +111,7 @@ files:
110
111
  - lib/scryer/rules/consider_all_requests_local_rule.rb
111
112
  - lib/scryer/rules/cors_misconfiguration_rule.rb
112
113
  - lib/scryer/rules/csrf_protection_rule.rb
114
+ - lib/scryer/rules/dangerous_eval_rule.rb
113
115
  - lib/scryer/rules/force_ssl_rule.rb
114
116
  - lib/scryer/rules/graphql_missing_query_limits_rule.rb
115
117
  - lib/scryer/rules/hardcoded_basic_auth_rule.rb