2014-09-26(金) [長年日記]
■ Shellshock対策
Bashに発見されたいわゆる「Shellshock脆弱性」、昨日の朝から大騒ぎで、しばらくはセキュリティ界隈の主要な話題になりそうな気配でけっこうなことだけど(ぜんぜんけっこうじゃない)、今年はHeartbleedといい派手なのが多すぎて気の休まる暇がないよ。
運用しているサーバはすでに対策品が出ていたのでアップデートするだけだったけど、公開しているgemなんかが奥のほうでsystemとか呼んでいたら困る。というか自作のkindlegen gemが内部でsystemu gemを使ってkindlegenコマンドを実行してるんだよな。中を見てみたら、IO.popen使ってるので対応しておいた方が良さそう。
とりあえず不要な環境変数を削ることを考えるけど、systemu側ではどの環境変数を残せばいいのか判断つかないので、呼び出し元でなんとかしないといけないか……。ということで呼び出し前にENVをバックアップしてから空っぽにし、終わったら元にもどすという感じにしたけど、いいのかなぁ。もっとスマートなやり方がきっとあるとは思うけど。
追記 (2014-09-30)
なかださんにENVに生えてるメソッド群を教えてもらったので(ぜんぜん知らんかったよそんなの)、それを使うように変更。もっとも動作に変わりはないので、gemのアップデートはせず。そもそもsystemuを使うべきではないという話もあるので、それは追って。
さらに追記
Open3.capture3を使うと良いと教えてもらったので調べてみたら、systemuの機能をほぼそのまま内包していることがわかったのでこちらで置き換えることに。めでたしめでたし。