stratagem 0.1.8 → 0.1.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (64) hide show
  1. data/Manifest +16 -18
  2. data/Rakefile +3 -3
  3. data/bin/stratagem +54 -6
  4. data/generators/stratagem/stratagem_generator.rb +26 -0
  5. data/lib/generators/stratagem/install/USAGE +0 -0
  6. data/lib/generators/stratagem/install/install_base.rb +35 -0
  7. data/lib/generators/stratagem/install/install_generator.rb +24 -0
  8. data/lib/stratagem.rb +87 -57
  9. data/lib/stratagem/authentication.rb +2 -2
  10. data/lib/stratagem/auto_mock/aquifer.rb +6 -1
  11. data/lib/stratagem/auto_mock/factory.rb +2 -2
  12. data/lib/stratagem/client.rb +1 -1
  13. data/lib/stratagem/crawler.rb +2 -0
  14. data/lib/stratagem/crawler/authentication.rb +10 -9
  15. data/lib/stratagem/crawler/parameter_resolver.rb +83 -0
  16. data/lib/stratagem/crawler/route_invoker.rb +187 -0
  17. data/lib/stratagem/crawler/session.rb +23 -251
  18. data/lib/stratagem/crawler/site_model.rb +18 -16
  19. data/lib/stratagem/framework_extensions.rb +12 -1
  20. data/lib/stratagem/framework_extensions/method_invocation.rb +50 -0
  21. data/lib/stratagem/framework_extensions/models/adapters/active_model/detect.rb +1 -1
  22. data/lib/stratagem/framework_extensions/models/adapters/active_model/extensions.rb +20 -11
  23. data/lib/stratagem/framework_extensions/models/adapters/active_model/metadata.rb +7 -3
  24. data/lib/stratagem/framework_extensions/models/adapters/active_model/tracing.rb +11 -9
  25. data/lib/stratagem/framework_extensions/models/adapters/friendly_id/detect.rb +12 -0
  26. data/lib/stratagem/framework_extensions/models/adapters/friendly_id/extensions.rb +0 -0
  27. data/lib/stratagem/framework_extensions/models/adapters/friendly_id/metadata.rb +21 -0
  28. data/lib/stratagem/framework_extensions/models/adapters/friendly_id/tracing.rb +4 -0
  29. data/lib/stratagem/framework_extensions/models/annotations.rb +1 -24
  30. data/lib/stratagem/framework_extensions/models/tracing.rb +9 -3
  31. data/lib/stratagem/framework_extensions/rails.rb +0 -6
  32. data/lib/stratagem/framework_extensions/{controllers → rails2}/action_controller.rb +0 -0
  33. data/lib/stratagem/framework_extensions/{controllers → rails2}/action_mailer.rb +0 -0
  34. data/lib/stratagem/framework_extensions/rails3/parameters.rb +14 -0
  35. data/lib/stratagem/interface/browser.rb +3 -1
  36. data/lib/stratagem/model/application.rb +6 -6
  37. data/lib/stratagem/model/components/controller.rb +17 -63
  38. data/lib/stratagem/model/components/model.rb +33 -33
  39. data/lib/stratagem/model/components/reference.rb +8 -4
  40. data/lib/stratagem/model/components/route.rb +40 -14
  41. data/lib/stratagem/model/components/view.rb +1 -1
  42. data/lib/stratagem/model_builder.rb +71 -42
  43. data/lib/stratagem/site_crawler.rb +1 -1
  44. data/lib/stratagem/snapshot.rb +0 -1
  45. data/stratagem.gemspec +10 -7
  46. data/templates/install/environments/stratagem.rb.erb +16 -0
  47. data/templates/install/tasks/stratagem.rake +18 -0
  48. metadata +57 -40
  49. data/lib/stratagem/framework_extensions/controllers.rb +0 -5
  50. data/lib/stratagem/scan/checks/filter_parameter_logging.rb +0 -6
  51. data/lib/stratagem/scan/checks/mongo_mapper/base.rb +0 -19
  52. data/lib/stratagem/scan/checks/mongo_mapper/foreign_keys_exposed.rb +0 -32
  53. data/lib/stratagem/scan/checks/routes.rb +0 -16
  54. data/lib/tasks/_old_stratagem.rake +0 -99
  55. data/spec/model/component_spec.rb +0 -43
  56. data/spec/model/components/view_spec.rb +0 -43
  57. data/spec/model/test_spec.rb +0 -10
  58. data/spec/samples/404.html.erb +0 -30
  59. data/spec/samples/_form.html.erb +0 -8
  60. data/spec/samples/index.html.erb +0 -77
  61. data/spec/samples/sample_model.rb +0 -5
  62. data/spec/samples/signup.html.erb +0 -14
  63. data/spec/scan/checks/email_address_spec.rb +0 -24
  64. data/spec/scan/checks/error_pages_spec.rb +0 -22
@@ -12,7 +12,7 @@ module Stratagem
12
12
  page_set(:unauthenticated) do |pages|
13
13
  puts "SET: #{pages.object_id}"
14
14
  crawl
15
- display
15
+ print
16
16
  end
17
17
 
18
18
  users.each do |user|
@@ -3,7 +3,6 @@ module Stratagem
3
3
  attr_reader :project_name, :timestamp, :model, :scanner
4
4
 
5
5
  def self.create(project_name)
6
-
7
6
  logger.phase('modeling_application')
8
7
  model = Stratagem::ModelBuilder.new.run
9
8
 
@@ -2,17 +2,17 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{stratagem}
5
- s.version = "0.1.8"
5
+ s.version = "0.1.9"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Charles Grimes"]
9
- s.date = %q{2010-08-17}
9
+ s.date = %q{2010-09-30}
10
10
  s.default_executable = %q{stratagem}
11
11
  s.description = %q{Intuitive security analysis of your Rails applications}
12
12
  s.email = %q{cj@stratagemapp.com}
13
13
  s.executables = ["stratagem"]
14
- s.extra_rdoc_files = ["bin/stratagem", "lib/bootstrap.rb", "lib/stratagem.rb", "lib/stratagem/authentication.rb", "lib/stratagem/auto_mock.rb", "lib/stratagem/auto_mock/aquifer.rb", "lib/stratagem/auto_mock/factory.rb", "lib/stratagem/auto_mock/value_generator.rb", "lib/stratagem/blocker.rb", "lib/stratagem/client.rb", "lib/stratagem/command.rb", "lib/stratagem/commands.rb", "lib/stratagem/commands/analyze.rb", "lib/stratagem/commands/base.rb", "lib/stratagem/commands/devel_mock.rb", "lib/stratagem/crawler.rb", "lib/stratagem/crawler/authentication.rb", "lib/stratagem/crawler/form.rb", "lib/stratagem/crawler/html_utils.rb", "lib/stratagem/crawler/session.rb", "lib/stratagem/crawler/site_model.rb", "lib/stratagem/crawler/trace_utils.rb", "lib/stratagem/extensions.rb", "lib/stratagem/extensions/class.rb", "lib/stratagem/extensions/hash.rb", "lib/stratagem/extensions/module.rb", "lib/stratagem/extensions/object.rb", "lib/stratagem/extensions/red_parse.rb", "lib/stratagem/extensions/string.rb", "lib/stratagem/extensions/trace_compression.rb", "lib/stratagem/framework_extensions.rb", "lib/stratagem/framework_extensions/controllers.rb", "lib/stratagem/framework_extensions/controllers/action_controller.rb", "lib/stratagem/framework_extensions/controllers/action_mailer.rb", "lib/stratagem/framework_extensions/models.rb", "lib/stratagem/framework_extensions/models/adapters/active_model/detect.rb", "lib/stratagem/framework_extensions/models/adapters/active_model/extensions.rb", "lib/stratagem/framework_extensions/models/adapters/active_model/metadata.rb", "lib/stratagem/framework_extensions/models/adapters/active_model/tracing.rb", "lib/stratagem/framework_extensions/models/adapters/authlogic/detect.rb", "lib/stratagem/framework_extensions/models/adapters/authlogic/extensions.rb", "lib/stratagem/framework_extensions/models/adapters/authlogic/metadata.rb", "lib/stratagem/framework_extensions/models/adapters/authlogic/tracing.rb", "lib/stratagem/framework_extensions/models/adapters/common/detect.rb", "lib/stratagem/framework_extensions/models/adapters/common/extensions.rb", "lib/stratagem/framework_extensions/models/adapters/common/metadata.rb", "lib/stratagem/framework_extensions/models/adapters/common/tracing.rb", "lib/stratagem/framework_extensions/models/adapters/restful_authentication/detect.rb", "lib/stratagem/framework_extensions/models/adapters/restful_authentication/extensions.rb", "lib/stratagem/framework_extensions/models/adapters/restful_authentication/metadata.rb", "lib/stratagem/framework_extensions/models/adapters/restful_authentication/tracing.rb", "lib/stratagem/framework_extensions/models/adapters/util/authentication_metadata.rb", "lib/stratagem/framework_extensions/models/annotations.rb", "lib/stratagem/framework_extensions/models/detect.rb", "lib/stratagem/framework_extensions/models/metadata.rb", "lib/stratagem/framework_extensions/models/mocking.rb", "lib/stratagem/framework_extensions/models/tracing.rb", "lib/stratagem/framework_extensions/rails.rb", "lib/stratagem/interface/browser.rb", "lib/stratagem/interface/public/images/backgrounds/content.png", "lib/stratagem/interface/public/images/backgrounds/shadow.png", "lib/stratagem/interface/public/javascripts/jquery-1.4.2.min.js", "lib/stratagem/interface/public/javascripts/stratagem.js", "lib/stratagem/interface/public/javascripts/stratagem_debug.js", "lib/stratagem/interface/public/stylesheets/960.css", "lib/stratagem/interface/public/stylesheets/reset.css", "lib/stratagem/interface/public/stylesheets/stratagem.css", "lib/stratagem/interface/public/stylesheets/stratagem_debug.css", "lib/stratagem/interface/views/debug.haml", "lib/stratagem/interface/views/index.haml", "lib/stratagem/labs/auto_mock.rb", "lib/stratagem/labs/crawler.rb", "lib/stratagem/logger.rb", "lib/stratagem/model.rb", "lib/stratagem/model/application.rb", "lib/stratagem/model/components/base.rb", "lib/stratagem/model/components/controller.rb", "lib/stratagem/model/components/model.rb", "lib/stratagem/model/components/reference.rb", "lib/stratagem/model/components/route.rb", "lib/stratagem/model/components/static_file.rb", "lib/stratagem/model/components/view.rb", "lib/stratagem/model/parse_util.rb", "lib/stratagem/model_builder.rb", "lib/stratagem/recipes/deploy.rb", "lib/stratagem/scan.rb", "lib/stratagem/scan/checks/capistrano/secure_deploy.rb", "lib/stratagem/scan/checks/email_address.rb", "lib/stratagem/scan/checks/error_pages.rb", "lib/stratagem/scan/checks/filter_parameter_logging.rb", "lib/stratagem/scan/checks/mongo_mapper/base.rb", "lib/stratagem/scan/checks/mongo_mapper/foreign_keys_exposed.rb", "lib/stratagem/scan/checks/routes.rb", "lib/stratagem/scan/result.rb", "lib/stratagem/scanner.rb", "lib/stratagem/site_crawler.rb", "lib/stratagem/snapshot.rb", "lib/tasks/_old_stratagem.rake"]
15
- s.files = ["Manifest", "Rakefile", "bin/stratagem", "init.rb", "lib/bootstrap.rb", "lib/stratagem.rb", "lib/stratagem/authentication.rb", "lib/stratagem/auto_mock.rb", "lib/stratagem/auto_mock/aquifer.rb", "lib/stratagem/auto_mock/factory.rb", "lib/stratagem/auto_mock/value_generator.rb", "lib/stratagem/blocker.rb", "lib/stratagem/client.rb", "lib/stratagem/command.rb", "lib/stratagem/commands.rb", "lib/stratagem/commands/analyze.rb", "lib/stratagem/commands/base.rb", "lib/stratagem/commands/devel_mock.rb", "lib/stratagem/crawler.rb", "lib/stratagem/crawler/authentication.rb", "lib/stratagem/crawler/form.rb", "lib/stratagem/crawler/html_utils.rb", "lib/stratagem/crawler/session.rb", "lib/stratagem/crawler/site_model.rb", "lib/stratagem/crawler/trace_utils.rb", "lib/stratagem/extensions.rb", "lib/stratagem/extensions/class.rb", "lib/stratagem/extensions/hash.rb", "lib/stratagem/extensions/module.rb", "lib/stratagem/extensions/object.rb", "lib/stratagem/extensions/red_parse.rb", "lib/stratagem/extensions/string.rb", "lib/stratagem/extensions/trace_compression.rb", "lib/stratagem/framework_extensions.rb", "lib/stratagem/framework_extensions/controllers.rb", "lib/stratagem/framework_extensions/controllers/action_controller.rb", "lib/stratagem/framework_extensions/controllers/action_mailer.rb", "lib/stratagem/framework_extensions/models.rb", "lib/stratagem/framework_extensions/models/adapters/active_model/detect.rb", "lib/stratagem/framework_extensions/models/adapters/active_model/extensions.rb", "lib/stratagem/framework_extensions/models/adapters/active_model/metadata.rb", "lib/stratagem/framework_extensions/models/adapters/active_model/tracing.rb", "lib/stratagem/framework_extensions/models/adapters/authlogic/detect.rb", "lib/stratagem/framework_extensions/models/adapters/authlogic/extensions.rb", "lib/stratagem/framework_extensions/models/adapters/authlogic/metadata.rb", "lib/stratagem/framework_extensions/models/adapters/authlogic/tracing.rb", "lib/stratagem/framework_extensions/models/adapters/common/detect.rb", "lib/stratagem/framework_extensions/models/adapters/common/extensions.rb", "lib/stratagem/framework_extensions/models/adapters/common/metadata.rb", "lib/stratagem/framework_extensions/models/adapters/common/tracing.rb", "lib/stratagem/framework_extensions/models/adapters/restful_authentication/detect.rb", "lib/stratagem/framework_extensions/models/adapters/restful_authentication/extensions.rb", "lib/stratagem/framework_extensions/models/adapters/restful_authentication/metadata.rb", "lib/stratagem/framework_extensions/models/adapters/restful_authentication/tracing.rb", "lib/stratagem/framework_extensions/models/adapters/util/authentication_metadata.rb", "lib/stratagem/framework_extensions/models/annotations.rb", "lib/stratagem/framework_extensions/models/detect.rb", "lib/stratagem/framework_extensions/models/metadata.rb", "lib/stratagem/framework_extensions/models/mocking.rb", "lib/stratagem/framework_extensions/models/tracing.rb", "lib/stratagem/framework_extensions/rails.rb", "lib/stratagem/interface/browser.rb", "lib/stratagem/interface/public/images/backgrounds/content.png", "lib/stratagem/interface/public/images/backgrounds/shadow.png", "lib/stratagem/interface/public/javascripts/jquery-1.4.2.min.js", "lib/stratagem/interface/public/javascripts/stratagem.js", "lib/stratagem/interface/public/javascripts/stratagem_debug.js", "lib/stratagem/interface/public/stylesheets/960.css", "lib/stratagem/interface/public/stylesheets/reset.css", "lib/stratagem/interface/public/stylesheets/stratagem.css", "lib/stratagem/interface/public/stylesheets/stratagem_debug.css", "lib/stratagem/interface/views/debug.haml", "lib/stratagem/interface/views/index.haml", "lib/stratagem/labs/auto_mock.rb", "lib/stratagem/labs/crawler.rb", "lib/stratagem/logger.rb", "lib/stratagem/model.rb", "lib/stratagem/model/application.rb", "lib/stratagem/model/components/base.rb", "lib/stratagem/model/components/controller.rb", "lib/stratagem/model/components/model.rb", "lib/stratagem/model/components/reference.rb", "lib/stratagem/model/components/route.rb", "lib/stratagem/model/components/static_file.rb", "lib/stratagem/model/components/view.rb", "lib/stratagem/model/parse_util.rb", "lib/stratagem/model_builder.rb", "lib/stratagem/recipes/deploy.rb", "lib/stratagem/scan.rb", "lib/stratagem/scan/checks/capistrano/secure_deploy.rb", "lib/stratagem/scan/checks/email_address.rb", "lib/stratagem/scan/checks/error_pages.rb", "lib/stratagem/scan/checks/filter_parameter_logging.rb", "lib/stratagem/scan/checks/mongo_mapper/base.rb", "lib/stratagem/scan/checks/mongo_mapper/foreign_keys_exposed.rb", "lib/stratagem/scan/checks/routes.rb", "lib/stratagem/scan/result.rb", "lib/stratagem/scanner.rb", "lib/stratagem/site_crawler.rb", "lib/stratagem/snapshot.rb", "lib/tasks/_old_stratagem.rake", "spec/model/component_spec.rb", "spec/model/components/view_spec.rb", "spec/model/test_spec.rb", "spec/samples/404.html.erb", "spec/samples/_form.html.erb", "spec/samples/index.html.erb", "spec/samples/sample_model.rb", "spec/samples/signup.html.erb", "spec/scan/checks/email_address_spec.rb", "spec/scan/checks/error_pages_spec.rb", "stratagem.gemspec"]
14
+ s.extra_rdoc_files = ["bin/stratagem", "lib/bootstrap.rb", "lib/generators/stratagem/install/USAGE", "lib/generators/stratagem/install/install_base.rb", "lib/generators/stratagem/install/install_generator.rb", "lib/stratagem.rb", "lib/stratagem/authentication.rb", "lib/stratagem/auto_mock.rb", "lib/stratagem/auto_mock/aquifer.rb", "lib/stratagem/auto_mock/factory.rb", "lib/stratagem/auto_mock/value_generator.rb", "lib/stratagem/blocker.rb", "lib/stratagem/client.rb", "lib/stratagem/command.rb", "lib/stratagem/commands.rb", "lib/stratagem/commands/analyze.rb", "lib/stratagem/commands/base.rb", "lib/stratagem/commands/devel_mock.rb", "lib/stratagem/crawler.rb", "lib/stratagem/crawler/authentication.rb", "lib/stratagem/crawler/form.rb", "lib/stratagem/crawler/html_utils.rb", "lib/stratagem/crawler/parameter_resolver.rb", "lib/stratagem/crawler/route_invoker.rb", "lib/stratagem/crawler/session.rb", "lib/stratagem/crawler/site_model.rb", "lib/stratagem/crawler/trace_utils.rb", "lib/stratagem/extensions.rb", "lib/stratagem/extensions/class.rb", "lib/stratagem/extensions/hash.rb", "lib/stratagem/extensions/module.rb", "lib/stratagem/extensions/object.rb", "lib/stratagem/extensions/red_parse.rb", "lib/stratagem/extensions/string.rb", "lib/stratagem/extensions/trace_compression.rb", "lib/stratagem/framework_extensions.rb", "lib/stratagem/framework_extensions/method_invocation.rb", "lib/stratagem/framework_extensions/models.rb", "lib/stratagem/framework_extensions/models/adapters/active_model/detect.rb", "lib/stratagem/framework_extensions/models/adapters/active_model/extensions.rb", "lib/stratagem/framework_extensions/models/adapters/active_model/metadata.rb", "lib/stratagem/framework_extensions/models/adapters/active_model/tracing.rb", "lib/stratagem/framework_extensions/models/adapters/authlogic/detect.rb", "lib/stratagem/framework_extensions/models/adapters/authlogic/extensions.rb", "lib/stratagem/framework_extensions/models/adapters/authlogic/metadata.rb", "lib/stratagem/framework_extensions/models/adapters/authlogic/tracing.rb", "lib/stratagem/framework_extensions/models/adapters/common/detect.rb", "lib/stratagem/framework_extensions/models/adapters/common/extensions.rb", "lib/stratagem/framework_extensions/models/adapters/common/metadata.rb", "lib/stratagem/framework_extensions/models/adapters/common/tracing.rb", "lib/stratagem/framework_extensions/models/adapters/friendly_id/detect.rb", "lib/stratagem/framework_extensions/models/adapters/friendly_id/extensions.rb", "lib/stratagem/framework_extensions/models/adapters/friendly_id/metadata.rb", "lib/stratagem/framework_extensions/models/adapters/friendly_id/tracing.rb", "lib/stratagem/framework_extensions/models/adapters/restful_authentication/detect.rb", "lib/stratagem/framework_extensions/models/adapters/restful_authentication/extensions.rb", "lib/stratagem/framework_extensions/models/adapters/restful_authentication/metadata.rb", "lib/stratagem/framework_extensions/models/adapters/restful_authentication/tracing.rb", "lib/stratagem/framework_extensions/models/adapters/util/authentication_metadata.rb", "lib/stratagem/framework_extensions/models/annotations.rb", "lib/stratagem/framework_extensions/models/detect.rb", "lib/stratagem/framework_extensions/models/metadata.rb", "lib/stratagem/framework_extensions/models/mocking.rb", "lib/stratagem/framework_extensions/models/tracing.rb", "lib/stratagem/framework_extensions/rails.rb", "lib/stratagem/framework_extensions/rails2/action_controller.rb", "lib/stratagem/framework_extensions/rails2/action_mailer.rb", "lib/stratagem/framework_extensions/rails3/parameters.rb", "lib/stratagem/interface/browser.rb", "lib/stratagem/interface/public/images/backgrounds/content.png", "lib/stratagem/interface/public/images/backgrounds/shadow.png", "lib/stratagem/interface/public/javascripts/jquery-1.4.2.min.js", "lib/stratagem/interface/public/javascripts/stratagem.js", "lib/stratagem/interface/public/javascripts/stratagem_debug.js", "lib/stratagem/interface/public/stylesheets/960.css", "lib/stratagem/interface/public/stylesheets/reset.css", "lib/stratagem/interface/public/stylesheets/stratagem.css", "lib/stratagem/interface/public/stylesheets/stratagem_debug.css", "lib/stratagem/interface/views/debug.haml", "lib/stratagem/interface/views/index.haml", "lib/stratagem/labs/auto_mock.rb", "lib/stratagem/labs/crawler.rb", "lib/stratagem/logger.rb", "lib/stratagem/model.rb", "lib/stratagem/model/application.rb", "lib/stratagem/model/components/base.rb", "lib/stratagem/model/components/controller.rb", "lib/stratagem/model/components/model.rb", "lib/stratagem/model/components/reference.rb", "lib/stratagem/model/components/route.rb", "lib/stratagem/model/components/static_file.rb", "lib/stratagem/model/components/view.rb", "lib/stratagem/model/parse_util.rb", "lib/stratagem/model_builder.rb", "lib/stratagem/recipes/deploy.rb", "lib/stratagem/scan.rb", "lib/stratagem/scan/checks/capistrano/secure_deploy.rb", "lib/stratagem/scan/checks/email_address.rb", "lib/stratagem/scan/checks/error_pages.rb", "lib/stratagem/scan/result.rb", "lib/stratagem/scanner.rb", "lib/stratagem/site_crawler.rb", "lib/stratagem/snapshot.rb"]
15
+ s.files = ["Manifest", "Rakefile", "bin/stratagem", "generators/stratagem/stratagem_generator.rb", "init.rb", "lib/bootstrap.rb", "lib/generators/stratagem/install/USAGE", "lib/generators/stratagem/install/install_base.rb", "lib/generators/stratagem/install/install_generator.rb", "lib/stratagem.rb", "lib/stratagem/authentication.rb", "lib/stratagem/auto_mock.rb", "lib/stratagem/auto_mock/aquifer.rb", "lib/stratagem/auto_mock/factory.rb", "lib/stratagem/auto_mock/value_generator.rb", "lib/stratagem/blocker.rb", "lib/stratagem/client.rb", "lib/stratagem/command.rb", "lib/stratagem/commands.rb", "lib/stratagem/commands/analyze.rb", "lib/stratagem/commands/base.rb", "lib/stratagem/commands/devel_mock.rb", "lib/stratagem/crawler.rb", "lib/stratagem/crawler/authentication.rb", "lib/stratagem/crawler/form.rb", "lib/stratagem/crawler/html_utils.rb", "lib/stratagem/crawler/parameter_resolver.rb", "lib/stratagem/crawler/route_invoker.rb", "lib/stratagem/crawler/session.rb", "lib/stratagem/crawler/site_model.rb", "lib/stratagem/crawler/trace_utils.rb", "lib/stratagem/extensions.rb", "lib/stratagem/extensions/class.rb", "lib/stratagem/extensions/hash.rb", "lib/stratagem/extensions/module.rb", "lib/stratagem/extensions/object.rb", "lib/stratagem/extensions/red_parse.rb", "lib/stratagem/extensions/string.rb", "lib/stratagem/extensions/trace_compression.rb", "lib/stratagem/framework_extensions.rb", "lib/stratagem/framework_extensions/method_invocation.rb", "lib/stratagem/framework_extensions/models.rb", "lib/stratagem/framework_extensions/models/adapters/active_model/detect.rb", "lib/stratagem/framework_extensions/models/adapters/active_model/extensions.rb", "lib/stratagem/framework_extensions/models/adapters/active_model/metadata.rb", "lib/stratagem/framework_extensions/models/adapters/active_model/tracing.rb", "lib/stratagem/framework_extensions/models/adapters/authlogic/detect.rb", "lib/stratagem/framework_extensions/models/adapters/authlogic/extensions.rb", "lib/stratagem/framework_extensions/models/adapters/authlogic/metadata.rb", "lib/stratagem/framework_extensions/models/adapters/authlogic/tracing.rb", "lib/stratagem/framework_extensions/models/adapters/common/detect.rb", "lib/stratagem/framework_extensions/models/adapters/common/extensions.rb", "lib/stratagem/framework_extensions/models/adapters/common/metadata.rb", "lib/stratagem/framework_extensions/models/adapters/common/tracing.rb", "lib/stratagem/framework_extensions/models/adapters/friendly_id/detect.rb", "lib/stratagem/framework_extensions/models/adapters/friendly_id/extensions.rb", "lib/stratagem/framework_extensions/models/adapters/friendly_id/metadata.rb", "lib/stratagem/framework_extensions/models/adapters/friendly_id/tracing.rb", "lib/stratagem/framework_extensions/models/adapters/restful_authentication/detect.rb", "lib/stratagem/framework_extensions/models/adapters/restful_authentication/extensions.rb", "lib/stratagem/framework_extensions/models/adapters/restful_authentication/metadata.rb", "lib/stratagem/framework_extensions/models/adapters/restful_authentication/tracing.rb", "lib/stratagem/framework_extensions/models/adapters/util/authentication_metadata.rb", "lib/stratagem/framework_extensions/models/annotations.rb", "lib/stratagem/framework_extensions/models/detect.rb", "lib/stratagem/framework_extensions/models/metadata.rb", "lib/stratagem/framework_extensions/models/mocking.rb", "lib/stratagem/framework_extensions/models/tracing.rb", "lib/stratagem/framework_extensions/rails.rb", "lib/stratagem/framework_extensions/rails2/action_controller.rb", "lib/stratagem/framework_extensions/rails2/action_mailer.rb", "lib/stratagem/framework_extensions/rails3/parameters.rb", "lib/stratagem/interface/browser.rb", "lib/stratagem/interface/public/images/backgrounds/content.png", "lib/stratagem/interface/public/images/backgrounds/shadow.png", "lib/stratagem/interface/public/javascripts/jquery-1.4.2.min.js", "lib/stratagem/interface/public/javascripts/stratagem.js", "lib/stratagem/interface/public/javascripts/stratagem_debug.js", "lib/stratagem/interface/public/stylesheets/960.css", "lib/stratagem/interface/public/stylesheets/reset.css", "lib/stratagem/interface/public/stylesheets/stratagem.css", "lib/stratagem/interface/public/stylesheets/stratagem_debug.css", "lib/stratagem/interface/views/debug.haml", "lib/stratagem/interface/views/index.haml", "lib/stratagem/labs/auto_mock.rb", "lib/stratagem/labs/crawler.rb", "lib/stratagem/logger.rb", "lib/stratagem/model.rb", "lib/stratagem/model/application.rb", "lib/stratagem/model/components/base.rb", "lib/stratagem/model/components/controller.rb", "lib/stratagem/model/components/model.rb", "lib/stratagem/model/components/reference.rb", "lib/stratagem/model/components/route.rb", "lib/stratagem/model/components/static_file.rb", "lib/stratagem/model/components/view.rb", "lib/stratagem/model/parse_util.rb", "lib/stratagem/model_builder.rb", "lib/stratagem/recipes/deploy.rb", "lib/stratagem/scan.rb", "lib/stratagem/scan/checks/capistrano/secure_deploy.rb", "lib/stratagem/scan/checks/email_address.rb", "lib/stratagem/scan/checks/error_pages.rb", "lib/stratagem/scan/result.rb", "lib/stratagem/scanner.rb", "lib/stratagem/site_crawler.rb", "lib/stratagem/snapshot.rb", "templates/install/environments/stratagem.rb.erb", "templates/install/tasks/stratagem.rake", "stratagem.gemspec"]
16
16
  s.homepage = %q{http://github.com/stratagem/stratagem}
17
17
  s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Stratagem"]
18
18
  s.require_paths = ["lib"]
@@ -29,9 +29,10 @@ Gem::Specification.new do |s|
29
29
  s.add_runtime_dependency(%q<redparse>, [">= 0.8.4"])
30
30
  s.add_runtime_dependency(%q<haml>, [">= 3.0.0"])
31
31
  s.add_runtime_dependency(%q<nokogiri>, [">= 1.4.3"])
32
+ s.add_runtime_dependency(%q<sinatra>, [">= 1.0"])
32
33
  s.add_development_dependency(%q<launchy>, [">= 0.3.5"])
33
34
  s.add_development_dependency(%q<redparse>, [">= 0.8.4"])
34
- s.add_development_dependency(%q<sinatra>, ["= 1.0"])
35
+ s.add_development_dependency(%q<sinatra>, [">= 1.0"])
35
36
  s.add_development_dependency(%q<haml>, [">= 3.0.0"])
36
37
  s.add_development_dependency(%q<webrat>, [">= 0.4.3"])
37
38
  else
@@ -39,9 +40,10 @@ Gem::Specification.new do |s|
39
40
  s.add_dependency(%q<redparse>, [">= 0.8.4"])
40
41
  s.add_dependency(%q<haml>, [">= 3.0.0"])
41
42
  s.add_dependency(%q<nokogiri>, [">= 1.4.3"])
43
+ s.add_dependency(%q<sinatra>, [">= 1.0"])
42
44
  s.add_dependency(%q<launchy>, [">= 0.3.5"])
43
45
  s.add_dependency(%q<redparse>, [">= 0.8.4"])
44
- s.add_dependency(%q<sinatra>, ["= 1.0"])
46
+ s.add_dependency(%q<sinatra>, [">= 1.0"])
45
47
  s.add_dependency(%q<haml>, [">= 3.0.0"])
46
48
  s.add_dependency(%q<webrat>, [">= 0.4.3"])
47
49
  end
@@ -50,9 +52,10 @@ Gem::Specification.new do |s|
50
52
  s.add_dependency(%q<redparse>, [">= 0.8.4"])
51
53
  s.add_dependency(%q<haml>, [">= 3.0.0"])
52
54
  s.add_dependency(%q<nokogiri>, [">= 1.4.3"])
55
+ s.add_dependency(%q<sinatra>, [">= 1.0"])
53
56
  s.add_dependency(%q<launchy>, [">= 0.3.5"])
54
57
  s.add_dependency(%q<redparse>, [">= 0.8.4"])
55
- s.add_dependency(%q<sinatra>, ["= 1.0"])
58
+ s.add_dependency(%q<sinatra>, [">= 1.0"])
56
59
  s.add_dependency(%q<haml>, [">= 3.0.0"])
57
60
  s.add_dependency(%q<webrat>, [">= 0.4.3"])
58
61
  end
@@ -0,0 +1,16 @@
1
+ # this file is automatically generated by StrataGem.
2
+
3
+ <% if Rails.version =~ /^3/ -%>
4
+ <%= Rails.application.class.name -%>.configure do |config|
5
+ <% end -%>
6
+
7
+ config.cache_classes = true
8
+ config.whiny_nils = true
9
+ config.action_controller.consider_all_requests_local = true
10
+ config.action_controller.perform_caching = false
11
+ config.action_controller.allow_forgery_protection = true
12
+ config.action_mailer.delivery_method = :test
13
+
14
+ <% if Rails.version =~ /^3/ -%>
15
+ end
16
+ <% end -%>
@@ -0,0 +1,18 @@
1
+
2
+ namespace :stratagem do
3
+ task :analyze do
4
+ # Force the StrataGem environment
5
+ if (Rails.version =~ /^3/)
6
+ Rails.env = 'stratagem'
7
+ else
8
+ ENV['RAILS_ENV'] = 'stratagem'
9
+ RAILS_ENV = ENV['RAILS_ENV']
10
+ end
11
+ require 'config/environment'
12
+
13
+ raise "Unable to set the Rails environment" unless Rails.env == 'stratagem'
14
+
15
+ Stratagem.init
16
+ Stratagem::Command.run('analyze')
17
+ end
18
+ end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 8
9
- version: 0.1.8
8
+ - 9
9
+ version: 0.1.9
10
10
  platform: ruby
11
11
  authors:
12
12
  - Charles Grimes
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-08-17 00:00:00 -06:00
17
+ date: 2010-09-30 00:00:00 -06:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -78,9 +78,23 @@ dependencies:
78
78
  type: :runtime
79
79
  version_requirements: *id004
80
80
  - !ruby/object:Gem::Dependency
81
- name: launchy
81
+ name: sinatra
82
82
  prerelease: false
83
83
  requirement: &id005 !ruby/object:Gem::Requirement
84
+ none: false
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ segments:
89
+ - 1
90
+ - 0
91
+ version: "1.0"
92
+ type: :runtime
93
+ version_requirements: *id005
94
+ - !ruby/object:Gem::Dependency
95
+ name: launchy
96
+ prerelease: false
97
+ requirement: &id006 !ruby/object:Gem::Requirement
84
98
  none: false
85
99
  requirements:
86
100
  - - ">="
@@ -91,11 +105,11 @@ dependencies:
91
105
  - 5
92
106
  version: 0.3.5
93
107
  type: :development
94
- version_requirements: *id005
108
+ version_requirements: *id006
95
109
  - !ruby/object:Gem::Dependency
96
110
  name: redparse
97
111
  prerelease: false
98
- requirement: &id006 !ruby/object:Gem::Requirement
112
+ requirement: &id007 !ruby/object:Gem::Requirement
99
113
  none: false
100
114
  requirements:
101
115
  - - ">="
@@ -106,25 +120,25 @@ dependencies:
106
120
  - 4
107
121
  version: 0.8.4
108
122
  type: :development
109
- version_requirements: *id006
123
+ version_requirements: *id007
110
124
  - !ruby/object:Gem::Dependency
111
125
  name: sinatra
112
126
  prerelease: false
113
- requirement: &id007 !ruby/object:Gem::Requirement
127
+ requirement: &id008 !ruby/object:Gem::Requirement
114
128
  none: false
115
129
  requirements:
116
- - - "="
130
+ - - ">="
117
131
  - !ruby/object:Gem::Version
118
132
  segments:
119
133
  - 1
120
134
  - 0
121
135
  version: "1.0"
122
136
  type: :development
123
- version_requirements: *id007
137
+ version_requirements: *id008
124
138
  - !ruby/object:Gem::Dependency
125
139
  name: haml
126
140
  prerelease: false
127
- requirement: &id008 !ruby/object:Gem::Requirement
141
+ requirement: &id009 !ruby/object:Gem::Requirement
128
142
  none: false
129
143
  requirements:
130
144
  - - ">="
@@ -135,11 +149,11 @@ dependencies:
135
149
  - 0
136
150
  version: 3.0.0
137
151
  type: :development
138
- version_requirements: *id008
152
+ version_requirements: *id009
139
153
  - !ruby/object:Gem::Dependency
140
154
  name: webrat
141
155
  prerelease: false
142
- requirement: &id009 !ruby/object:Gem::Requirement
156
+ requirement: &id010 !ruby/object:Gem::Requirement
143
157
  none: false
144
158
  requirements:
145
159
  - - ">="
@@ -150,7 +164,7 @@ dependencies:
150
164
  - 3
151
165
  version: 0.4.3
152
166
  type: :development
153
- version_requirements: *id009
167
+ version_requirements: *id010
154
168
  description: Intuitive security analysis of your Rails applications
155
169
  email: cj@stratagemapp.com
156
170
  executables:
@@ -160,6 +174,9 @@ extensions: []
160
174
  extra_rdoc_files:
161
175
  - bin/stratagem
162
176
  - lib/bootstrap.rb
177
+ - lib/generators/stratagem/install/USAGE
178
+ - lib/generators/stratagem/install/install_base.rb
179
+ - lib/generators/stratagem/install/install_generator.rb
163
180
  - lib/stratagem.rb
164
181
  - lib/stratagem/authentication.rb
165
182
  - lib/stratagem/auto_mock.rb
@@ -177,6 +194,8 @@ extra_rdoc_files:
177
194
  - lib/stratagem/crawler/authentication.rb
178
195
  - lib/stratagem/crawler/form.rb
179
196
  - lib/stratagem/crawler/html_utils.rb
197
+ - lib/stratagem/crawler/parameter_resolver.rb
198
+ - lib/stratagem/crawler/route_invoker.rb
180
199
  - lib/stratagem/crawler/session.rb
181
200
  - lib/stratagem/crawler/site_model.rb
182
201
  - lib/stratagem/crawler/trace_utils.rb
@@ -189,9 +208,7 @@ extra_rdoc_files:
189
208
  - lib/stratagem/extensions/string.rb
190
209
  - lib/stratagem/extensions/trace_compression.rb
191
210
  - lib/stratagem/framework_extensions.rb
192
- - lib/stratagem/framework_extensions/controllers.rb
193
- - lib/stratagem/framework_extensions/controllers/action_controller.rb
194
- - lib/stratagem/framework_extensions/controllers/action_mailer.rb
211
+ - lib/stratagem/framework_extensions/method_invocation.rb
195
212
  - lib/stratagem/framework_extensions/models.rb
196
213
  - lib/stratagem/framework_extensions/models/adapters/active_model/detect.rb
197
214
  - lib/stratagem/framework_extensions/models/adapters/active_model/extensions.rb
@@ -205,6 +222,10 @@ extra_rdoc_files:
205
222
  - lib/stratagem/framework_extensions/models/adapters/common/extensions.rb
206
223
  - lib/stratagem/framework_extensions/models/adapters/common/metadata.rb
207
224
  - lib/stratagem/framework_extensions/models/adapters/common/tracing.rb
225
+ - lib/stratagem/framework_extensions/models/adapters/friendly_id/detect.rb
226
+ - lib/stratagem/framework_extensions/models/adapters/friendly_id/extensions.rb
227
+ - lib/stratagem/framework_extensions/models/adapters/friendly_id/metadata.rb
228
+ - lib/stratagem/framework_extensions/models/adapters/friendly_id/tracing.rb
208
229
  - lib/stratagem/framework_extensions/models/adapters/restful_authentication/detect.rb
209
230
  - lib/stratagem/framework_extensions/models/adapters/restful_authentication/extensions.rb
210
231
  - lib/stratagem/framework_extensions/models/adapters/restful_authentication/metadata.rb
@@ -216,6 +237,9 @@ extra_rdoc_files:
216
237
  - lib/stratagem/framework_extensions/models/mocking.rb
217
238
  - lib/stratagem/framework_extensions/models/tracing.rb
218
239
  - lib/stratagem/framework_extensions/rails.rb
240
+ - lib/stratagem/framework_extensions/rails2/action_controller.rb
241
+ - lib/stratagem/framework_extensions/rails2/action_mailer.rb
242
+ - lib/stratagem/framework_extensions/rails3/parameters.rb
219
243
  - lib/stratagem/interface/browser.rb
220
244
  - lib/stratagem/interface/public/images/backgrounds/content.png
221
245
  - lib/stratagem/interface/public/images/backgrounds/shadow.png
@@ -247,21 +271,20 @@ extra_rdoc_files:
247
271
  - lib/stratagem/scan/checks/capistrano/secure_deploy.rb
248
272
  - lib/stratagem/scan/checks/email_address.rb
249
273
  - lib/stratagem/scan/checks/error_pages.rb
250
- - lib/stratagem/scan/checks/filter_parameter_logging.rb
251
- - lib/stratagem/scan/checks/mongo_mapper/base.rb
252
- - lib/stratagem/scan/checks/mongo_mapper/foreign_keys_exposed.rb
253
- - lib/stratagem/scan/checks/routes.rb
254
274
  - lib/stratagem/scan/result.rb
255
275
  - lib/stratagem/scanner.rb
256
276
  - lib/stratagem/site_crawler.rb
257
277
  - lib/stratagem/snapshot.rb
258
- - lib/tasks/_old_stratagem.rake
259
278
  files:
260
279
  - Manifest
261
280
  - Rakefile
262
281
  - bin/stratagem
282
+ - generators/stratagem/stratagem_generator.rb
263
283
  - init.rb
264
284
  - lib/bootstrap.rb
285
+ - lib/generators/stratagem/install/USAGE
286
+ - lib/generators/stratagem/install/install_base.rb
287
+ - lib/generators/stratagem/install/install_generator.rb
265
288
  - lib/stratagem.rb
266
289
  - lib/stratagem/authentication.rb
267
290
  - lib/stratagem/auto_mock.rb
@@ -279,6 +302,8 @@ files:
279
302
  - lib/stratagem/crawler/authentication.rb
280
303
  - lib/stratagem/crawler/form.rb
281
304
  - lib/stratagem/crawler/html_utils.rb
305
+ - lib/stratagem/crawler/parameter_resolver.rb
306
+ - lib/stratagem/crawler/route_invoker.rb
282
307
  - lib/stratagem/crawler/session.rb
283
308
  - lib/stratagem/crawler/site_model.rb
284
309
  - lib/stratagem/crawler/trace_utils.rb
@@ -291,9 +316,7 @@ files:
291
316
  - lib/stratagem/extensions/string.rb
292
317
  - lib/stratagem/extensions/trace_compression.rb
293
318
  - lib/stratagem/framework_extensions.rb
294
- - lib/stratagem/framework_extensions/controllers.rb
295
- - lib/stratagem/framework_extensions/controllers/action_controller.rb
296
- - lib/stratagem/framework_extensions/controllers/action_mailer.rb
319
+ - lib/stratagem/framework_extensions/method_invocation.rb
297
320
  - lib/stratagem/framework_extensions/models.rb
298
321
  - lib/stratagem/framework_extensions/models/adapters/active_model/detect.rb
299
322
  - lib/stratagem/framework_extensions/models/adapters/active_model/extensions.rb
@@ -307,6 +330,10 @@ files:
307
330
  - lib/stratagem/framework_extensions/models/adapters/common/extensions.rb
308
331
  - lib/stratagem/framework_extensions/models/adapters/common/metadata.rb
309
332
  - lib/stratagem/framework_extensions/models/adapters/common/tracing.rb
333
+ - lib/stratagem/framework_extensions/models/adapters/friendly_id/detect.rb
334
+ - lib/stratagem/framework_extensions/models/adapters/friendly_id/extensions.rb
335
+ - lib/stratagem/framework_extensions/models/adapters/friendly_id/metadata.rb
336
+ - lib/stratagem/framework_extensions/models/adapters/friendly_id/tracing.rb
310
337
  - lib/stratagem/framework_extensions/models/adapters/restful_authentication/detect.rb
311
338
  - lib/stratagem/framework_extensions/models/adapters/restful_authentication/extensions.rb
312
339
  - lib/stratagem/framework_extensions/models/adapters/restful_authentication/metadata.rb
@@ -318,6 +345,9 @@ files:
318
345
  - lib/stratagem/framework_extensions/models/mocking.rb
319
346
  - lib/stratagem/framework_extensions/models/tracing.rb
320
347
  - lib/stratagem/framework_extensions/rails.rb
348
+ - lib/stratagem/framework_extensions/rails2/action_controller.rb
349
+ - lib/stratagem/framework_extensions/rails2/action_mailer.rb
350
+ - lib/stratagem/framework_extensions/rails3/parameters.rb
321
351
  - lib/stratagem/interface/browser.rb
322
352
  - lib/stratagem/interface/public/images/backgrounds/content.png
323
353
  - lib/stratagem/interface/public/images/backgrounds/shadow.png
@@ -349,25 +379,12 @@ files:
349
379
  - lib/stratagem/scan/checks/capistrano/secure_deploy.rb
350
380
  - lib/stratagem/scan/checks/email_address.rb
351
381
  - lib/stratagem/scan/checks/error_pages.rb
352
- - lib/stratagem/scan/checks/filter_parameter_logging.rb
353
- - lib/stratagem/scan/checks/mongo_mapper/base.rb
354
- - lib/stratagem/scan/checks/mongo_mapper/foreign_keys_exposed.rb
355
- - lib/stratagem/scan/checks/routes.rb
356
382
  - lib/stratagem/scan/result.rb
357
383
  - lib/stratagem/scanner.rb
358
384
  - lib/stratagem/site_crawler.rb
359
385
  - lib/stratagem/snapshot.rb
360
- - lib/tasks/_old_stratagem.rake
361
- - spec/model/component_spec.rb
362
- - spec/model/components/view_spec.rb
363
- - spec/model/test_spec.rb
364
- - spec/samples/404.html.erb
365
- - spec/samples/_form.html.erb
366
- - spec/samples/index.html.erb
367
- - spec/samples/sample_model.rb
368
- - spec/samples/signup.html.erb
369
- - spec/scan/checks/email_address_spec.rb
370
- - spec/scan/checks/error_pages_spec.rb
386
+ - templates/install/environments/stratagem.rb.erb
387
+ - templates/install/tasks/stratagem.rake
371
388
  - stratagem.gemspec
372
389
  has_rdoc: true
373
390
  homepage: http://github.com/stratagem/stratagem
@@ -1,5 +0,0 @@
1
- module Stratagem::ApplicationExtensions::Controllers; end
2
-
3
- require 'stratagem/framework_extensions/controllers/action_controller'
4
- require 'stratagem/framework_extensions/controllers/action_mailer'
5
-
@@ -1,6 +0,0 @@
1
- # note -
2
- # should render views
3
- # look at form paths
4
- # anything that is "password"
5
- # should be filtered
6
- # also password, password_confirmation
@@ -1,19 +0,0 @@
1
- module Stratagem::Scan::Checks::MongoMapper
2
- class Base < Stratagem::Scan::Checks::Base
3
- alias_method :parent_result, :result
4
-
5
- def run
6
- if (self.class.method_defined?(:scan))
7
- application_model.models.each {|model|
8
- log "scanning model #{model.klass.name}"
9
- scan(model)
10
- }
11
- end
12
- end
13
-
14
- def result(hash)
15
- hash[:specialization] = :mongo_mapper
16
- parent_result(hash)
17
- end
18
- end
19
- end
@@ -1,32 +0,0 @@
1
- # Stratagem::Scan::Checks::MassAssignment
2
-
3
- module Stratagem::Scan::Checks::MongoMapper
4
- class ForeignKeysExposed < Base
5
-
6
- def description
7
- "analyzes application to find models vulnerable to mass assignment"
8
- end
9
-
10
- def scan(model)
11
- return unless model.methods_include?(:stratagem)
12
-
13
- # look up the controllers that reference it
14
- instance = model.klass.new
15
- assignable_keys = model.model_assignable_attributes & instance.stratagem.foreign_keys
16
- if (assignable_keys.size > 0)
17
- references = application_model.controllers.map {|controller| controller.modifies(model) }.flatten.compact
18
- concern_type = references.size > 0 ? :error : :best_practice
19
- solution_payload = assignable_keys
20
- result(
21
- :concern_type => concern_type,
22
- :unique => model.klass.name,
23
- :payload => model.klass.name,
24
- :component => model,
25
- :confirmed => false,
26
- :solution_payload => solution_payload
27
- )
28
- end
29
- end
30
-
31
- end
32
- end
@@ -1,16 +0,0 @@
1
- # Stratagem::Scan::Checks::EmailAddress
2
-
3
- module Stratagem::Scan::Checks
4
- class Routes < Base
5
- def run
6
- application_model.routes.invalid.each {|route|
7
- payload = {
8
- :path => route.route.segments.inject("") { |str,s| str << s.to_s },
9
- :method => route.route.conditions[:method],
10
- :requirements => route.route.requirements
11
- }
12
- result :concern_type => :best_practice, :unique => payload.inspect, :payload => payload
13
- }
14
- end
15
- end
16
- end