「iPhoneと同じになるな!」Androidユーザー悲鳴。アプリの自由インストール、2027年に事実上終了へ

はじめに 久しぶりに文字コードのXSSの話が盛り上がってるので、久しぶり(3年以上ぶり!)にブログを書きました。あけましておめでとうございます。今年と来年とそのさきも3年くらいよろしくお願いします。 blog.tokumaru.org HTTPレスポンスヘッダーやHTML metaタグでの文字エンコーディング名の指定がない場合に攻撃者がISO-2022-JP特有のバイト列をHTML内に埋め込むことでブラウザーがそのコンテンツをISO-2022-JPであると誤認する、そのときに動的にJavaScript内の文字列を生成しているとするとUS-ASCIIでいうバックスラッシュではなくJIS X0201の円記号を挿入することでエスケープが無効になる、結果としてJavaScriptの文字列外に攻撃者はコードを置くことができるというのが徳丸さんの書かれている記事になります。 対策としては、徳丸さんの記
2014-09-27: 該当サイト上にXSSがなくても攻撃可能であることが id:mayuki さんのコメントで判明しましたので全面的に書き直しました。ファイアウォール内であっても攻撃者はファイアウォール内のShellshock攻撃が通用するCGIのURLがわかっているだけで攻撃可能ですので早急に対応が必要です!会社のブログにも書いてますが、ファイアウォール内に置いてあるサーバで攻撃者が直接アクセスできないからといってbashの更新を怠っていると、条件によっては攻撃が可能となります。 条件としては、 そのサーバにはシェルを経由して外部コマンドを起動するCGI等が動いている(通常のShellshockの攻撃と同条件) 攻撃者がそのURLを事前に知っている(あるいは推測可能) となります。 攻撃者は、ユーザーを罠URLへ誘導し、以下のようなJavaScriptを罠ページ上で動かし、攻撃対象のW
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
こんにちは、太田です。今回から、Ajaxと呼ばれるような非同期な通信処理を行うJavaScriptについて解説していきます。今回は特にJSONPについて基礎的な部分を解説します。 JSONとは JSONについては第9回でも少し触れていますが、改めて解説します。 JSON(JavaScript Object Notation)はJavaScriptから生まれたデータ記述フォーマットで、真偽値、数値、文字列、null値の組み合わせを持ったハッシュか配列かその両方で構成されます。 JSONはそのシンプルさから多くの言語でネイティブにサポートされており、特にウェブ関連ではポピュラーなデータフォーマットです。 JSONのサンプル(配列) ["aaa", "bbb", "ccc"] JSONのサンプル(ハッシュ) {"aaa":1, "bbb": 2, "ccc": 3} JSONのサンプル(ハッシュ
TOPICS Programming , JavaScript 発行年月日 2013年01月 ISBN 978-4-87311-596-2 原書 Web Workers FORMAT 本書は、WebアプリケーションのUIに干渉することなくJavaScriptを別スレッドで実行するための技術「Web Workers」についてシンプルなサンプルコードとともに概説するための書籍です。専用ワーカー、インラインワーカー、共有ワーカーそれぞれについて、サンプルを動かしながら学習することが可能です。さらにデバッグ方法やサーバ側でnode.jsとともに使用する方法についても、ごく簡単に紹介しています。なお本書はEbookのみの販売となります。 まえがき 1章 Web Workersとは Web Workersにできること ワーカーの作成 Web Workersでできること、できないこと ワーカーの実行 W
TOPICS Programming , Web , HTML/CSS , JavaScript 発行年月日 2012年04月 ISBN 978-4-87311-539-9 原書 Using the HTML5 Filesystem API FORMAT 従来のWebアプリケーションでは対応できなかったファイルI/Oによる永続化を実現するべく策定されたHTML5 File APIを概説する書籍です。File APIが実装されたGoogle Chromeを例に、ストレージの使用法、ファイルの読み書き、ドラッグ&ドロップ、ディレクトリ操作、URLを使った参照、同期APIなどのトピックを紹介します。なお本書はEbookのみの販売となります。 はじめに 1章 概要 ユースケース セキュリティ上の考慮事項 ブラウザのサポート 注意 2章 ストレージとクオータ ストレージの種類 一時ストレージ 永続ス
はじめに ここ数年、JavaScriptライブラリを使ってサイトを製作するという機会がどんどん増えてきました。今まででであれば、JavaScriptのライブラリを使う・使わないに関わらず、その製作の多くはプログラマーの方が行っていたと思います。しかし近年、そのJavaScriptライブラリも種類が増えてきて、プログラミングの知識がなくても簡単に導入できるようなライブラリも出てきました。そのため、それらの使い手はプログラマーからWebデザイナーやマークアップエンジニア側へとシフトしつつしている部分もあります。 そんな数多くあるJavaScriptライブラリの中でも、Webデザイナーなどのプログラミング知識がない人でも比較的導入のしやすいのが『jQuery』です。このjQueryの魅力は、その使いやすさとプラグインの豊富さにあり、プラグインだけでも、すでに使ったことがあるという方も多いと思いま
JavaScriptのパフォーマンスのボトルネックを解消するテクニックとアプローチを解説します。実行時間、ダウンロード処理、ページのライフサイクルなどJavaScriptの様々な部分に対応しながら、DOMへのアクセス、ネットワークのレイテンシ、JavaScriptの同時ダウンロードのブロッキングなど、高速なJavaScriptエンジンであっても最適化できない部分をもカバーしています。本書で述べられているテクニックとアプローチは、パフォーマンスを向上する上で重要であるだけでなく、今後低レベルなJavaScriptの実行時間が短縮されていくにつれて、さらにその重要性は増していくでしょう。 はじめに 1章 読み込みと実行 1.1 スクリプトの配置 1.2 スクリプトのグループ化 1.3 ノンブロッキングなスクリプト 1.3.1 スクリプトの遅延 1.3.2 動的なscript要素 1.3.3 X
こんにちは、Google Chrome ExtensionsのAPI ExpertとChromium-Extensions-Japan管理人を担当している、太田と申します。いつもはクロスブラウザで連載していますが、今回はGoogle Chromeのデベロッパーツールについて紹介します。 昨今のJavaScript、HTML、CSSブームの背景には、開発環境、特にFirebugに代表されるようなデバッグツールの目覚しい発展が大きく貢献していると思われます。その反面、高機能化するデバッグツールの各種機能を使いこなすことが難しくなってきているという現実もあります。そこで、今回から全4回でGoogle Chromeに搭載されているデベロッパーツールの使い方とそれを利用したデバッグ・チューニングのノウハウをお届けしたいと思います。第1回はデベロッパーツールの機能紹介と基本的な使い方を解説します。 な
11:10~ 課題ページの確認&PageSpeed Insightsの実行目的:チューニング対象のウェブサイトの改善の余地を調査 上記のgruntプラグインをインストールする npm install コマンドを実行しながら、ブラウザやIDEでチューニング対象のウェブサイトを確認し始めました。 少し見ただけでもCSSの構文エラーがあったり、使っていないJavaScriptライブラリがインポートされていたり…。 まるで無茶な運用を数ヶ月続けたかのような、カオスなファイル群でした。 ここで実行した PageSpeed Insights に画像サイズの最適化をオススメされたので、まずはそこから行うことにしました。 11:20~ 画像ファイルの最適化目的:画像ファイルサイズの削減 30 x 30pxで表示している画像ファイルが実際には150 x 150pxで保存されていたりする画像がそこそこあったの
TOPICS Web , HTML/CSS , JavaScript , PHP 発行年月日 2011年03月 PRINT LENGTH 320 ISBN 978-4-87311-492-7 原書 Developing Large Web Applications FORMAT 本書は、後の機能追加や変更を想定してWeb開発を行う際に、HTML、CSS、JavaScript+Ajax、PHP、そしてデータ管理やパフォーマンスなど、Webアプリケーションを構成する各レイヤで考慮すべきことを包括的に解説する書籍です。変化に強く、大規模化に対応できるWeb開発の原則となるモジュール化やカプセル化、保守性およびパフォーマンスの維持を、簡単なサンプルWebアプリケーションの開発を行いながら習得します。本格的にWebアプリケーション開発を学びたいエンジニアに最適な一冊です。 監訳者まえがき まえがき
今回はShibuya.jsなどJavaScript界で活躍中のamachangこと天野仁史さんと、mixi、はてなや最近ではIPAなどさまざまなWebサイト・サービスのセキュリティ脆弱性を指摘(?)していることで知られるHamachiya2さん(はまちちゃん)のお2人がゲストです。まずは2人の馴れ初めから…。 編集部注) 本対談は2007年3月に行われたものです。 出会い 弾:で、お2人の馴れ初めは? 天野(以下、天):mixiで俺が「マイミクなってください」ってところから始まった。 Hamachiya2(以下、は):はい。ナンパされちゃいました。 弾:はまち釣り(笑)。 天:マイミクなってくださいってとこから始まって、そしたら(はまちちゃんが)JavaScriptを高速化してる人だ!っていうことで、デブサミのときに見に来てくれたんです。 JavaScriptのライブラリ 天:
はじめに 初めまして。NTTアドバンステクノロジの金城と申します。幸運にも記事を執筆させていただけることになりました。WebSocketという新しいウェブの規格についての連載を、全4回の予定でお届けします。 用語統一について WebSocketは「WebSocket」「WebSockets」、単語を切り離した「Web Socket」等、表記に揺れがあります。2009年12月22日のワーキングドラフトのタイトルは「The Web Sockets API」となっていますが、2010年4月26日のエディターズドラフトでは「The WebSocket API」となっています。この連載では、最新の仕様書に則り、用語を「WebSocket」で統一します。 HTML5とWebSocketの関係 WebSocketは、もともとHTML5の一機能として仕様の策定が進められていました。しかし、Web S
あけましておめでとうございます。昨年に引き続き、今年もJavaScriptの近い未来についてちょっとだけお話させて頂きます。 最初に昨年の予想を見返しておきましょう。昨年は次の3つを2010年の鍵として取り上げました。 ウェブ標準 ブラウザ拡張 サーバーサイドJavaScript この3つを軸に2010年を振り返ってみます。 2010年のJavaScript界隈でのニュース ウェブ標準 2010年最初のビッグニュースはなんといってもIE 9のPlatform Preview版の登場でした。これまでの独自実装路線から一転して(正確にはIE 8の時点でJSONやWeb Storageのサポートなど、その徴候はあったのですが)、HTML5などのウェブ標準のサポートを進めることを表明しました。そして実際に8週おきにPlatform Preview版をアップデートして、ECMAScript5・S
米Yahoo!のパフォーマンス担当責任者が導き出した「高速サイトを実現する14のルール」を実例とともに紹介します。サイトの高速化と聞くと、サーバ負荷分散などバックエンドで実施する大掛かりなパフォーマンスチューニングを思い浮かべますが、じつは待ち時間の80%はフロントエンドの処理に費やされています。ここで紹介する明解なルールに従いさえすれば、この時間を大幅に削減できるのです。本書では、ブラウザとサーバの通信の仕組みからわかりやすく解説し、14のルールに従うことでなぜ高速化できるのかを論理的に解明しています。 翻訳者によるサポートページ。 訳者まえがき 本書に対する賞賛の声 推薦の言葉 まえがき A章 フロントエンドのパフォーマンスの重要性 A.1 ウェブページのパフォーマンスを追跡する A.2 時間はどこで使われたのか? A.3 パフォーマンス改善の鉄則 B章 HTTPの概要 B.1 圧縮
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く