1

私のサイトは現在死んでいるので、これがどれほど緊急であるかを説明することはできません。

状況:数日前、Herokuから「必要なアクション:Railsのセキュリティの脆弱性」という電子メールを受け取り、Railsをバージョン「3.2.11」に更新するようにアドバイスしました。電子メールのすべての手順を実行した後、自分のWebサイトを開こうとしました。自分のサイトを開くことができないのを見て、私は非常に驚きました。私のサイトはで作られていRefineryCMSます。

gitを使用して、すべてが正常に機能していた以前の時点にサイトを復元することは可能ですか?

サイトをローカルで実行すると、次のエラーが発生します。

ActiveRecord :: RecordNotFound in Refinery :: PagesController#home

id=torte-za-rodendanのRefinery::Pageが見つかりませんでした

..。

app / views / stranice / naslovnica / _favourite_products.html.erb:7:in `_app_views_stranice_naslovnica__favourite_products_html_erb__4156700835010289094_66485000 '

app / views / refinery / pages / home.html.erb:16:in `_app_views_refinery_pages_home_html_erb ___ 2482419061129865361_67

4

1 に答える 1

3

はい、Heroku からメールが届きました。

サイトは以前に git でバージョン管理されていたため、次の手順に従って最後のコミットを元に戻すことができます。

ただし、上記のことを本当に行う必要があるかどうかはわかりません。heroku アプリが rails 3.2.11 で動作することを確認する必要があるだけです。これはかなり深刻なセキュリティ上の問題です。おそらく、heroku は十分に迅速にアップグレードされていないサイトをブロックすることさえあります。

次の手順を実行します:

  • テストを実行し、すべてが機能することを確認します
  • git を使用して新しいブランチを開きます ( git checkout -b new_rails)
  • Gemfile で Rails 3.2.11 を変更します
  • environment.rb で RAILS_GEM_VERSION を「3.2.11」に変更します。
  • 走るbundle update rails
  • テストを実行して、すべてがまだ機能するかどうかを確認します
  • そうでない場合は、次のようにして古いブランチに戻りgit checkout masterます。オプションで、次のようにして新しいブランチを削除しますgit branch -D new_rails

新しいブランチでのみ実行すると、何も壊れません。

その後もエラーが発生する場合は、heroku のログの内容をお知らせください。

于 2013-01-12T16:10:42.927 に答える