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

IE6にIFRAMEタグ関連の脆弱性が見つかる」記事へのコメント

  • by Anonymous Coward on 2004年11月10日 5時14分 (#650364)
    Netscapeか?
    Microsoftか?
    W3Cか?

    表現なんだからCSSでどうにかしろよ。
    • ざっとGoogleで検索した限りは、Netscape Navigator 4.xは対応しておらず、Internet Explorer 3 が最初のようですから、Microsoftなんじゃないですかね。

      親コメント
    • MSのマッチポンプだと思いますよ。

      ブラウザもサーバを扱ってた都合、サーバーの負担を減らす為
      バナーの部分を他に振り分けるために作ったのが理由だと思います。

      ま、直後に掲示板荒らしに使われましたけど
      ブラウザの環境変数にタグ入れて、
      そのページをIFRAMEで再帰させるように書くと落ちます。
    • MSNにアクセスするとIEをダウンロードしろってのを覚えてますか?
      MSのページの広告がIFRAMEをふんだんに使ったページなの
      IEを使わないと不味いわけです。

      思うのですがFirefoxが普及するとIFRAMEが消えると思いますね。
      画像のブロック機能があるんですが、広告のアドレスが外部に
      なっているものをブロックしてしまえば広告だけ消えます。
      広告を出したければ自前で出すようにしないと出ませんから
      おのずとIFRAME自身減少傾向になると思います。

      <Firefoxが有効な所>
      毎日
      • >思うのですがFirefoxが普及するとIFRAMEが消えると思いますね。

        サイボウズに代表されるintranetポータルって、iframeを使う作りの物が多いと思います。
        情報量、デザインの統一性、他ドメイン情報のリンク、iframeを使わないとひどくやっかいな代物になりますよ。
        (templateはまだマシで他サイトからのresponseをはめ込むのが…)

        逆に企業ユースでは「iframeをサポートしないブラウザが採用されない」ことになりそうですが。
        むしろゾーニングの問題でしょ。
        --
        ---- 何ぃ!ザシャー
        親コメント
      • 参考:みんな、Firefoxを褒め過ぎだ [itmedia.co.jp]

        IEがいいとか悪いとかFireFoxがいいとか悪いとか以前に、
        この意見にあるようにおらが仕様にあわせろって言う意見は
        どうも身勝手な気がしてなりません。

        この場合、FireFoxのとるべき行動は、「IFRAME無くせ」ではなく
        「IEより優れたIFRAMEタグへの対応」だと思います。
        親コメント
        • by U-Chan (6901) on 2004年11月10日 17時49分 (#650660)

          参考:みんな、Firefoxを褒め過ぎだ [itmedia.co.jp]

          itmedia の記事の中で、

          テーブルのcontent 領域内にはdivタグを入れて幅と高さを100%に設定し、CSSのoverflowの値をautoにすることで自動スクロールバーを付けた。

          :(中略)

          IEではちゃんとページを表示できた。だがFirefoxでは、divタグが親テーブルに合わせてリサイズしてくれない(スクロールバーも表示しない)。だから、下のツールバーは画面の外に消えてしまう。

          と書かれている。

          そこで示されてる先のページが今なぜか見られないのでソースが確認できないんだが、もじら組 [mozilla.gr.jp]の Web 標準化 Tips [mozilla.gr.jp] - height: n%;の正しい仕様 [mozilla.gr.jp] で紹介されている間違いを犯している可能性もある。

          もしそうだとすると、「おらが仕様にあわせろ」ってのは IE の方ってことになるなぁ。

          まあ、ソースが見られないので IE と Firefox のどちらのせいか分からないし、文句を言う先も記事を書いた人(ZDNet/USA の John Carroll って人)になるんだろうけど、ちょっと気になったので……。

          ソース見られた人います?

          親コメント
          • どうも firefox ってheight を100% にすると
            overflow: scroll が効かなくなって、
            親要素の overflow: hidden がなぜか有効に
            なってしまうようです。
            下を IE で表示させると最初の div 要素の
            内容だけスクロールで見えます。
            でも firefox だと scroll が無効になって、
            最初の 20pt 文の内容だけしか
            見ることができません。

            <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
            <html lang="ja">
            <head>
            <title></title>
            <body>
            <div style="height:20pt; overflow: hidden">
            <div style="height:100%; overflow: scroll">
            A<br>B<br>C<br>D
            </div>
            <div>
            A<br>B<br>C<br>D
            </div>
            </div>
            </body>
            </html>
            --
            -- 哀れな日本人専用(sorry Japanese only) --
            親コメント
            • 続報ですが、ここでさらに height の指定を消したり、 auto に設定したりすると IE と firefox の立場は 逆転して、スクロールバーがでるのは firefox だけ になりますね。 いずれにしろ、物理的な表示領域を越える内容が存在する場合、 overflow: scroll は有効にならないとおかしいですね。
              # head の閉じタグを忘れたり、日本語のコンテンツでもないのに lang="ja" を指定しているのは多めに見て下さい。(_O_) チェックが甘かったです。
              --
              -- 哀れな日本人専用(sorry Japanese only) --
              親コメント
              • ちょっと仰ることが良く判らないのですが。

                下を IE で表示させると最初の div 要素の 内容だけスクロールで見えます。 でも firefox だと scroll が無効になって、 最初の 20pt 文の内容だけしか 見ることができません。

                ということは、overflowプロパティが兄弟要素にも継承しないといけない、ということでしょうか。

                いずれにしろ、物理的な表示領域を越える内容が存在する場合、 overflow: scroll は有効にならないとおかしいですね。

                手許では有効になっていて、内側の前のdiv要素はスクロール表示されます。後ろのがoverflow: hiddenの影響で表示されないのは正しいのではないのですか。外側のoverflowプロパティを外すとこんな感じになります [ttcn.ne.jp]。 それを高さ20ptのボックスで切り取るとFirefoxでの描画結果になる [ttcn.ne.jp]かと思います。

                cite: 11.1.1 オーバフロー( 'overflow' 特性) [y-adagio.com]

                hidden
                この値は,内容が切り取られること及び切取り領域外で内容を表示するためのスクロール機構を提供しないほうがよいことを示す。結果として,利用者は切り取られた内容にアクセスできない。

                内側の後ろのdiv要素は、外側のoverflow: hidden;の影響によりアクセスできなくなってると思います。

                親コメント
              • >head の閉じタグを忘れたり、

                HTML 4.01のようなので、head要素の終了タグは省略できます。問題ありません。

                >日本語のコンテンツでもないのに lang="ja" を指定している

                この場合であってもlang="ja"で問題ありません。いわ
              • リンクしていただいたページにあるように overflow は継承しない属性です。
                で、親div で hidden を指定し、子の最初の div で親の height を
                越えてしまえば、二番目の div は表示されないで正しいです。

                さて、スクロールバーがでないと騒いでしまいましたが、
                親のdiv で height を 40 pt にしたら出てしまいました。
                これは firefox が悪いのか、Windows98SE が悪いのかよく
                分からなくなりました。:-)

                で、もって、なんとなく分かってきたのですが、以下でやっぱり
                firefox でスクロールバーが出ず、 IE で出ます

                <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
                <html>
                <head>
                <title></title>
                </head>
                <body>
                <div style="height:40pt; overflow: hidden" id="1">
                <div id="2">
                <div style="height:100%; overflow: auto" id="3">
                A<br>B<br>C<br>D
                </div>
                <div id="4">
                E<br>F<br>G<br>H
                </div>
                </div>
                </div>
                </body>
                </html>

                これで、id=3 の div の overflow を scroll にするとわかるの
                ですが、id=2 の div の height の計算がどうなっているかが
                問題なんじゃないかなぁと思います。
                firefox では見えないところもマウスでドラッグして選択しようと
                するとスクロールバー無しでスクロールしますし。
                --
                -- 哀れな日本人専用(sorry Japanese only) --
                親コメント
              • で、もって、なんとなく分かってきたのですが、以下でやっぱり firefox でスクロールバーが出ず、 IE で出ます

                はい。再現しました。

                で、何が問題なのですか。overflow: auto;でスクロールバーが表示されるのは必須ではないそうです。原文では "should" ですが。Mozillaではスクロールバーが表示されない挙動をするのは仕様です。

                Bug 68390 [mozilla.org] - "overflow: auto" should always display a vertical scrollbar

                もう一度書きますが、どのように描画されるべきで、Firefox (Gecko/1.7) が間違っているのかをお教え願いたいです。WinIEが、を抜きにして。

                少しくどく。 heightプロパティ [y-adagio.com]は継承せず、デフォルト値はautoです。id="3"div要素 (以下要素名省略) にはheight: 100%が指定されていますが、包含ブロック (id="2") はデフォルトのheight: autoなので明示的に指定されていない、つまり (id="3"の) 内容の高さに依存します。というわけでid="3"は内容すべてを含む大きさになります。すべてが含まれる大きさのブロックになったので、overflow: autoであってもスクロールバーが表示されなくても間違いは無いと思います。id="2"autoなので3と4の両方を含める高さになり、id="1"については高さが明示的に指定されているのでその大きさでクリッピングされます。

                手元のWinIE6は、id="1"の高さが (2を経由して) id="3"に継承されているように見えます。外側のブロックから順に計算していけばWinIE6のようになりますが、これじゃ継承しないという定義に反するように見えます…。順序ってどこに書いてあるのかな。

                私のような素人が書く文章より、heightプロパティの注意点~内容が大きい場合 [mozilla.gr.jp] / height: n%;の正しい仕様 - Web標準普及プロジェクト [mozilla.gr.jp]あたりも参考になるかと思います。

                親コメント
              • W3C のCSS2 の仕様書を読んだところ次のことがわかりました。
                1. 137 ページから height の仕様により パーセンテージの計算法は ブロックを含んでいる生成されているボックス の高さに対する割合から計算するようです。
                2. height が auto の計算法は 138 ページの10.6 章に ありますが、今注目しているのは 10.6.3 に該当します。 この場合、子要素の高さから算出するようです。
                3. 1. の計算と 2. の計算で相互に参照しあって決まらない場合は auto にする(height の percentage の定義より)
                ということなので、 id=2 のブロックの高さは id=3 とid=4 の 高さの合計になるようです。 で、id=3 の高さが決められないので、結局 100% は auto と 読み替えということですね。 ということで、firefox の方が正しいってことですかね。 id=2 の大きなブロックを id=1 の小さな窓から覗く時、 はみ出た部分を隠すようにしているってことですね。 id=3 でのパーセント指定は無効だということですね。 IE でも height:auto とすると同じになりました。 id=2 で height: inherit とすると双方同じスクロールバーが出ますね。

                結局あの「firefoxを褒めすぎだ」で使われているスタイルシート では、はみ出た部分は隠しなさいと主張しているってことですね。 で、著者がやりたい内容のスタイルはどう書けばよいやら……

                ただ、overflow 属性の hidden を読むと、firefox で ドラッグすると 隠れた部分が見えてしまうのは仕様に反するようです。 (まあ should ですが……) IE では height:auto とすれば隠れた部分を見ることができず、 仕様通りです。

                --
                -- 哀れな日本人専用(sorry Japanese only) --
                親コメント
          • このへん [srad.jp]でいろいろ書かれてた。

            上のストーリーから順に読んでたから、気づかなかったよ。

        • >この場合、FireFoxのとるべき行動は、「IFRAME無くせ」ではなく
          >「IEより優れたIFRAMEタグへの対応」だと思います。

          そうですね。
          iframeはHTML 4.01やXHTML 1.0のTransitional/Framesetという標準仕様に含まれる要素ですし。
          親コメント
      • こうやって広告を排除していった結果、インターネット上の情報はすべて有料情報となりましたとさ。とってんぱらりのぷう。
      • なんでFirefoxは<iframe>タグに対応していないかのように話してるんですか?
        うちのFirefoxでは、ちゃんと表示されますよ。
        • 対応していないしているって話、「おらが仕様のお仕着せ」って話
          組織風土の違いによるブラウザの好き嫌いって話、
          IFRAMEって結局そんなに必要な機能なのって話ではなく、
          今回のIFRAMEを始めとして、進化を止めたブラウザ・それでいて
          OS根幹と結びついているモノを使いつづけるのはセキュリティ的に
          リスクが大きいって話なんですよね。

          IFRAMEがどのようなものであれ、セキュリティが潜んでいようとも
          少なくとも直ぐに対策がとられるという事実。
          IFRAMEをまともに実装する以上に、頻繁にメンテナンスされている
          という事実が何者にも変えがたい。しかも、そ
      • つか、Extensionの話をさも本体の機能のように言うなよ。
      • by Anonymous Coward
        IFRAME対応しているしてない話しじゃなくて
        Firefoxが画像のあるサーバーを非表示にできる。
        つー話し

        大雑把なつくりのページで広告を出す場合毎回書きかえるより
        IFRAME作って外部のサイトを強制的にいれているわけですね。
        所が、表示しているページと広告のページのサーバが異なるので
        この部分を利用してブロック可能

Stay hungry, Stay foolish. -- Steven Paul Jobs

処理中...