タグ

ブックマーク / higayasuo.hatenablog.com (11)

  • StrutsのClassLoader脆弱性はSAStrutsに影響しません - ひがやすを技術ブログ

    Struts2に見つかった脆弱性と同様の脆弱性がStruts1系にも見つかりました。 Apache Struts 2の脆弱性が、サポート終了のApache Struts 1にも影響 HTTP(S)のリクエストでJavaのClassLoaderのメソッドが呼び出せてしまうという脆弱性です。 もう少し噛み砕いて言えば、リクエストのパラメータをJavaBeansにセットする時に、リフレクションを使い、パラメータ名にaaa.bbb.cccのようなネストした名前をサポートしているフレームワークは同様の問題が起こる可能性があります。 パラメータ名をclass.classLoader.xxxのような感じにして、ClassLoaderのメソッドを呼び出す訳です。 このような問題を起こすリフレクションフレームワークで最も有名なのは、Apache Commons BeanUtilsです。リクエストのパラメータ

    StrutsのClassLoader脆弱性はSAStrutsに影響しません - ひがやすを技術ブログ
  • JavaBeansに対するリフレクションとClassLoader脆弱性 - ひがやすを技術ブログ

    今回の問題は、(SA)Strutsだけの問題ではなく、いろんなフレームワークでもちゃんと調べた方が良い話しなので、もう少し詳しく書いておきます。 Javaで、JavaBeansのプロパティにアクセスする場合、 PropertyDescriptor[] descriptors = Introspector.getBeanInfo(クラス).getPropertyDescriptors();で取得できるPropertyDescriptorを使うことがほとんどです。この中に、classプロパティは含まれます。 ここまでは良くて、ネストしたリクエストパラメータ(class.classLoader.xxxなど)をJavaBeansにセットする時に、BeanInfo.getPropertyDescriptors()で取得したものをそのまま使うのが問題なのです。 Seasar2(BeanDesc)では、

    JavaBeansに対するリフレクションとClassLoader脆弱性 - ひがやすを技術ブログ
  • Bigtableの使い方教えます - ひがやすを技術ブログ

    GAE/Jを使うのに一番戸惑うのが、データのストレージがRDBMSではなく、Bigtableなことでしょう。 JOINが使えなかったり、WHERE句でORが使えなかったり、これまで慣れ親しんでいた方法が軒並み使えません。 これらの制限は、Bigtableに限ったことではなく、KVS(Key Value Store)型のクラウド系のデータベースではみんないえることだと思います。 最初、私も戸惑ったんだけど、いろいろ触っているうちに気付きました。昔、AS400でやってたころと一緒ジャンと。AS400とは、IBMから出ているオフコン(?)ですね。今は、System iと呼ばれているようです(最新だとまた違うようですが)。 AS400のファイル(テーブル)は、キーもしくはインデックスでアクセスします。インデックス(論理ファイル)は、ある行の特定のカラムがソートされていて、物理ファイル(テーブル)へ

    Bigtableの使い方教えます - ひがやすを技術ブログ
  • もうエンタープライズJavaなんて捨ててしまえ - ひがやすを技術ブログ

    これまでずっとなるべく言わないようにしていたのだが、もう平たく/明快に言うことにしました。 1)エンタープライズJavaはもう立ち直れないと思う。 だから、 2)GAEを勉強してそのままクラウドというバズワードに踊らされる道を真剣に考えてみて欲しい。 これまでは、1)は言わずに、2)だけ言ってきた。で、「クラウド」の中でも、私が知っている「GAEで開発する」ことの楽しさをなるべく具体的に紹介するようにしてきた訳なのであるが、前半も言うことにしました。 その理由は、若い人に早く気づいて欲しいから。年を取ったら駄目、というわけではないが、あるフレームワークになれて、その経験が長くなってくると、進路変更は大変になる。ところが、多くの人が「もはやそのフレームワークは、時代にあっていない」と気づく頃には、そういう「進路変更大変状態」になってしまっていることが多い訳です。 というわけで、明言することに

    もうエンタープライズJavaなんて捨ててしまえ - ひがやすを技術ブログ
  • IBMの問題はアメリカナイズされた老害 - ひがやすを blog

    IBM周辺でトラブルが続出している。IBMの下請けとしてサブシステムの開発に携わっていたソフトウェア企業が4億円近い負債を抱え、2008年10月中にも破産手続きに入る。同社は、IBMから追加費用の支払いが行われていなかったと主張して訴訟準備に入っていたという。ほかにも、スルガ銀行やソフト開発会社など、IBMを相手取った訴訟も続発しているのだ。 この訴訟続発を問題のように受け止めている人も多いようだけど、IBM自身にとっては、そんなに問題じゃないと思う。ユーザーの発注が確定しなくてもその先の作業を進めるために下請けに先行発注したりすることがなくなったり、不採算案件は最初からやらない、あるいは早期に手を引くことが、徹底されたからだと思うから。 これまで、日的な空気を読むビジネスから、アメリカ的な白黒はっきりな契約ベースになったということなので、一方的に悪いことではない。 でも、契約を交わ

    IBMの問題はアメリカナイズされた老害 - ひがやすを blog
  • NTTデータとの決闘シリーズ第二幕 - ひがやすを技術ブログ

    昨日は、NTTデータとの決闘シリーズ第二幕。戦闘服には、かりゆしウェアを選びました。 今回は、データの顧客であるユーザ企業からも参加していただきました。この人はKさんと呼ぶことにします。Kさんは、現在Seasar2(SAStruts, S2JDBC)を使って、プログラミングファースト開発を実践されている先進的なユーザです。BtoCのサイトを作っていると考えてください。 プログラミングファースト開発の詳細はこちら。 http://d.hatena.ne.jp/higayasuo/20080501/1209636051 http://d.hatena.ne.jp/higayasuo/20080721/1216607451 最初のテーマは「品質」。データとしては、 テストコードのカバレッジやバグ密度などで品質を確保しようとしている。 でも、品質に問題があるプロジェクトも残念ながら存在する。 品質

    NTTデータとの決闘シリーズ第二幕 - ひがやすを技術ブログ
  • Webアプリで使用されているフレームワークランキング - ひがやすを技術ブログ

    2008年5月に行なわれた大手調査会社の結果が興味深いものでした。従業員50人以上の企業をランダムに6000社選び、アンケートをとったそうです。日の結果で、数値は%。言語は、Javaだけではなく、すべての言語が対象です。 EJB3.0(11) 独自フレームワーク(10.6) Struts(10.2) JSF(3.2) TopLink(2.4) Hibernate(1.1) Seasar類(0.9) iBATIS(0.4) Spring(0.4) Torque(0.4) その他(6.7) 利用なし(59.8) Seasar類か、微妙な表現だ(笑)、数値は意外と高いですね。EJB3やJSFが高いのが意外。Strutsが意外と低い。TopLinkがHibernateより高いのも意外。.NET系は利用無しに含まれているんでしょうね。 Seasarがトップ10に入っているなんて、とても光栄です。今

    Webアプリで使用されているフレームワークランキング - ひがやすを技術ブログ
    smartstyle
    smartstyle 2008/08/07
    こういうリアルな情報はありがたいなぁ。
  • 肥大化し続けるフレームワークは衰退する - ひがやすを技術ブログ

    フレームワークが、最初登場したときは、必要な機能が足りなかったり、バグがあったりするものです。それが、ユーザに辛抱強く使ってもらうことで、機能が強化され、バグは修正され、安定していきます。 そうすると、ユーザも増えていき、さらに機能も強化されていきます。 機能を強化するというと聞こえはいいのですが、悪い言い方をすると、どんどん肥大化していきます。 肥大化していく中で、あるポイントを過ぎるとユーザは、重い、あるいは、機能過剰と感じ、離れていく。 このことに、フレームワークを作っているほうは気が付かない。自分たちは中身を良く知っているから、覚えることがたくさんあるとは感じないし、自分たちで必要だと思って追加したんだから、不要な機能があるとは感じない。 既存のユーザは、新機能だけを差分で覚えればよいので、そんなに負担には感じないけど、新規ユーザの学習コストが大きくなり、どんどん新規ユーザが少なく

    肥大化し続けるフレームワークは衰退する - ひがやすを技術ブログ
  • TopHatenarにみる「Javaの復活」 - ひがやすを技術ブログ

    TopHatenarを知っているだろうか。 http://tophatenar.com/ はてなユーザのRSSフィード購読者数とソーシャルブックマーク獲得数のユーザランキングを表示してくれるサイトだ。 ここ2,3ヵ年の流れだと、こういうアイディアサイト(作るに時間はかからないけどアイディアが秀逸なサイト。あまり好きじゃない言葉だけどWeb2.0系サイトともいえるかも)は、Railsで作るのがはやっていた。Railsのほうが作りやすいし、注目も集めるから。 TopHatenarは、実はJavaで作られている。フレームワークはSeasar2系だ。作者は、こういっている。 このサービスは、僕が去年末ごろから持っていたアイデアを、Cubby+Mayaa+S2JDBCの使い心地を確かめる意味を込めて実装したものです。 僕がWebアプリを作る上でのフレームワークの好みは、S2JSF、Teeda、Rai

    TopHatenarにみる「Javaの復活」 - ひがやすを技術ブログ
  • いまさらきけない「ドメインモデル」と「トランザクションスクリプト」 - ひがやすを技術ブログ

    このネタは、私自身も何度も書いてきたけど、結局意味のある結論になったためしがありませんが、再度考え直してみたいと思います。 「ドメインモデル」と「トランザクションスクリプト」をすごく簡単に説明すると、トランザクションスクリプトとは「アクションより起動される一連の手続き」、ドメインモデルとは「ドメイン内の名詞によって体系化されたモデル」です。 トランザクションスクリプト派は、「トランザクションスクリプトの方が書くのが簡単だし、業務アプリケーションにオブジェクト指向は、ほとんど必要ない」といいます。 それに対し、ドメインモデル派は、「ドメインモデルはオブジェクト指向を生かすことができるのでメンテナンス性が良い」と主張します。 ずっと平行線のままですね。 私は一番最初に「ユースケースと一対一にサービスクラスを設け、ビジネスロジックはサービスクラスに記述する」という主張をしてました。 記念すべき(

    いまさらきけない「ドメインモデル」と「トランザクションスクリプト」 - ひがやすを技術ブログ
  • Seasar2でサクサクか炎上か - ひがやすを技術ブログ

    可燃プロジェクトに飛び込むことになりました。下記のような炎上する要素満載。 関係者各社に告知済みのためカットオーバーは伸ばせない 外部仕様を策定した会社は行方不明 外部仕様はあるが、OS も AP サーバも環境もアーキテクチャーも未定 外部仕様を分かる人がいないw 開発は 3 社合同なのにソース管理方式も決まってない DB アーキテクト不在っぽい フレームワークに詳しい人がいない AJAX っぽいのたくさん お金がない、規模はわりとでかい、納期短い、残業禁止、増員不可 最初このエントリを見たとき、4/1だったこともあり、一瞬ネタかなと思ったんですが、その後に、SAStrutsとS2JDBCに対する具体的な質問がいくつもあり、私のほうもできる限り質問に答えました。 その後、どうなったのか気がかりだったんですが、今見たらこんな書き込みが 開発メンバからは、簡単で楽でいい! 1 機能が 1 時間

    Seasar2でサクサクか炎上か - ひがやすを技術ブログ
  • 1