w3c

Webページのサブリソースを一つにまとめる Resource bundles とは

Webページのサブリソースを1つにまとめる 「Resource bundles」 という仕組みについて解説する。

Permissions PolicyとDocument Policyについて

Chromeで実装が進められているPermissions PolicyとDocument Policyについて説明する。

ChromeのSecure context restriction for external requests

インターネットに公開されているWebサイトから、プライベートアドレスに対するCSRF攻撃対策の議論。

ブラウザからTCP, UDPソケットを操作するDirect Sockets API

ブラウザでTCP, DUPソケットを操作可能にする「Raw Sockets API」という仕様がW3CのWICGで議論されている。

CookieのSameSite属性にFirstPartyLaxを追加する提案仕様

CookieのSameSite属性にFirstPartyLax、FirstPartyStrictを追加する提案仕様について、First-Party Setsと併せて解説する。

サポートしてないwell-known URIs に対するステータスコードを確認する提案仕様

サポートしていないwell-known URIs へのリクエストに対して200番を返すサーバを検出するための仕組み。

オリジン全体にポリシーを適応するOrigin PolicyをChromeで試す

オリジン全体にポリシーを適応する「Origin Policy」という機能をChromeで試してみました。CSPやFeature-Policyのポリシーが適応できます。

Crash/Deprecation/Intervention Reporting について

ブラウザがWebページを表示する際に発生したエラーを、任意のエンドポイントにレポートさせる「Reporting API」という仕様があります。Crash/Deprecation/Interventionという、エラータイプについて紹介します。

Mixed Content Level 2の仕様について

w3cのリポジトリにEditor’s Draftとして「Mixed Content Level 2」のページが加わっております。Mixed Content Level 1では表示できていた Mixed Content な画像,音声,動画もブロックされる可能性があります。

動画上にコメントを表示する"弾幕"の仕様

W3Cの「Chinese Web Interest Group」から、Unofficial Draftとして「弹幕规范」(英語版: Bullet Chatting Proposal)というドキュメントが公開されています。 仕様上でも「use cases and requirements for Danmaku」と書かれている通り、動画上にコメントの…

Cross-Origin-Embedder-Policyヘッダについて

ChromeがCross-Origin-Embedder-Policy (COEP)の実装に着手しそうなので、ざっと仕様を眺める(議論段階であり、正式な仕様ではありません) mikewest.github.ioちょっと話が難しいので間違ってたらすみません。なお以前は、仕様名は「Cross-Origin-Resource-P…

Fetch Metadataリクエストヘッダについて (Sec-Fetch-*)

ブラウザがリソースをFetchするさいに、そのFetchに関するメタ情報をリクエストヘッダに付与するというのがFetch Metadataという仕様です。この情報を用いれば、画像の読み込みのFetchで銀行用のAPIが叩かれるはずがないといった、明らかな不正なリクエスト…

Signed Exchange Reporting for distributors について

Webサイトを一つに固めて署名して再配布可能にする、Web Packagingという仕組みがあります。現在、Web Packagingは以下の3つの仕様からなっています。 Signed HTTP exchanges Bundled HTTP exchanges Loading AMPなどをより標準化された仕組みで実現するため…

Auto Upgrade Mixed Contentとは

20190905 追記 Draft版の仕様が出てきたので「Mixed Content Level 2の仕様について - ASnoKaze blog」を書きました。 HTTPSのサイト内にHTTPで提供される画像やスクリプトがあると、「Mixed Content」の仕組みによりURLバーに黄色い警告が出たり、リソース…

JS Self-Profiling API とは

W3C Web Performance Workingの議事録に「JS Self-Profiling API」についての議論があったので簡単に眺めておく。ミーティングの「発表スライドはこちら」 JS Self-Profiling API いわゆるRUM(Real user monitoring)などと同様、実際のユーザ側でJavaScript…

ブラウザからシリアルポートにアクセスするweb Serial API

blink-devメーリングリストに「Intent to Implement: Serial API」として「Serial API」の実装に着手する旨の投稿がされている。この「Serial API」はW3CのWICGで議論がされており、ブラウザからシリアルポートにアクセス可能にする。3DプリンタやArdbinoな…

HTML要素からHTTP/2優先度を指定する Priority Hints が動いた

HTTP/2にはクライアントからHTTPリクエストの優先度を指定することができる。サーバはその優先度に基づいてHTTPレスポンスを返す(無視しても良い)。 一般的にはブラウザ自身が判断し、ページのレンダリングを早くするためにCSSなどは優先度を高く、画像は優…

Loading Signed Exchangesの仕様 (WebPackaging)

WebPackagingと呼ばれる仕組みが議論されているのは、以前このブログでも紹介したとおりである。 asnokaze.hatenablog.comこの仕組みは3つの仕様からなる。 Signed HTTP exchanges (参考: HTTP/2 クロスオリジン サーバプッシュを可能にする提案仕様 - ASnoK…

Fetchの仕様で application/report を送信時にCORSが必要になった

以前このブログでも書いたNetwork Error Loggingなど、Webサイトを表示する際に発生した問題のレポートを指定されたエンドポイントに送信する機能が増えてきている。 asnokaze.hatenablog.comこのレポート送信に関する仕様はReporting APIで定義されている。…

Clear-Site-Dataヘッダでブラウザに記憶されているデータを消す

Webブラウザは表示したサイトに関する様々なデータを記憶しています例えば cookie cache HTTP認証の情報 localStorage service worker registrations しかしサーバ側からこれらのデータを明示的に消すのは難しい場合があります。例えば、httpOnlyのcookieは…

ブラウザの廃止される機能を使っていることを検知する Deprecation Reports (+ Intervention reports )

w3c

20180713追記 Intervention reports について追記しました ブラウザのバージョンアップは定期的に行われており、その度に廃止される機能もあります。廃止されることは公式にアナウンスされますが、そもそも自分が使っているかどうかすべてを把握することは難…

Network Error Loggingを用いたポートスキャン手法について

w3c

20180711追記 この問題は解決されました Handle errors in different phases differently #83 include_subdomains はDNSの名前解決エラーのみをレポート出来、TCP関連のエラーは通知できません。 ReportingObserver で、Network Error Loggingは監視できませ…

ブラウザのネットワークエラーをレポートさせるNetwork Error Loggingが来た

w3c

20180727追記 CORS対応が必要になりました asnokaze.hatenablog.com20180703追記 ドキュメントはhttps://w3c.github.io/network-error-logging/ にが移されました20180608追記 仕様上は、jsonの各値はハイフンではなく、アンダースコアを使用するようになり…

Sec-Metadataヘッダについて

20190215追記 Sec-MetadataはFetch Metadataになりました asnokaze.hatenablog.com CSRF攻撃やクロスドメインリクエストに対してサイドチャネル攻撃をすることで、情報がリークすることがあります。それを防ぐために、どのようにHTTPリクエストが行われたか…

Web5Gとはなんなのか

W3Cでは、「Web5G」を掲げ5G及び関連するネットワークの進化に向けて、それにあわせたWeb標準技術・APIを模索しているようである。個人的な印象としては、ネットワークレイヤとWebアプリケーションレイヤが連携するようなイメージでいる。ネットワークを性能…

iframe内の転送量を制限する Transfer Size Policy とは

Webページにソーシャルボタンや広告といったiframeを埋め込むことがあります。この時、埋め込んだ側はiframeの中で使用されるリソースを制限する方法はありません。例えば動画を再生すればトラフィックとCPUが消費されますし、最近では実はBitcoinの採掘に利…

Content Security Policy(CSP) レポートのCORSと、Fetchの仕様変更

WHATWG, Fetch詳しくないので間違いがあればご指摘下さい Content Security Policy(CSP)やHPKPやExpect-CTでは、ユーザエージェントはセキュリティの違反を検出した際に、指定したURLにレポートを送信できる。例えば、下記のようにHTTPレスポンスヘッダにrep…

Mixed Content Level 2の議論 (2017年)

20190905 追記 Draft版の仕様が出てきたので「Mixed Content Level 2の仕様について - ASnoKaze blog」を書きました。 20181010 追記 Chromeが行っている取り組みについて、「Auto Upgrade Mixed Contentとは - ASnoKaze blog」を書きました。 W3CのWeb Appl…

Device Memory APIを用いてデバイスのメモリサイズを取得する

背景 Webサービスでは、デバイスの性能毎に軽量版の機能を提供することが有ります。Google Search、Google Map、Facebookなどではローエンドデバイスでは一部軽量版のページを提供することが有ります。または、クライアントサイドで何かしらの処理速度などを…

HTML要素からHTTP/2優先度を指定する Priority Hints

20180912追記 Chrome71で動作確認しました。 仕様的にも変更が入ってるので、下記記事参照 asnokaze.hatenablog.com HTTP/2ではリクエストは並列的に行われますが、クライアントは各リクエストに優先度を設定できます。サーバはこの優先度によって、レスポン…