タグ

javascriptとsecurityに関するnyamappのブックマーク (15)

  • window.nameによるクロスドメイン通信 - snippets from shinichitomita’s journal

    随分前になるが、SitePenの人 (dojo) が書いたブログに window.nameを使ったクロスドメイン通信についてまとめられていた。 window.name Transport - Blog | SitePen 気になっていたがちゃんと読む時間がなかったので、今ごろ見てみる。抜粋して訳。 window.name による通信 The window.name transport is a new technique for secure cross-domain browser based data transfer, and can be utilized for creating secure mashups with untrusted sources. window.name is implemented in Dojo in the new dojox.io.windowN

    window.nameによるクロスドメイン通信 - snippets from shinichitomita’s journal
  • XSSを回避しつつ、テンプレートからJavaScriptにJSONで値を渡す方法 - blog.nomadscafe.jp

    HTMLのscriptタグ内にデータを埋め込む際のエスケープ処理モジュール書いた」に引き続いて、XSSを避けつつ複数の値をJSONで渡す方法。 答えはmalaさんが書いてます テンプレートエンジンでJSONを生成する(多くの場合間違えるので、推奨しない) scriptタグの中でJSONを使わない 可能であればJSONライブラリのオプションで<>/いずれかをエスケープする。 生成されたJSON文字列の<>/いずれかを正規表現などを使って置換する。 JSONのvalueに当たる部分には「HTMLエスケープ済みの文字列を入れる」という規約を設けて事前にエスケープする。 の3番目以降。 ということで実装してみる。目標としてはXslateのfilterとして実装 [% hashref | json %] の様な形をとり、JSONのvalueにあたる部分はすべてHTML Escapeし、HTML中に

  • XSSの攻撃手法いろいろ - うなの日記

    html5securityのサイトに、XSSの各種攻撃手法がまとめられているのを発見せり!ということで、個人的に「お!」と思った攻撃をサンプルつきでご紹介します。 1. CSS Expression IE7以前には「CSS Expressions」という拡張機能があり、CSS内でJavaScriptを実行できたりします。 <div style="color:expression(alert('XSS'));">a</div> 確認 @IT -[柔軟すぎる]IEのCSS解釈で起こるXSS で詳しく解説されていますが、CSSの解釈が柔軟なことともあいまって自前で無害化するのはなかなか困難。以下のようなコードでもスクリプトが実行されてしまいます。 <div style="color:expr/* コメントの挿入 */ession(alert('XSS'));">a</div> 確認 <div s

    XSSの攻撃手法いろいろ - うなの日記
  • HTML5 Security Cheatsheet

    HTML5 Security CheatsheetWhat your browser does when you look away...

  • セキュリティ情報 - iモードIDを用いた「かんたんログイン」のDNS Rebinding脆弱性

    iモードIDを用いた「かんたんログイン」のDNS Rebinding脆弱性 HASHコンサルティング株式会社 公開日:2009年11月24日 概要 iモードブラウザ2.0のJavaScriptDNS Rebinding問題の組み合わせにより、iモードIDを利用した認証機能(以下かんたんログイン)に対する不正アクセスが可能となる場合があることを確認したので報告する。危険度の高い攻撃手法であるので、サイト運営者には至急の対策を推奨する。 背景携帯電話のかんたんログインとは、ケータイブラウザ(たとえばiモードブラウザ)に用意された契約者固有IDを利用した簡易的な認証であり、ユーザがIDやパスワードを入力しなくても認証が可能となる。iモードIDは、NTTドコモの提供する契約者固有IDの一種で、URLにguid=ONというクエリストリングを含めることにより、端末固有の7桁のIDがWebサーバに送

  • iモード専用サイトのhtmlソースの閲覧方法 « mpw.jp管理人のBlog

    iモードブラウザ2.0のJavaScriptを調査・研究する過程で、iモード専用サイトのhtmlソースを閲覧する方法を発見しました。 今回発見した方法を用いれば、「ドコモ・ゲートウェイ以外からのアクセスを禁止している」、「サーチエンジンのクロールを禁止している」、「XSS脆弱性が存在しない」の三つの条件を満たしているiモード専用サイトでも、htmlソースを閲覧することができます。 しかし、htmlソースを閲覧するためには、そのiモード専用サイトが別の二つの条件を満たしている必要があります。 htmlソースが閲覧可能なiモード専用サイトの条件 デフォルトホストで運用されている。(ヴァーチャルホストではない) iモードブラウザ2.0のJavaScriptからのアクセスを禁止していない。 iモード専用サイトのhtmlソースの閲覧方法 iモードブラウザ2.0のJavaScriptで、htmlソース

  • [さらに気になる]JSONの守り方

    XSSにCSRFにSQLインジェクションにディレクトリトラバーサル……Webアプリケーションのプログラマが知っておくべき脆弱性はいっぱいあります。そこで連載では、そのようなメジャーなもの“以外”も掘り下げていきます (編集部) 次は、JSONにおけるセキュリティ対策 皆さんこんにちは、はせがわようすけです。第4回「[気になる]JSONPの守り方」はJSONPについて説明しましたので、今回は「JSON」についてもセキュリティ上注意すべき点について説明します。 JSONは、XMLHttpRequestで受け取り、JavaScript上でevalするという使い方が一般的です。 まずはサーバ側から送られる情報と、クライアント側での処理、それぞれの内容を見ておきましょう。 [サーバ側] HTTP/1.1 200 OK Content-Type: application/json; charset=

    [さらに気になる]JSONの守り方
  • XPath に文字列を埋め込むときの注意 - IT戦記

    よく、以下のように XPath に文字列を埋め込む事があります document.evaluate('//*[@class="' + text + '"]', document, null, 7, null); まあ、僕もよくこんなコード書くんですけど。 でも、これって text が外部から来るものだったら、意図通りの動作をしないんですよね たとえば、以下のような例です。 var text = '"] | /hoge/fuga/piyo | .["'; document.evaluate('//*[@class="' + text + '"]', document, null, 7, null); というわけで 任意の文字列を XPath の式に変換する JavaScript を書いてみた 以下で試せます http://amachang.sakura.ne.jp/misc/xpath_es

    XPath に文字列を埋め込むときの注意 - IT戦記
  • [気になる]JSONPの守り方

    XSSにCSRFにSQLインジェクションにディレクトリトラバーサル……Webアプリケーションのプログラマが知っておくべき脆弱性はいっぱいあります。そこで連載では、そのようなメジャーなもの“以外”も掘り下げていきます (編集部) JSONPだって、セキュリティを気にしてほしい 皆さんこんにちは、はせがわようすけです。今回は、JSONPを使用する場合のセキュリティについて解説しましょう。 JSONPとは、JSON with Paddingの名称が示しているとおり、JSON形式のデータにコールバック関数の呼び出しのためのコードを付加することで、クロスドメインでデータの受け渡しを実現するためのデータ形式です。JavaScriptからクロスドメインでのデータが簡単に扱えることなどを理由に、多数のWebアプリケーションでAPIの一部としてJSONP形式でデータの提供が行われています。 具体的な例を見

    [気になる]JSONPの守り方
  • 不正操作を促す話題の攻撃手法「クリックジャッキング」、JPCERT/CCが対策法を公開

    有限責任中間法人JPCERTコーディネーションセンター(JPCERT/CC)は3月3日、クリックジャッキングに対する技術メモをPDF資料で公開した。ウェブサイト制作者や運営者を対象に、クリックジャッキング攻撃の概要や対策の1つである「X-FRAME-OPTIONS」の概要、記述方法、設定値による挙動の違いについて解説している。 クリックジャッキングは、Robert Hansen氏、Jeremiah Grossman氏が報告した、ウェブ利用者を標的とした攻撃手法。主要なブラウザ利用者すべてがこの脅威の影響を受けることが明らかになっている。2008年9月27日に「OWASP NYC AppSec 2008カンファレンス」において詳細を発表する予定が、ベンダーからの要請により直前にキャンセルされたことでも話題となった。 クリックジャッキングの手法は次の通り。まず、透過指定されたiframeなどの

    不正操作を促す話題の攻撃手法「クリックジャッキング」、JPCERT/CCが対策法を公開
  • クリックジャック - 素人がプログラミングを勉強していたブログ

    最近流行のクリックジャックについて、メモ程度にまとめておく。 一言で言うと、外部サイトのボタンをユーザが間違えてクリックしてしまうように仕向けるテクニックが、クリックジャックである。 クリックジャッキングってこうですか? わかりませんではiframeをCSSのopacityプロパティを利用して透明にして、その下にダミーのボタンを置いている。目に見えているボタンを押そうとすると、その上に被せてある透明なiframeのボタンが押されてしまう。 [Sleipnir]No Click Jacking — Gistはこの攻撃に対する防御手段として考えられたユーザースクリプトで、透明なiframeを検出する。 しかし、opacity以外にもクリックジャックをする方法はあるので不十分である。 例えば 2009-03-04_2146 - javascripter's library にスクリーンキャストを

    クリックジャック - 素人がプログラミングを勉強していたブログ
  • javascript - クリックジャック殺しなbookmarklet : 404 Blog Not Found

    2009年03月05日02:30 カテゴリLightweight Languages javascript - クリックジャック殺しなbookmarklet 意外な盲点。 主要ブラウザすべてに影響する「クリックジャッキング」攻撃とは しかし、 クリックジャック - 素人がプログラミングを勉強するブログ FirefoxユーザはNoScriptを使うか、about:configからpermissions.default.subdocumentを3にしましょう。 というのはあまりに厳しく悲しい。対策しようは果たしてないのでしょうか? その結果が、こちら。 clickUnJack javascript:(function(d,u){var s=d.createElement('script');s.charset='UTF-8';s.src=u;d.body.appendChild(s)})(do

    javascript - クリックジャック殺しなbookmarklet : 404 Blog Not Found
  • 教科書に載らないWebアプリケーションセキュリティ 第1回 [これはひどい]IEの引用符の解釈 − @IT

    XSSにCSRFにSQLインジェクションにディレクトリトラバーサル……Webアプリケーションのプログラマが知っておくべき脆弱性はいっぱいあります。そこで連載では、そのようなメジャーなもの“以外”も掘り下げていきます(編集部) 小さな話題が面白い 皆さん、はじめまして。はせがわようすけと申します。 「教科書に載らないWebアプリケーションセキュリティ」ということで、Webアプリケーションのセキュリティに関連する、普段あまり見掛けないような小さな話題を取り上げていきたいと思います。 セキュアなWebアプリケーションを実現するために、開発者の方だけでなく、Webアプリケーションの脆弱性検査を行う方々にも読んでいただきたいと思っています。重箱の隅を楊枝でほじくるような小さな話題ばかりですが、皆さんよろしくお願いします。 さて第1回は、Internet ExplorerがHTMLを解釈する際の引用

    教科書に載らないWebアプリケーションセキュリティ 第1回 [これはひどい]IEの引用符の解釈 − @IT
  • WebAppSec - WebAppSec Wiki - IEのexpressionとurl

    IEのexpressionとurl † Internet Explorer では、スタイルシート中に expression(JavaScript?の文) や background:url(JavaScript?の文) という記法を行うことで、よりダイナミックなHTMLドキュメントを作成することが可能です。 <style>input { left:expression( alert('expression!') ) }</style> <style>div { background:url(alert('URL!') ) }</style> もちろん、インラインで記述することもできます。 <div style="{ left:expression( alert('expression!') ) }"> <div style="{ background:url( alert('URL!') )

  • JavaScriptを使ってイントラネット内を外から攻撃する方法:Geekなぺーじ

    「Hacking Intranet Websites from the Outside」という講演が2006年にありました。 Black Hatでの講演です。 以下に説明する手法は既に公開されてある程度時間が経過している情報なので、ご存知の方にとっては既に古いとは思います。 詳細はプレゼン資料をご覧下さい。 概要 ファイアウォールなどに守られたイントラネットやホームネットワークの内部を攻撃する手法が解説してありました。 JavaScriptの基仕様を組み合わせて情報を収集するというものでした。 最終的には、プリンタから印刷を行ったり、ルータの設定を変更するなどの攻撃が可能になるようです。 それ以外にも、Web経由で設定変更が出来るものは状況によっては影響されるかも知れません。 プレゼン後半ではCSRF(XSRF, cross-site request forgery)も解説されていました

  • 1