Merge pull request #777 from mastahyeti/safe_yaml

Safe YAML
This commit is contained in:
Parker Moore 2013-01-25 08:22:10 -08:00
commit 4041579b70
13 changed files with 22 additions and 10 deletions

View File

@ -30,6 +30,7 @@ Gem::Specification.new do |s|
s.add_runtime_dependency('kramdown', "~> 0.13.4") s.add_runtime_dependency('kramdown', "~> 0.13.4")
s.add_runtime_dependency('pygments.rb', "~> 0.3.2") s.add_runtime_dependency('pygments.rb', "~> 0.3.2")
s.add_runtime_dependency('commander', "~> 4.1.3") s.add_runtime_dependency('commander', "~> 4.1.3")
s.add_runtime_dependency('safe_yaml', "~> 0.4")
s.add_development_dependency('rake', "~> 0.9") s.add_development_dependency('rake', "~> 0.9")
s.add_development_dependency('rdoc', "~> 3.11") s.add_development_dependency('rdoc', "~> 3.11")

View File

@ -18,7 +18,7 @@ require 'rubygems'
# stdlib # stdlib
require 'fileutils' require 'fileutils'
require 'time' require 'time'
require 'yaml' require 'safe_yaml'
require 'English' require 'English'
# 3rd party # 3rd party

View File

@ -1,7 +1,7 @@
require 'rubygems' require 'rubygems'
require 'sequel' require 'sequel'
require 'fileutils' require 'fileutils'
require 'yaml' require 'safe_yaml'
# NOTE: This converter requires Sequel and the MySQL gems. # NOTE: This converter requires Sequel and the MySQL gems.
# The MySQL gem can be difficult to install on OS X. Once you have MySQL # The MySQL gem can be difficult to install on OS X. Once you have MySQL

View File

@ -1,7 +1,7 @@
require 'rubygems' require 'rubygems'
require 'sequel' require 'sequel'
require 'fileutils' require 'fileutils'
require 'yaml' require 'safe_yaml'
# NOTE: This migrator is made for Joomla 1.5 databases. # NOTE: This migrator is made for Joomla 1.5 databases.
# NOTE: This converter requires Sequel and the MySQL gems. # NOTE: This converter requires Sequel and the MySQL gems.

View File

@ -1,4 +1,4 @@
require 'yaml' require 'safe_yaml'
require 'fileutils' require 'fileutils'
module Jekyll module Jekyll

View File

@ -5,7 +5,7 @@
require 'rubygems' require 'rubygems'
require 'sequel' require 'sequel'
require 'fileutils' require 'fileutils'
require 'yaml' require 'safe_yaml'
# NOTE: This converter requires Sequel and the MySQL gems. # NOTE: This converter requires Sequel and the MySQL gems.
# The MySQL gem can be difficult to install on OS X. Once you have MySQL # The MySQL gem can be difficult to install on OS X. Once you have MySQL

View File

@ -13,7 +13,7 @@ require 'rss/1.0'
require 'rss/2.0' require 'rss/2.0'
require 'open-uri' require 'open-uri'
require 'fileutils' require 'fileutils'
require 'yaml' require 'safe_yaml'
module Jekyll module Jekyll
module MigrateRSS module MigrateRSS

View File

@ -1,7 +1,7 @@
require 'rubygems' require 'rubygems'
require 'sequel' require 'sequel'
require 'fileutils' require 'fileutils'
require 'yaml' require 'safe_yaml'
# NOTE: This converter requires Sequel and the MySQL gems. # NOTE: This converter requires Sequel and the MySQL gems.
# The MySQL gem can be difficult to install on OS X. Once you have MySQL # The MySQL gem can be difficult to install on OS X. Once you have MySQL

View File

@ -2,7 +2,7 @@
require 'fileutils' require 'fileutils'
require 'rubygems' require 'rubygems'
require 'sequel' require 'sequel'
require 'yaml' require 'safe_yaml'
module Jekyll module Jekyll
module Typo module Typo

View File

@ -1,7 +1,7 @@
require 'rubygems' require 'rubygems'
require 'sequel' require 'sequel'
require 'fileutils' require 'fileutils'
require 'yaml' require 'safe_yaml'
# NOTE: This converter requires Sequel and the MySQL gems. # NOTE: This converter requires Sequel and the MySQL gems.
# The MySQL gem can be difficult to install on OS X. Once you have MySQL # The MySQL gem can be difficult to install on OS X. Once you have MySQL

View File

@ -3,7 +3,7 @@
require 'rubygems' require 'rubygems'
require 'hpricot' require 'hpricot'
require 'fileutils' require 'fileutils'
require 'yaml' require 'safe_yaml'
require 'time' require 'time'
module Jekyll module Jekyll

View File

@ -0,0 +1,4 @@
---
test: !ruby/hash:DoesNotExist {}
---
Real content starts here

View File

@ -29,6 +29,13 @@ class TestConvertible < Test::Unit::TestCase
assert_match(/#{File.join(@base, name)}/, out) assert_match(/#{File.join(@base, name)}/, out)
end end
should "not allow ruby objects in yaml" do
out = capture_stdout do
@convertible.read_yaml(@base, 'exploit_front_matter.erb')
end
assert_no_match /undefined class\/module DoesNotExist/, out
end
if RUBY_VERSION >= '1.9.2' if RUBY_VERSION >= '1.9.2'
should "not parse if there is encoding error in file" do should "not parse if there is encoding error in file" do
name = 'broken_front_matter3.erb' name = 'broken_front_matter3.erb'