diff options
author | Aaron Patterson <tenderlove@ruby-lang.org> | 2021-05-10 09:50:06 -0700 |
---|---|---|
committer | Aaron Patterson <tenderlove@ruby-lang.org> | 2021-05-13 09:36:23 -0700 |
commit | cb50aa8d3fb8be01897becff77b4922b12a0ab4c (patch) | |
tree | 400c2acb636fe2e4f0a56920165648f28132a9cd /test/psych/visitors/test_to_ruby.rb | |
parent | 64bee7e2dee741a9f64e5c1b2122c07ef3e6c81a (diff) | |
download | psych-cb50aa8d3fb8be01897becff77b4922b12a0ab4c.zip |
Introduce `Psych.unsafe_load`
In future versions of Psych, the `load` method will be mostly the same
as the `safe_load` method. In other words, the `load` method won't
allow arbitrary object deserialization (which can be used to escalate to
an RCE). People that need to load *trusted* documents can use the
`unsafe_load` method.
This commit introduces the `unsafe_load` method so that people can
incrementally upgrade. For example, if they try to upgrade to 4.0.0 and
something breaks, they can downgrade, audit callsites, change to
`safe_load` or `unsafe_load` as required, and then upgrade to 4.0.0
smoothly.
Diffstat (limited to 'test/psych/visitors/test_to_ruby.rb')
-rw-r--r-- | test/psych/visitors/test_to_ruby.rb | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/test/psych/visitors/test_to_ruby.rb b/test/psych/visitors/test_to_ruby.rb index e1a0056..3d4608b 100644 --- a/test/psych/visitors/test_to_ruby.rb +++ b/test/psych/visitors/test_to_ruby.rb @@ -20,13 +20,13 @@ module Psych end def test_tz_00_00_loads_without_error - assert Psych.load('1900-01-01T00:00:00+00:00') + assert Psych.unsafe_load('1900-01-01T00:00:00+00:00') end def test_legacy_struct Struct.send(:remove_const, :AWESOME) if Struct.const_defined?(:AWESOME) foo = Struct.new('AWESOME', :bar) - assert_equal foo.new('baz'), Psych.load(<<-eoyml) + assert_equal foo.new('baz'), Psych.unsafe_load(<<-eoyml) !ruby/struct:AWESOME bar: baz eoyml |