今日 Ruby-1.9.3-p392 にアップグレードした後、REXML は特定のサイズを超える XML 応答を取得しようとするとランタイム エラーをスローします。長さのしきい値に達すると、次のエラーが発生します。
Error occurred while parsing request parameters.
Contents:
RuntimeError (entity expansion has grown too large):
/.rvm/rubies/ruby-1.9.3-p392/lib/ruby/1.9.1/rexml/text.rb:387:in `block in unnormalize'
これは最新の Ruby バージョンで変更されたことに気付きました: http://www.ruby-lang.org/en/news/2013/02/22/rexml-dos-2013-02-22/
簡単な修正として、サイズをREXML::Document.entity_expansion_text_limit
より大きな数値に変更したところ、エラーはなくなりました。
リスクの少ない解決策はありますか?