-
-
Notifications
You must be signed in to change notification settings - Fork 102
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Podcast 用の RSS パース時にデプロイエラーが起こる #1620
Comments
原因原因を調べるために、rexml の変更点とエラーメッセージを探したところ、下記のような処理が追加されていました。 if sum > Security.entity_expansion_text_limit
raise "entity expansion has grown too large"
end この変更で 回避方法
.oO(私たちのコード部分では、RSS Parser を使っているので、RSS Parser 側での対応が必要なのか気になりますね… 🤔💭 ) REXML::Security.entity_expansion_text_limit = 2_000_000
FM_RSS = "https://example.com/rss"
rss = RSS::Parser.parse(FM_RSS, false) coderdojo.jp/lib/tasks/podcasts.rake Lines 13 to 16 in a530169
|
@nanophate 早速の原因調査ありがとうございます!! 😻🆒✨ 現在のシステム構成では特にセキュリティ上問題になるような動的な RSS 入力はないという認識なので、僕も以下の対応が良いと思います! (≧∇≦)b✨
|
@yasulab @nanophate https://github.com/ruby/rexml/releases/tag/v3.3.5 で修正済みですので、rexml 3.3.5 を試してみて頂ければ 🙏 |
@naitoh 親切にお知らせいただきありがとうございます。先ほど、下記の PR で rexml 3.3.5 にアップデートした状態で問題なく、動く事および、デプロイ時にエラーにならない事の確認ができました...!! 💯 🚀 ✨数字も ❯ bundle exec rails podcasts:upsert
==== START podcasts:upsert ====
Frame number: 0/42
From: /Users/vivio/.code/coderdojo.jp/vendor/bundle/ruby/3.1.0/gems/rexml-3.3.5/lib/rexml/parsers/baseparser.rb:559 REXML::Parsers::BaseParser#unnormalize:
554: if entity_value
555: re = Private::DEFAULT_ENTITIES_PATTERNS[entity_reference] || /&#{entity_reference};/
556: rv.gsub!( re, entity_value )
557: binding.pry
558:
=> 559: if rv.bytesize > Security.entity_expansion_text_limit
560: raise "entity expansion has grown too large"
561: end
562: else
563: er = DEFAULT_ENTITIES[entity_reference]
564: rv.gsub!( er[0], er[2] ) if er
[1] pry(#<REXML::Parsers::BaseParser>)> rv.bytesize
=> 4098 |
産地直送...!!!! 🚜💨✨ ご丁寧なコメント&アドバイスありがとうございます!!!!(>人< )💖 |
やること
背景
RSS のサイズが大きすぎる...? cc/ @nanophate
(要ログイン) https://dashboard.heroku.com/apps/coderdojo-japan/activity/releases/3238
The text was updated successfully, but these errors were encountered: