パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

国税庁のWeb確定申告書作成システム、作ってみたら他人の申告書」記事へのコメント

  • セッション管理を全くしてなかったってこと?
    • Servletで作ったが、実はスレッドセーフでなかったとか。

      # 昔それで情報流出するバグを見たことがあるID

      • 後学のためにお聞きしたいのですが、
        具体的にはどのようなバグだったのでしょう?
        --
        May the source be with you... always.
        • Re:え…? (スコア:2, おもしろおかしい)

          ぱっと思いついたありがちな理由は、 Servletで何も考えずにフィールドを作っちゃった [atmarkit.co.jp] 。他にもいろいろありそうですが。

          この例では、マルチスレッドモデルでServletを動作させていたため、スレッド間でインスタンス変数paramが共有され問題となったのである。つまり、複数の端末から同時にServletへアクセスすると、paramの値がスレッドごと

          • Re:え…? (スコア:2, 参考になる)

            by G7 (3009) on 2004年02月05日 11時52分 (#489275)
            #foe問題で忙しい(笑)時に限って面白そうなネタが目白押しなのは、foe問題を流したいという陰謀か?と思ってしまったり(藁

            Servletと「アプリ」とを等価だと思ったら嵌まりますよね。
            Servletは結局、状態を持たないようにコーディングするのがお洒落つーかマトモ。
            状態は、Sessionにぶら下げるカタチで別途用意したオブジェクトに、持たせるべき。

            デスクトップ(^^;アプリはメモリ上に実行コードと状態とが一対一で存在する
            (厳密には違うのかも知れないが、OSがメモリマップによってそれを隠蔽する)
            わけだけど、Servlet方式だと1つのコードに対してProcess(==Session)じみた状態が複数つくことになる。
            なので、所謂状態はServlet(==コード)に持たせてはいけない、という配分をするのが、自然なOOデザイン。

            あと、同じような心配は、バック(?)のDBのほうのSessionについてもいえそうです。
            ん。JDBC風にいえばConnectionかな。
            少なくとも一人(1Session)につき排他的に1つのConnectionが
            DB系の処理をしてる瞬間には割り当てられていないとならん。

            あと、中間ファイルにも充分気をつけないとね。
            てーか、出来るだけ中間ファイルを作らないのが吉。
            Sessionとかのメモリ上のものは「無名」で作れるけど、
            ファイルは(現代の普通のOSでは)「無名」に出来ないので、
            排他制御のために名前の管理をもしないとならなくなる。
            たるい。

            #forkやpopenを知らないばっかりに中間ファイルを作る、ってのは寒いので勉強して欲しいからG7
            親コメント
            • >Servletと「アプリ」とを等価だと思ったら嵌まりますよね。
              >Servletは結局、状態を持たないようにコーディングするのがお洒落つーかマトモ。
              >状態は、Sessionにぶら下げるカタチで別途用意したオブジェクトに、持たせるべき。

              ServletのSessionオブジェクトは、単なる変数のテーブル。
              (更新をトリガにEvent発生とかできるけどね。)
              対して、M$とかのAPIでは、Session==アプリみたいな、素人に判り易い構造になってたと記憶。
              Sun/Javaの "Simple is Best" の信念には、時々はっとさせられる事が多いのだけど。JavaのSession管理のデザインは、シンプル化し過ぎて
              • >ServletのSessionオブジェクトは、単なる変数のテーブル。

                Javaだとそれが限界でしょうね。
                動的性を捨ててる言語だから。

                そういう意味ではBSFにでも期待したほうがいいのかも。
                つまり動的な言語に仕事を依頼するってカタチね。

                そういやCocoonとやらのフロー記述言語はJavaScriptベースだそうですね。
                JavaScといえばHashtableとObjectが一体化したような言語仕様なわけで、
                原理的(^^;には正にお悩みの問題を直接解決しちゃう言語。

                まあ、それ以前に、Java言語自体がウザイというご意見ならば、賛同。
                俺の元意見も、Java選ばざるを得ないならばという限定つきっす。

                >>Servlet方式だと1つのコードに対してProcess(==Session)じみた状態が複数つくことになる
                >Processじゃなく、Threadだよん(藁

                ん?あ。
                「じみた」までで一括りのつもりです。
                「Processじみた状態」ね。
                #たしかに日本語の組み合わせが変だったな。

                あと、ProcessとThreadの違いについて噛み付かれる(^^;のでしたら、
                「Lightweight Process」という言葉もご存知ですよね?
                ProcessとThreadは、似てる面もあれば違う面もあるわけです。

                デスクトップ/スタンドアロンなプログラムとの対比という文脈では
                「スタンドアロンのProcess」と「鯖のSessionとThread」という対比で書くのが
                向いてると思ったんで、わざとThreadと書いても良さそうな個所にProcessという単語を使ったんだけど…
                親コメント
              • by Anonymous Coward
                引篭りで /.J に張り付いて即レスとは、おめでてぇな。
                幕張でNET&COMやってるから、行って来い。

                >Javaだとそれが限界でしょうね。
                >動的性を捨ててる言語だから。
                 (後略)

                脈絡ない発言は慎むようにw
                だからキミは、愚かだと言われるんだw

                >あと、ProcessとThreadの違いについて噛み付かれる(^^;のでしたら、
                >「Lightweight Process」という言葉もご存知です
              • 隊長!G7が潜伏しているスレを発見しますた!

                 プロトタイプベース・オブジェクト指向
                 http://pc2.2ch.net/test/read.cgi/tech/1070886635/
              • by G7 (3009) on 2004年02月08日 11時37分 (#491521)
                なんかここ数日、しょぼい煽りが感冒のようにあちこちで見られるようなんで、まあ…(^^;
                まあ、うざいと言ってる割には随分親切なコメントなんで、なんかよく判らぬが。

                >引篭り
                >幕張

                残念ながら近年は篭ってないんだ。
                よって幕張云々も(なんか知らぬが、なんか有るならば)行けない。

                #幕張の某巨大企業には二度と行きたくないのでG7

                てか、多くの職業者って、会社に篭ってるんだよな。

                >>Javaだとそれが限界でしょうね。
                >脈絡ない発言は慎むようにw

                ないか?

                >このネタでは「データ共有プロセス」である事を指摘しないと、
                >的外れなんだよ

                ん?それって当たり前じゃん。
                だから「指摘」するまでもないと思うのだが。

                #ていうか「一対多」とかいう言い回しが「共有」と結局同じ事を言ってることになると思うが。
                親コメント
              • by Anonymous Coward
                >なんかここ数日、しょぼい煽りが感冒のようにあちこちで見られるようなんで、まあ…(^^;
                >まあ、うざいと言ってる割には随分親切なコメントなんで、なんかよく判らぬが。
                 
                典型的な思い過ごしでしょう。

                > >引篭り
                > >幕張
                  (略)

                微笑ましい程必死でいらっしゃるw
                幕張某社に随分怨念を持ってらっしゃるw

                >#ていうか「一対多」とかいう言い回しが「共有」と結局同じ事を言ってることになると思うが。

                G7氏の全発言をヲッチしないと、レスつけちゃいけないのかぁw
                それは大変w
                プロセス云々を指摘された段階で、それを言うべきでしょうね。

人生の大半の問題はスルー力で解決する -- スルー力研究専門家

処理中...