R42日記スマートフォン用の表示で見るR42日記この日記は私的なものであり所属会社の見解とは無関係です。takahashikznITmediaに寄稿しました。昨今の状況を鑑みるに、新規案件でのStruts2の採用は余りお勧めできないと言わざるを得ません。僕はStruts2およびOGNLのソースコードを実際に読み込んだ上で、自分で危険と判断したところは独自でパッチを当てているため、報告されているような脆弱性に対して、最初から耐えられるようになっています。そもそも、OSSを採用するというのは、そういうことですし。新規案件でそのような運用を最初から織り込むのは正しい判断とは言えないでしょう。Struts1.xがEOLになりました。5年ほど更新が無かったので、やっと正式にEOLかという思いです。国内における一定規模以上のWebシステム構築では、ベンダーお抱えの『フルスタック型Webアプリケーションフレームワーク』を使うことが前提になります。NTTデータ系列ならTerasolunaとか。その手のフレームワークは大抵、作られた時代がちょうどStruts1.xの旬であったことから、Sturts1.xがベースになっています。それからおよそ10年弱、Struts1.xはそれこそ骨の髄までしゃぶる勢いで魔改造が加えられていった結果、ソースコードの隅々まで研究され尽くしてきたわけです。RequestProcessorのソースを解析して激しく拡張するとか、昔よくやったわーという懐かしさを覚える方も多いでしょう。すんの?これから各ベンダーが取りうる作戦は以下の2つかと。Struts1.xの保守を、国内の業界全体の取り組みとしてオープンソースで行う他のWebアプリケーションフレームワークに乗り換えるおそらく現実的なのは、以下の理由により1.でしょう。そもそも2008年以来ずっとそうしてきたのだし、これからも現状維持すれば良いStruts1.xで動く業務システムは星の数ほどあり、そいつらの保守を切れるわけが無い隅々まで研究され尽くしたStruts1.xの保守はぶっちゃけカンタン国内のコーダーは、JavaでWeb開発を経験した人の大半はStruts1.xの経験しか無い上、そもそもStruts1.xで何ら困ってはいない(少なくとも、僕が活動している領域ではそういう話ばっかりです)しかしEOLになった製品をこれからも新規案件で使い続けるのはヤダ!という方もいるでしょう。乗り換えるとしたら選択肢は何なのか...?という話になるわけですが、僕はStruts2をオススメします。pluginを使えば設定ファイルをほとんど書く必要が無い国内では比較的少数だが、世界的に見ればユーザー数は多いすなわち、長期間のサポートが期待できると考えて良いという特徴があります。Web上での評価は少々芳しくないようですが、Struts1.xの移行先として捉えるなら悪くない選択肢のはずです。各種Webフレームワーク比較は色々とありますので、詳しくはググってください。正統な後継とは言え、Struts1.xに依存しているコードは全部捨てる覚悟が必要です。(Scala)でしょ〜!!...という声も聞こえてきますが、それはハイスペックエンジニアを集められるベンチャーが自社サービスで使う場合の話です。現実的に揃えられる要員のスペックはお察し下さい的な、有りがちなエンタープライズ案件でScalaを適用するのは無茶です。いう現場で求められているのは、Ceylonみたいなアプローチだと思います。MVCGrailsStripesなどがオススメされているようですが、この中ではSpringMVCが適用事例を割と耳にします。最後にStruts2への乗り換えを検討されている担当者様へ。当方、国内ではまだ少数であると思われるStruts2の適用案件を多数こなし、ソースコードもかなり読み込んできました。お手伝いが必要でしたら、お声がけ下さいませ。20:26Struts1.xがEOL関連記事2017-03-08Struts2のリモートコード実行可能脆弱性(CVE-2017-5638)を分析したまたOGNL絡みの脆弱性が見つかりました。Editionを使っています。JSONの順序について月別アーカイブスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。