Using JavaScript ES2015 (ES6), ES2016, ES2017 in production
Using JavaScript ES2015 (ES6), ES2016, ES2017 in production
今回はWebアプリケーションを作ったことがない方でも分かるようクロスサイトスクリプティング脆弱性を解説します。 クロスサイトスクリプティングとは? 初めてクロスサイトスクリプティングと聞いて、どのような問題なのかすぐに理解できる人はいないと思います。サイトAに記述されたJavaScriptプログラムがサイトB上で実行されるために発生することが問題とされたので、「サイト間をまたがるスクリプトの実行」問題として、クロスサイトスクリプティング(XSS)と名前が付けられました。この命名では直感的に分かりづらい、サイト間にまたがらずHTMLメールなどにJavaScriptを挿入する攻撃でも同じ効果が得られることから、「JavaScriptインジェクション」とも呼ばれるようになっています。 図1 簡単なクロスサイトスクリプティング 例1 簡単な直接攻撃 掲示板サイトに投稿されたデータをエスケープ処
自分用メモ。ごちゃごちゃすると忘れるので、なるべくシンプルにまとめたい。 誤り、不備などあれば、随時追加修正します(ご指摘ありがとうございます)。 クロスサイトスクリプティング(cross site scripting、XSS) 概要 訪問者に目的のサイトとは別の罠サイトを踏ませて不正な処理を実行させる行為。 原因 フォームから受け取った値を、エスケープせずに画面に出力するために発生 (偽のフォームを作成する手法も有るので、JavaScriptの対策だけでは不足) 対策 HTMLの実体参照を用い、& を & に、< を < に、> を > に、" を " に、それぞれ置換する。 PHPではhtmlspecialchars関数を用いれば、一括で対策できる (ただしENT_QUOTESを設定しないとシングルクォーテーションはエスケープされない)
WebAPIの公開 APIとは、何らかの機能を提供するプログラムのことです。WebAPIとは、Webで提供されたAPIということです。たとえば、地図データを提供するAPIや商品の検索結果を提供するAPIが有名です。なるべく多くの人にアクセスしてほしい情報を持っている企業は、WebAPIとして情報を提供することが多くなりました。WebAPIという便利なインターフェースを用意することで多くのユーザにアクセスしてもらい、広告ビジネス等につなげていくのが狙いです。 またWebAPIは、多くの形式に対応していたほうが、多くのユーザに利用してもらうことができるため、なるべく多くの出力形式に対応しようとする傾向があります。以前はSOAPという形式が多く使われていましたが、実装方法が煩雑であったため、現在ではREST、JSON、JSONPのように実装がシンプルな形式のものが多く使われています。 WebAP
最終回となる今回は、Megaというサービスを題材に、クライアントサイドでの暗号化とバイナリデータの扱いについて取り上げます。 Megauploadの閉鎖と復活 2012年1月19日、Megaの前身となるMegauploadが、FBIの強制捜査を受け閉鎖しました[1]。Megauploadはオンラインストレージサービスですが、閉鎖時には登録ユーザ数が1億8,000万人、アップロードされたファイルが合計25PB(ペタバイト)あったといいます。 Megauploadのようなオンラインストレージサービスを、「サイバーロッカー」と呼びます。同種のサービスには、おおむね次のような特徴があります。 大容量のファイルをアップロードすることが可能である 同時ダウンロード数や速度が制限されていて、有料会員登録することでダウンロード速度が速くなる ファイルをアップロードすることで報酬を得られるプログラムがあ
今回は熟練したWebアプリ開発者なら常識のクロスサイトスクリプティング対策の落とし穴を紹介します。 JavaScriptを排除しているつもりで排除に失敗?! 最近はSanitize(サニタイズ)という言葉の代わりにValidation(検証)という言葉をよく聞くようになったと思います。Sanitizeの意味を辞書で調べると「汚れている物をきれいにすること」とされています。この意味の通り汚れた変数をきれいにして使えば安全に利用できるとする考え方に基づくのがサニタイズ手法です。典型的な例は、「テキストを出力する前に"<"と">"を取り除く」方法があります。 例1 "<"と">"をereg_replaceで取り除く $safe_text = ereg_replace($_GET['text'], '[<>]', ''); この$safe_textを <a href="/script.php?t
第1回外部サイトに貼り付けるJavaScriptの作法―ポリシー、速度、セキュリティ、プライバシー(3) mala 2012-07-04 第1回外部サイトに貼り付けるJavaScriptの作法―ポリシー、速度、セキュリティ、プライバシー(2) mala 2012-07-03
TOPICS Programming , Web , Security 発行年月日 2008年02月 PRINT LENGTH 284 ISBN 978-4-87311-358-6 原書 Securing Ajax Applications FORMAT Ajaxは、昨今のWebサービスでは欠かせないものとなっていますが、そのインタラクティブ性の高さゆえに多くの脆弱性を抱えており、セキュリティがますます重要になってきています。本書はAjaxアプリケーションをはじめ、Web 2.0関連のテクノロジやWebサービス全般に関しても幅広くカバー。セキュリティに関する基本知識やWebアプリケーションの持つ脆弱性にも詳しく触れています。実際に多数のアクセスを集めているWeb 2.0サイトでのケーススタディなども交え、安全なWebアプリケーションを構築するために必要な知識をコンパクトにまとめています。
JSONPの動作原理 前回はAjaxに存在するセキュリティモデルであるSame-Originポリシーを紹介し、そのSame-Originポリシーを迂回する方法とセキュリティについて見てきました。また、回避する方法の1つめとしてリバースProxyを用いた方法を紹介しました。リバースProxyを用いた方法ではセキュリティ的な問題点もありましたが、そもそもProxyサーバを用意しなければならないため、この方法は手軽に使うことはできませんでした。 そこで考え出されたのがJSONP(JavaScript Object Notation with Padding)という方法です。 それではまず簡単にJSONPについて説明します。 Ajaxで使われるXMLHttpRequestオブジェクトには前回説明したとおりSame-Originポリシーがありクロスドメインアクセスはできません。一方、SCRIPTタグ
第11回ガジェット、ウィジェットのセキュリティ 福森大喜 2007-11-14
Content-Security-Policy と nonce の話 Content-Security-Policy の nonce を利用すると、XSS の脅威をかなり軽減できます。 そこで、Web Application Framework ではデフォルトで対応したほうがよいのではないか、という旨を @hasegawayosuke さんから教えて頂いたので、実装について考えてみました。 とりあえず CSP の nonce はどういうものなのかを考慮するために、コード例を探していたのですが、実際に動くサンプルというものが nonce 関連のもので見当たりませんでした。 そこで、実際に動くサンプルを用意しました。 https://github.com/tokuhirom/csp-nonce-sample 以下は Sinatra で書かれたサンプルコードです。 require 'sinatr
クッキーより怖いcanvas fingerprintingって何?迂回方法は?2014.07.28 16:009,463 satomi 問題:ホワイトハウスとYouPornが共通でもってるもの、なーんだ? こたえ:canvas fingerprinting 「canvas fingerprinting(canvasの指紋採取)」というのは、最近大手サイトで採用が広まってる新手のオンライン追跡ツールのことです。クッキーと違って、ユーザー側からは探知もブロックもできないという、とんでもない野郎です。 まさにユーザーの知らぬ間にウェブの閲覧行動がサイトに筒抜け、というマジックミラー状態。その現状をProPublicaが記事にしていますよ。 「canvas fingerprinting」を最初に発見したのはプリンストン大学と英ルーヴェン大学の研究チームです。ここが発表した「The Web Neve
これなら合格! 正しいリダイレクターの作り方:HTML5時代の「新しいセキュリティ・エチケット」(4)(1/3 ページ) えっ、まだmeta refreshとか301使ってるの? リダイレクターの作り方も時代とともに移り変わります。記事を読んだらすぐに使えるセキュリティ・エチケットを紹介しましょう。 連載目次 皆さんこんにちは。ネットエージェントのはせがわようすけです。今回は、「オープンリダイレクター」という脆弱性について説明します。 オープンリダイレクターとは? オープンリダイレクターとは、あるURLを開くと自動的に他のページにジャンプするリダイレクト機能が、攻撃者によって任意の外部ページへのリダイレクターとして利用可能になっている問題です。 「http://example.jp」上で提供されるWebアプリケーションにて、例えば「http://example.jp/go?url=/nex
Enterprise x HTML5 Web Application Conference 2014の発表資料です。
単純ではない、最新「クロスサイトスクリプティング」事情:HTML5時代の「新しいセキュリティ・エチケット」(2)(1/3 ページ) 連載目次 皆さんこんにちは。ネットエージェントのはせがわようすけです。第1回目は、Webアプリケーションセキュリティの境界条件であるオリジンという概念について説明しました。 現在のWebブラウザーでは、同一オリジンのリソースは同じ保護範囲にあるものとし、オリジンを超えたアクセスについてはリソースの提供元が明示的に許可しない限りはアクセスできないという、「同一オリジンポリシー(Same-Origin Policy)」に従ってリソースを保護しています。 その保護範囲であるオリジンを超え、リソースにアクセスする攻撃の代表事例であるクロスサイトスクリプティング(XSS)について、今回、および次回の2回に分け、HTML5においてより高度化された攻撃と、その対策を説明しま
連載目次 皆さんこんにちは。ネットエージェントのはせがわようすけです。今回から、HTML5やJavaScriptに関連したセキュリティの話題について連載することになりました。よろしくお願いします。 もう読みましたか? HTML5のWebアプリセキュリティに関する報告書 皆さんすでにご存じかと思いますが、2013年10月30日にJPCERTコーディネーションセンター(以下、JPCERT/CC)から「HTML5 を利用したWebアプリケーションのセキュリティ問題に関する調査報告書」が公開されました。 この報告書の調査の一部は、弊社が行いました。また、JavaScriptのセキュリティ上の問題について次々と鋭い指摘を行っているmalaさんにもさまざまな技術的アドバイスを頂いた上、日常的にWebアプリケーションのセキュリティ検査や構築を実際の業務として行っておられる専門家の方々にも査読をお願いして
by Vernon Swanepoel ウェブサイトのユーザーがどれぐらいページを見てくれているのか、訪問頻度はどれぐらいなのかといった情報を追跡するのにはクッキー(Cookie)やJavaScriptなどが使用されますが、そうやって追跡されるのがイヤだということでCookieを受け入れないように設定したり、JavaScriptをオフにしているという人もいるはず。しかし、それでもユーザーを個別に追跡する方法があります。 Lucb1e.com :: Cookieless Cookies http://lucb1e.com/rp/cookielesscookies/ これはオランダ在住でコード・セキュリティ・ネットワークを愛しているというlucb1eさんが明らかにしたもの。手法としては新しいものではなく、多数のサイトで使われているにもかかわらず、そのことを認識している人はほとんどいないというも
「HTML5は優先順位を間違った。もういちどセキュリティの設計からやり直すべきだ」と語るJavaScript大家のDouglas Crockford氏 「HTML5の最大の問題は、優先順位を間違ったことだ。機能について議論する前に、セキュリティの扱いについて検討すべきだった」こう語るのは、JSONの発明者として知られ、Yahoo!のシニアJavaScriptアーキテクトでもあるDouglas Crockford氏。5月4日に行われたオライリーのWeb2.0 Expo 2010でのインタビューでのことです。 「もうそれを議論するには遅すぎるという人もいるが、そうは思わない。正しいことをするのに遅すぎることはないのだから」(Crockford氏) Crockford氏はHTML5は機能が重複しすぎていることも指摘しています。「Local StorageとLocal Databaseの両方が本当
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く