rack-protection 0.1.0 → 1.0.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.

Potentially problematic release.


This version of rack-protection might be problematic. Click here for more details.

data/README.md CHANGED
@@ -43,6 +43,7 @@ Prevented by:
43
43
  * `Rack::Protection::JsonCsrf`
44
44
  * `Rack::Protection::RemoteReferrer` (not included by `use Rack::Protection`)
45
45
  * `Rack::Protection::RemoteToken`
46
+
46
47
  ## Cross Site Scripting
47
48
 
48
49
  Prevented by:
@@ -70,7 +71,6 @@ Prevented by:
70
71
 
71
72
  ## IP Spoofing
72
73
 
73
-
74
74
  Prevented by:
75
75
 
76
76
  * `Rack::Protection::IPSpoofing`
@@ -78,3 +78,17 @@ Prevented by:
78
78
  # Installation
79
79
 
80
80
  gem install rack-protection
81
+
82
+ # History
83
+
84
+ ## v0.1.0 (2011/06/20)
85
+
86
+ First public release.
87
+
88
+ ## v1.0.0 (2011/09/02)
89
+
90
+ First stable release.
91
+
92
+ Changes:
93
+
94
+ * Fix bug in JsonCsrf
@@ -7,7 +7,7 @@ module Rack
7
7
  # Supported browsers:: all
8
8
  # More infos:: http://flask.pocoo.org/docs/security/#json-security
9
9
  #
10
- # JSON GET APIs are volnurable to being embedded as JavaScript while the
10
+ # JSON GET APIs are vulnerable to being embedded as JavaScript while the
11
11
  # Array prototype has been patched to track data. Checks the referrer
12
12
  # even on GET requests if the content type is JSON.
13
13
  class JsonCsrf < Base
@@ -15,7 +15,7 @@ module Rack
15
15
 
16
16
  def call(env)
17
17
  status, headers, body = app.call(env)
18
- if headers['Content-Type'].to_s.split(';', 2).first.strip == 'application/json'
18
+ if headers['Content-Type'].to_s.split(';', 2).first =~ /^\s*application\/json\s*$/
19
19
  result = react(env) if referrer(env) != Request.new(env).host
20
20
  end
21
21
  result or [status, headers, body]
@@ -7,8 +7,8 @@ module Rack
7
7
  module VERSION
8
8
  extend Comparable
9
9
 
10
- MAJOR = 0
11
- MINOR = 1
10
+ MAJOR = 1
11
+ MINOR = 0
12
12
  TINY = 0
13
13
  SIGNATURE = [MAJOR, MINOR, TINY]
14
14
  STRING = SIGNATURE.join '.'
@@ -2,19 +2,23 @@
2
2
  Gem::Specification.new do |s|
3
3
  # general infos
4
4
  s.name = "rack-protection"
5
- s.version = "0.1.0"
5
+ s.version = "1.0.0"
6
6
  s.description = "You should use protection!"
7
7
  s.homepage = "http://github.com/rkh/rack-protection"
8
8
  s.summary = s.description
9
9
 
10
10
  # generated from git shortlog -sn
11
11
  s.authors = [
12
- "Konstantin Haase"
12
+ "Konstantin Haase",
13
+ "Corey Ward",
14
+ "Fojas"
13
15
  ]
14
16
 
15
17
  # generated from git shortlog -sne
16
18
  s.email = [
17
- "konstantin.mailinglists@googlemail.com"
19
+ "konstantin.mailinglists@googlemail.com",
20
+ "coreyward@me.com",
21
+ "developer@fojasaur.us"
18
22
  ]
19
23
 
20
24
  # generated from git ls-files
@@ -20,4 +20,13 @@ describe Rack::Protection::JsonCsrf do
20
20
  get('/', {}).should be_ok
21
21
  end
22
22
  end
23
+
24
+ describe 'not json response' do
25
+
26
+ it "accepts get requests with 304 headers" do
27
+ mock_app { |e| [304, {}, []]}
28
+ get('/', {}).status.should == 304
29
+ end
30
+
31
+ end
23
32
  end
metadata CHANGED
@@ -1,19 +1,21 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-protection
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 1.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - Konstantin Haase
9
+ - Corey Ward
10
+ - Fojas
9
11
  autorequire:
10
12
  bindir: bin
11
13
  cert_chain: []
12
- date: 2011-06-20 00:00:00.000000000Z
14
+ date: 2011-09-02 00:00:00.000000000Z
13
15
  dependencies:
14
16
  - !ruby/object:Gem::Dependency
15
17
  name: rack
16
- requirement: &2153646760 !ruby/object:Gem::Requirement
18
+ requirement: &2151828860 !ruby/object:Gem::Requirement
17
19
  none: false
18
20
  requirements:
19
21
  - - ! '>='
@@ -21,10 +23,10 @@ dependencies:
21
23
  version: '0'
22
24
  type: :runtime
23
25
  prerelease: false
24
- version_requirements: *2153646760
26
+ version_requirements: *2151828860
25
27
  - !ruby/object:Gem::Dependency
26
28
  name: escape_utils
27
- requirement: &2153646220 !ruby/object:Gem::Requirement
29
+ requirement: &2151828040 !ruby/object:Gem::Requirement
28
30
  none: false
29
31
  requirements:
30
32
  - - ! '>='
@@ -32,10 +34,10 @@ dependencies:
32
34
  version: '0'
33
35
  type: :runtime
34
36
  prerelease: false
35
- version_requirements: *2153646220
37
+ version_requirements: *2151828040
36
38
  - !ruby/object:Gem::Dependency
37
39
  name: rack-test
38
- requirement: &2153645700 !ruby/object:Gem::Requirement
40
+ requirement: &2151827300 !ruby/object:Gem::Requirement
39
41
  none: false
40
42
  requirements:
41
43
  - - ! '>='
@@ -43,10 +45,10 @@ dependencies:
43
45
  version: '0'
44
46
  type: :development
45
47
  prerelease: false
46
- version_requirements: *2153645700
48
+ version_requirements: *2151827300
47
49
  - !ruby/object:Gem::Dependency
48
50
  name: rspec
49
- requirement: &2153645080 !ruby/object:Gem::Requirement
51
+ requirement: &2151826180 !ruby/object:Gem::Requirement
50
52
  none: false
51
53
  requirements:
52
54
  - - ~>
@@ -54,10 +56,12 @@ dependencies:
54
56
  version: '2.0'
55
57
  type: :development
56
58
  prerelease: false
57
- version_requirements: *2153645080
59
+ version_requirements: *2151826180
58
60
  description: You should use protection!
59
61
  email:
60
62
  - konstantin.mailinglists@googlemail.com
63
+ - coreyward@me.com
64
+ - developer@fojasaur.us
61
65
  executables: []
62
66
  extensions: []
63
67
  extra_rdoc_files: []
@@ -114,7 +118,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
114
118
  version: '0'
115
119
  requirements: []
116
120
  rubyforge_project:
117
- rubygems_version: 1.8.5
121
+ rubygems_version: 1.8.6
118
122
  signing_key:
119
123
  specification_version: 3
120
124
  summary: You should use protection!