タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

JavaScriptとSecurityとXSSに関するraimon49のブックマーク (48)

  • シングルクォートもきちんとエスケープする - 素人がプログラミングを勉強していたブログ

    追記2:2007-10-11 - hoshikuzu | star_dust の書斎を見ると、下に書いてるような対策では不十分なようだ。 追記:エスケープすべき文字は、Re: JavaScript内(文字列)にデータを出力する場合の適切なエスケープ手順|freeml byGMOなどを参考に。 シングルクォート(')をエスケープせずXSSの原因になっているサイトをけっこう見かけたので、どういう時問題になるのか書いておく。 JavaScriptの文字列を動的に埋め込む場合。 <script> var q = 'hoge&quot;fuga'; document.getElementById('word').appendChild(document.createTextNode(q + 'の検索結果')); </script> のように、変数に代入する文字列を動的に作っている場合、RubyCG

    シングルクォートもきちんとエスケープする - 素人がプログラミングを勉強していたブログ
    raimon49
    raimon49 2008/11/14
    >JavaScriptの文字列として埋め込む場合は<や>のエスケープは必要なく、ドキュメントに書き出す場合にinnerHTMLやdocument.writeを使わずに、innerTextもしくはtextContent、 createTextNodeなどを使えば、入力時にエスケープする混乱を避
  • XSS: 今こそXSS対策についてまとめよう - 徳丸浩の日記(2008-08-22)

    _今こそXSS対策についてまとめよう 沢出水(さわ いずみ)さんからトラックバックを頂戴した。 元々はホワイトリスト方式の優位は神話というエントリでホワイトリストはどう作る?を引用(批判)した事が発端の模様です。 一見真っ向対決しているようなので興味深く読ませていただいたのですが、正直、両者の主張の違いがわかりません。 どちらもXSS等インジェクション系の対策としてはアプリケーションで入力値が正しい形式の範囲内かチェックし、出力時に必要なエスケープ処理を行う、という結論に思えるんですけど… [ホワイトリストとブラックリストより引用] ご指摘の通りで、XSS対策は入り口でのバリデーションと表示(HTML組み立て)時のエスケープだ。しかし、元ブログの主題はホワイトリストとブラックリストの比較なので、「ただ、表面的に文章を追っただけでは『何をホワイトリストと呼ぶのか』という部分がだいぶ違う印象を

    raimon49
    raimon49 2008/08/24
    >原理から正しく学ぶということは、HTMLなりJavaScriptの文法をしっかり学ぶことでもある。
  • JavaScript のリテラルに任意の文字列を出力してみる | 水無月ばけらのえび日記

    更新: 2008年1月27日 Web アプリケーションのセキュリティガイドラインには、たいていの場合「スクリプト内に動的生成の文字列などを出力してはならない」という掟があったりするのですが、それにあえて背く場合のお話。 こんな感じの HTML 断片があったとします。 <script type="text/javascript"> <!-- foo.bar = <%= value %>; //--> </script> そして、この「<%= value %>」の部分に、ユーザが検索文字列として入力した任意の値を入れるというのが課題です。もちろん、そのまま出力すると XSS であっさり死亡するので、何らかの処理をしてから出力する必要があります。ちなみに、ユーザが何を入力したのか正確に知りたいので、任意の文字を削除したりすることはできない (削除してしまうと仕様を満たせない) と考えてください。

  • http://www.tietew.jp/articles/2007/02/07/misunderstood-html-escaping

  • XSS対策:JavaScriptのエスケープ(その4) - ockeghem's blog

    XSS対策:JavaScriptのエスケープ(その3) - ockeghem(徳丸浩)の日記にて、JavaScriptのリテラルを動的生成する場合のエスケープ方法について検討したが、id:hoshikuzuさんから、考慮がもれているという指摘を受けた(http://d.hatena.ne.jp/hoshikuzu/20071011#p1:TITLE=2007-10-11 - hoshikuzu | star_dust の書斎 - JavaScriptエスケープについて論考)。 上記は長いエントリーではあるが、要約すると、特定文字エンコードの特定のバイト●に対して、特定ブラウザにおいて「●\」が一文字「■」として解釈されるため、「"」に対するエスケープ「\"」が破綻するという意味に解釈した。 興味深い内容であるので、以下に考察してみよう。 なぜエスケープが破綻するのか 上記のようなケースはさ

    XSS対策:JavaScriptのエスケープ(その4) - ockeghem's blog
  • yohgaki's blog - いろいろ変わったXSSがありますが...

    私が知らなかっただけかもしれませんが、これにはかなり驚きました。いろんな所で問題が指摘されていますが、ECMAScriptにXML機能を追加したのはどうなんでしょうね…. 確かにかなり便利なのですが以下のコードでスクリプトが実行されることはほとんど知られていないでしょうね。 <script> 123[”+<_>ev</_>+<_>al</_>](”+<_>aler</_>+<_>t</_>+<_>(1)</_>); </script> 好むと好まざる関係なくFirefox 1.5から使えるのでWeb開発者は知っておかなればならないです。 日語訳 http://www.ne.jp/asahi/nanto/moon/specs/ecma-357.html 原文 http://www.ecma-international.org/publications/standards/Ecma-357.

    yohgaki's blog - いろいろ変わったXSSがありますが...
  • JavaScriptエスケープについて論考 - hoshikuzu | star_dust の書斎

    http://d.hatena.ne.jp/hoshikuzu/20060130#P20060130BARSFAKE http://d.hatena.ne.jp/amachang/20071010/1192012056 (IT戦記 - 一行で IE の JavaScript を高速化する方法) はじめに 次のような限定されたケースにおいてなのですが。説明上の都合でこれを課題Aと呼ぶこととします。 <SCRIPT TYPE="text/javascript"> <!-- var strA = "$data"; // ・・・以下サイト運営者による処理記述例 alert(0); //--> </SCRIPT>上記のようなケースに限定してのオハナシですけれど、$dataをエスケープする方向でのXSS対策として金床さんなどによってかつて論議されて、このままでは使えそうにないと棄却されたJavaScr

    JavaScriptエスケープについて論考 - hoshikuzu | star_dust の書斎
  • 第9回 クロスサイトスクリプティングの名称と種類 | gihyo.jp

    前回はWeb開発に不慣れな開発者が行いがちな、不適切なクロスサイトスクリプティング対策を紹介しました。今回は適切な対策を理解するために必要な、クロスサイトスクリプティングの質とクロスサイトスクリプティングの種類について解説します。 クロスサイトスクリプティングの名称 「クロスサイトスクリプティング」は、よくある攻撃方法を表した名前です。サイトをまたがって攻撃用のJavaScriptコード(スクリプト)を送るので、「⁠クロスサイト」「⁠スクリプティング」と命名したものと考えられます。 単語の頭文字を取ると「CSS」となりますが、カスケーディングスタイルシートの「CSS」と同じになり、区別できないので「XSS」と表記されるようになりました。クロスサイトスクリプティングの解説情報には「XSS」ではなく「CSS」と表記している場合もあります。 しかし残念ながらこの名前は直感的な名前とはいえません

    第9回 クロスサイトスクリプティングの名称と種類 | gihyo.jp