http-headers-verifier 0.0.2 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3ca4c9049d2e31abe3169fcbec6279ac85ee414ffc8c52ddbb16b8ebb1a6fd98
4
- data.tar.gz: e56125c9ce5d715efe6030a72691188497582cff6e141091080a2e07381c5255
3
+ metadata.gz: 531d8103a717ddddb331edf9ee498798e77922d2fbcfd86f2c959b8d4ceae456
4
+ data.tar.gz: 11da67aa7fee1007f1d5c3ff429d4c4595509620ac775a7e3d2a71e2b706d669
5
5
  SHA512:
6
- metadata.gz: c52c1108d34df351f1da5cb3b00bb436c3b26934abecb060bbc5b9b526003d35088ca465a552d5338e0b89b874fee64b43e7e9835099cc35960e76289c814931
7
- data.tar.gz: 2edf8133d86339754ec519528e0490710d8f2667e60f01b1c623ab769eb3b42bf570f0c04ac6dae00ce910bc13b7bcd002681bf86110b438f0f37e1c360d47bf
6
+ metadata.gz: 9a0a85e6979c75e1459c886eb77a5b3998a27733929e4d451dbbdf6b39cd002f990d6e2abd1ce7837ed0d73512179661bd3a0854626d8b19306e2332c0ebe889
7
+ data.tar.gz: d27664777f65d3c6271c8ab6a8344e3036e1043a9a884d0a38d70a9cd5d5910c2d38bc1f332e0e337c35a46497c8617386cbc8e09346731dee634c7581b239dd
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- http-headers-verifier (0.0.2)
4
+ http-headers-verifier (0.0.8)
5
5
  typhoeus (~> 1.4)
6
6
 
7
7
  GEM
@@ -12,6 +12,7 @@ GEM
12
12
  ethon (0.12.0)
13
13
  ffi (>= 1.3.0)
14
14
  ffi (1.13.1)
15
+ rake (13.0.1)
15
16
  rspec (3.9.0)
16
17
  rspec-core (~> 3.9.0)
17
18
  rspec-expectations (~> 3.9.0)
@@ -35,7 +36,8 @@ DEPENDENCIES
35
36
  bundler
36
37
  byebug (~> 9.0)
37
38
  http-headers-verifier!
39
+ rake (>= 10.0, < 14)
38
40
  rspec (~> 3.0)
39
41
 
40
42
  BUNDLED WITH
41
- 2.1.4
43
+ 1.17.2
data/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # Http Headers Verifier
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/http-headers-verifier.svg)](https://badge.fury.io/rb/http-headers-verifier)
4
+ [![Build Status](https://travis-ci.org/AvnerCohen/http-headers-verifier.svg?branch=master)](https://travis-ci.org/AvnerCohen/http-headers-verifier)
4
5
 
5
6
  Verify a pre-defined HTTP headers configurations.
6
7
  Unlike some other similar projects, this is not meant to enforce best practices, instead it is meant to define policies on top of headers and enforce them.
@@ -27,13 +28,13 @@ Or install it yourself as:
27
28
  ### Usage
28
29
 
29
30
  ```sh
30
- usage: http-headers-verifier [comma seperated policy names] [url] [?verbose]
31
+ usage: http-headers-verifier.rb [comma seperated policy names] [url] [?verbose]
31
32
  ```
32
33
 
33
34
  #### Example
34
35
 
35
36
  ```sh
36
- $> ./http-headers-verifier.rb default,hs-default https://my.login.page/login verbose
37
+ $> http-headers-verifier.rb default,hs-default https://my.login.page/login verbose
37
38
 
38
39
  Starting verification of policies default, hs-default, hs-production:
39
40
  🍏 Expected Header 'Cache-Control' matched!
@@ -57,7 +58,7 @@ Starting verification of policies default, hs-default, hs-production:
57
58
  Or in non-verbose mode:
58
59
 
59
60
  ```sh
60
- $>./http-headers-verifier.rb default,hs-default https://my.login.page/loginlogin
61
+ $> http-headers-verifier.rb default,hs-default https://my.login.page/loginlogin
61
62
  Starting verification of policies default, hs-default, hs-production:
62
63
  🛑 Invalid cookie config 'COOKIE_NAME':
63
64
  👺 Cookie not secure.
@@ -98,4 +99,4 @@ The gem is available as open source under the terms of the [MIT License](https:/
98
99
 
99
100
  ## Code of Conduct
100
101
 
101
- Everyone interacting in the Http::Headers::Verifier project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/http-headers-verifier/blob/master/CODE_OF_CONDUCT.md).
102
+ Everyone interacting in the `Http Headers Verifier` project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/http-headers-verifier/blob/master/CODE_OF_CONDUCT.md).
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task :default => :spec
@@ -15,14 +15,16 @@ if ARGV.length != 3 && ARGV.length != 2
15
15
  exit 2
16
16
  end
17
17
 
18
- policy_arg, url, verbose = ARGV
18
+ policy_arg, @url, verbose = ARGV
19
19
  @policies = policy_arg.split(',')
20
20
 
21
21
  HttpHeadersUtils.verbose = !verbose.nil?
22
22
 
23
- actual_headers = Typhoeus.get(url, timeout: HTTP_TIMEOUT_IN_SECONDS, followlocation: true).headers
23
+ request_results = Typhoeus.get(@url, timeout: HTTP_TIMEOUT_IN_SECONDS, followlocation: true)
24
+ actual_headers = request_results.headers
24
25
 
25
26
  def verify_headers!(actual_headers, rules)
27
+ puts "Testing url: #{@url}"
26
28
  puts "Starting verification of policies #{HttpHeadersUtils.bold(@policies.join(", "))}:"
27
29
  errors = []
28
30
  checked_already = Set.new
@@ -79,7 +81,10 @@ def read_policies!(policy_files_names)
79
81
  end
80
82
 
81
83
 
82
- if verify_headers!(actual_headers, read_policies!(@policies))
84
+ if request_results.return_code != :ok
85
+ puts "🤕 Request to url #{@url} failed - #{request_results.return_code}, bailing out. "
86
+ exit 0
87
+ elsif verify_headers!(actual_headers, read_policies!(@policies))
83
88
  puts "😎 Success !"
84
89
  exit 0
85
90
  else
@@ -35,6 +35,7 @@ Gem::Specification.new do |spec|
35
35
  spec.add_development_dependency "bundler"
36
36
  spec.add_development_dependency "rspec", "~> 3.0"
37
37
  spec.add_development_dependency "byebug", "~> 9.0"
38
+ spec.add_development_dependency 'rake', '>= 10.0', '< 14'
38
39
 
39
40
  spec.add_runtime_dependency "typhoeus", "~> 1.4"
40
41
 
@@ -9,13 +9,13 @@ module HttpHeadersValidations
9
9
  end
10
10
 
11
11
  def self.assert_expected_header(expected_header, expected_value, actual_value)
12
- if (expected_value.is_a?(Regexp) && actual_value.match?(expected_value)) ||
12
+ if (!actual_value.nil? && expected_value.is_a?(Regexp) && actual_value.match?(expected_value)) ||
13
13
  (expected_value.to_s == actual_value.to_s)
14
14
  failed = false
15
15
  text = "Expected Header '#{expected_header}' matched!"
16
16
  else
17
17
  failed = true
18
- text = "Expected Header '#{HttpHeadersUtils.bold(expected_header)}' failed! '#{expected_value}' was '#{actual_value}'."
18
+ text = "Expected Header '#{HttpHeadersUtils.bold(expected_header)}' failed! '#{expected_value}' #{HttpHeadersUtils.bold('was')} '#{actual_value}'."
19
19
  end
20
20
  icon = failed ? "🛑" : "🍏"
21
21
 
@@ -1,3 +1,3 @@
1
1
  module HttpHeadersVerifier
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.8"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: http-headers-verifier
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Avner Cohen
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-07-28 00:00:00.000000000 Z
11
+ date: 2020-08-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,6 +52,26 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '9.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '10.0'
62
+ - - "<"
63
+ - !ruby/object:Gem::Version
64
+ version: '14'
65
+ type: :development
66
+ prerelease: false
67
+ version_requirements: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ version: '10.0'
72
+ - - "<"
73
+ - !ruby/object:Gem::Version
74
+ version: '14'
55
75
  - !ruby/object:Gem::Dependency
56
76
  name: typhoeus
57
77
  requirement: !ruby/object:Gem::Requirement
@@ -85,6 +105,7 @@ files:
85
105
  - Gemfile.lock
86
106
  - LICENSE.txt
87
107
  - README.md
108
+ - Rakefile
88
109
  - exe/http-headers-verifier.rb
89
110
  - headers-rules-default.yml
90
111
  - headers-rules-example.yml
@@ -101,7 +122,7 @@ metadata:
101
122
  homepage_uri: https://github.com/AvnerCohen/http-headers-verifier
102
123
  source_code_uri: https://github.com/AvnerCohen/http-headers-verifier
103
124
  bug_tracker_uri: https://github.com/AvnerCohen/http-headers-verifier/issues
104
- post_install_message:
125
+ post_install_message:
105
126
  rdoc_options: []
106
127
  require_paths:
107
128
  - lib
@@ -116,8 +137,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
116
137
  - !ruby/object:Gem::Version
117
138
  version: '0'
118
139
  requirements: []
119
- rubygems_version: 3.0.3
120
- signing_key:
140
+ rubygems_version: 3.1.4
141
+ signing_key:
121
142
  specification_version: 4
122
143
  summary: Verify a pre-defined HTTP headers configurations.
123
144
  test_files: []