SlideShare a Scribd company logo
1 of 21
XSSに強いウェブサイトを作る
テンプレートエンジンの選定基準とスニペットの生成手法
Cybozu Labs, Inc.
Kazuho Oku
テンプレートエンジンの進化
2010年10月26日 XSSに強いウェブサイトを作る - テンプレートエンジンの選定基準とスニペットの生成手法 2
従来のテンプレートエンジン
従来のテンプレート=手動エスケープ
<?php echo htmlspecialchars($var) ?>
XSSの温床(エスケープ漏れ)
2010年10月26日 XSSに強いウェブサイトを作る - テンプレートエンジンの選定基準とスニペットの生成手法 3
従来のテンプレートエンジン (2)
代替手法=常にエスケープ
Smarty の default:modifiers 等
問題:2重にエスケープしてしまう
結局流行らなかった
2010年10月26日 XSSに強いウェブサイトを作る - テンプレートエンジンの選定基準とスニペットの生成手法 4
自動エスケープの登場
基本は常にエスケープ
ただし、エスケープ済かどうかを型で判定
$var = '>_<';
<?= $var ?> => &gt;_&lt;
型情報があるから2重エスケープしない
$var = escape('>_<'); # エンコードしてHTML型に
<?= $var ?> => &gt;_&lt;
2010年10月26日 XSSに強いウェブサイトを作る - テンプレートエンジンの選定基準とスニペットの生成手法 5
自動エスケープの登場 (2)
最近のテンプレートエンジンでは主流に
Django (Python; 2007)
Text::MicroTemplate (Perl; 2008)
Ruby on Rails 3 (2010)
Text::Xslate (Perl; 2010)
Smarty 3 (PHP; planned 2010)
2010年10月26日 XSSに強いウェブサイトを作る - テンプレートエンジンの選定基準とスニペットの生成手法 6
自動エスケープの登場 (3)
2010年代は自動エスケープの時代です
XSSの心配が、ほぼゼロ
2重エスケープも発生しない
新規プロジェクトでは、自動エスケープ機能つきのテ
ンプレートエンジンを使いましょう
2010年10月26日 XSSに強いウェブサイトを作る - テンプレートエンジンの選定基準とスニペットの生成手法 7
これで、もう安心…?
2010年10月26日 XSSに強いウェブサイトを作る - テンプレートエンジンの選定基準とスニペットの生成手法 8
残念ながら、違います
2010年10月26日 XSSに強いウェブサイトを作る - テンプレートエンジンの選定基準とスニペットの生成手法 9
テンプレートエンジンが解決しない問題
テンプレートエンジンは、テンプレートに文
字列を埋め込むための装置
ユーザーの入力からHTMLを生成するため
には使えない
例: Wiki記法
2010年10月26日 XSSに強いウェブサイトを作る - テンプレートエンジンの選定基準とスニペットの生成手法 10
Twitter の XSS 事件を覚えていますか?
@の直後にある”がエスケープされないから、
タグの属性を閉じることができた ⇒ XSS
http://x.xx/@"style="color:pink"onmouseover=ale
rt(1)//"
2010年10月26日 XSSに強いウェブサイトを作る - テンプレートエンジンの選定基準とスニペットの生成手法 11
XSS の温床=間違った設計
Twitter純正のHTML化アルゴリズム
html = linkify_usernames(
linkify_urls(
linkify_hashtags(tweet)
)
)
問題点
HTML への変換を多重に行っている
リンクがリンク化されるのを防ぐための工夫で誤摩化す
結果として処理が複雑になり、検証が困難
2010年10月26日 XSSに強いウェブサイトを作る - テンプレートエンジンの選定基準とスニペットの生成手法 12
解決策:設計からやりなおし
2010年10月26日 XSSに強いウェブサイトを作る - テンプレートエンジンの選定基準とスニペットの生成手法 13
でも…
正しいコードを書くのって難しいよね?
2010年10月26日 XSSに強いウェブサイトを作る - テンプレートエンジンの選定基準とスニペットの生成手法 14
正常動作 > バグ >> 超えられない壁 >> XSS
正しい設計は重要
from プログラミングの観点
XSS が起きにくい設計も重要
from セキュアコーディングの観点
XSS は直さないとヤバい
バグってても XSS が起きなければ優先度調整可能
2010年10月26日 XSSに強いウェブサイトを作る - テンプレートエンジンの選定基準とスニペットの生成手法 15
Tweet の HTML 化問題を分割して考える
Tweet の HTML 化とは何か
まず Tweet (=構造化テキスト) をパースして
次にその構造をHTMLエンコードする処理(=型変換)
パースとエンコードに分割する理由は?
パース結果が間違っていてもエンコード処理が正しけ
れば XSS は発生しない
構造化テキストとは?
ここでは、@user やリンクなどの構造をもつテキストのこと
他の例: Wiki や、はてなダイアリーのマークアップ
2010年10月26日 XSSに強いウェブサイトを作る - テンプレートエンジンの選定基準とスニペットの生成手法 16
パース処理の具体例
@foo Hello http://example.com/
⇩
[
[ ’user’ => ’foo’ ],
[ ’text’ => ’ Hello ’ ],
[ ’link’ => ’http://example.com/’ ],
]
2010年10月26日 XSSに強いウェブサイトを作る - テンプレートエンジンの選定基準とスニペットの生成手法 17
エンコード処理の実装例
for my $element (@tweet_elements) {
my ($type, $data) = @$element;
if ($type eq 'user') {
$html .= sprintf(
'@<a href=”http://twitter.com/%s">%s</a>',
encode_entities($data),
encode_entities($data),
);
} elsif ($type eq 'link') {
$html .= sprintf(
'<a href="%s">%s</a>',
encode_entities($data),
encode_entities($data),
);
…
2010年10月26日 XSSに強いウェブサイトを作る - テンプレートエンジンの選定基準とスニペットの生成手法 18
重要なことなので、もう1回
エンコード処理が正しければ XSS 起きない
エンコード処理は簡単だったでしょ?
あとは、パース処理をどう書くか
間違えてもセキュリティホールにならないから安心♡
DOM ライクなアプローチ (データ構造を作ってからま
とめてエンコード) と SAX ライクなアプローチ (コール
バック・イベントベースでのエンコード)
続きはブログで…
http://developer.cybozu.co.jp/kazuho/2010/09/tw
itter-xss-f73.html
2010年10月26日 XSSに強いウェブサイトを作る - テンプレートエンジンの選定基準とスニペットの生成手法 19
まとめ
バグがあってもいいから、セキュアなプログ
ラムを書こう
文字列の「型」を意識しよう
自動エスケープ対応のテンプレートエンジンを使おう
エンコード処理は、できるだけ最後に、まと
めて行うべき
cf. 「サニタイズ言うな」キャンペーン
レビューとテストが簡単に
2010年10月26日 XSSに強いウェブサイトを作る - テンプレートエンジンの選定基準とスニペットの生成手法 20
参考資料
http://labs.cybozu.co.jp/blog/kazuho/arc
hives/2008/12/textmicrotemplate.php
http://codezine.jp/article/detail/5472
http://togetter.com/li/52475
http://github.com/mzsanford/twitter-
text-rb/
http://d.hatena.ne.jp/gnarl/20100922/12
85165197
2010年10月26日 XSSに強いウェブサイトを作る - テンプレートエンジンの選定基準とスニペットの生成手法 21

More Related Content

What's hot

Crawler Commons
Crawler CommonsCrawler Commons
Crawler Commonschibochibo
 
Classmethod awsstudy ec2rds20160114
Classmethod awsstudy ec2rds20160114Classmethod awsstudy ec2rds20160114
Classmethod awsstudy ec2rds20160114Satoru Ishikawa
 
S3・EBSの概要と勘所
S3・EBSの概要と勘所S3・EBSの概要と勘所
S3・EBSの概要と勘所Kunio Kawahara
 
MariaDB Spider Mroonga 20140218
MariaDB Spider Mroonga 20140218MariaDB Spider Mroonga 20140218
MariaDB Spider Mroonga 20140218Kentoku
 
利用者主体で行う分析のための分析基盤
利用者主体で行う分析のための分析基盤利用者主体で行う分析のための分析基盤
利用者主体で行う分析のための分析基盤Sotaro Kimura
 
Spider DeNA Technology Seminar #2
Spider DeNA Technology Seminar #2Spider DeNA Technology Seminar #2
Spider DeNA Technology Seminar #2Kentoku
 
Aws その他の概要と勘所
Aws その他の概要と勘所Aws その他の概要と勘所
Aws その他の概要と勘所Fumihito Yokoyama
 
Let's split text by awk command
Let's split text by awk commandLet's split text by awk command
Let's split text by awk commandYukiya Hayashi
 
Spider storage engine (dec212016)
Spider storage engine (dec212016)Spider storage engine (dec212016)
Spider storage engine (dec212016)Kentoku
 
Couch Db勉強会0623 by yssk22
Couch Db勉強会0623 by yssk22Couch Db勉強会0623 by yssk22
Couch Db勉強会0623 by yssk22Yohei Sasaki
 
JAWS-UG 初心者支部#4 LT資料
JAWS-UG 初心者支部#4 LT資料JAWS-UG 初心者支部#4 LT資料
JAWS-UG 初心者支部#4 LT資料Yuki Yoshida
 
Amazon DynamoDBの紹介と東急ハンズでの活用について
Amazon DynamoDBの紹介と東急ハンズでの活用についてAmazon DynamoDBの紹介と東急ハンズでの活用について
Amazon DynamoDBの紹介と東急ハンズでの活用についてTaiji INOUE
 
Anemoneによるクローラー入門
Anemoneによるクローラー入門Anemoneによるクローラー入門
Anemoneによるクローラー入門Tasuku Nakano
 

What's hot (13)

Crawler Commons
Crawler CommonsCrawler Commons
Crawler Commons
 
Classmethod awsstudy ec2rds20160114
Classmethod awsstudy ec2rds20160114Classmethod awsstudy ec2rds20160114
Classmethod awsstudy ec2rds20160114
 
S3・EBSの概要と勘所
S3・EBSの概要と勘所S3・EBSの概要と勘所
S3・EBSの概要と勘所
 
MariaDB Spider Mroonga 20140218
MariaDB Spider Mroonga 20140218MariaDB Spider Mroonga 20140218
MariaDB Spider Mroonga 20140218
 
利用者主体で行う分析のための分析基盤
利用者主体で行う分析のための分析基盤利用者主体で行う分析のための分析基盤
利用者主体で行う分析のための分析基盤
 
Spider DeNA Technology Seminar #2
Spider DeNA Technology Seminar #2Spider DeNA Technology Seminar #2
Spider DeNA Technology Seminar #2
 
Aws その他の概要と勘所
Aws その他の概要と勘所Aws その他の概要と勘所
Aws その他の概要と勘所
 
Let's split text by awk command
Let's split text by awk commandLet's split text by awk command
Let's split text by awk command
 
Spider storage engine (dec212016)
Spider storage engine (dec212016)Spider storage engine (dec212016)
Spider storage engine (dec212016)
 
Couch Db勉強会0623 by yssk22
Couch Db勉強会0623 by yssk22Couch Db勉強会0623 by yssk22
Couch Db勉強会0623 by yssk22
 
JAWS-UG 初心者支部#4 LT資料
JAWS-UG 初心者支部#4 LT資料JAWS-UG 初心者支部#4 LT資料
JAWS-UG 初心者支部#4 LT資料
 
Amazon DynamoDBの紹介と東急ハンズでの活用について
Amazon DynamoDBの紹介と東急ハンズでの活用についてAmazon DynamoDBの紹介と東急ハンズでの活用について
Amazon DynamoDBの紹介と東急ハンズでの活用について
 
Anemoneによるクローラー入門
Anemoneによるクローラー入門Anemoneによるクローラー入門
Anemoneによるクローラー入門
 

Viewers also liked

ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先Kazuho Oku
 
はじめてのUser-Agent文字列
はじめてのUser-Agent文字列はじめてのUser-Agent文字列
はじめてのUser-Agent文字列Kenta USAMI
 
たのしい独自フレームワーク
たのしい独自フレームワークたのしい独自フレームワーク
たのしい独自フレームワークKenta USAMI
 
Muskrats by Morgan
Muskrats by MorganMuskrats by Morgan
Muskrats by Morganvebrya
 
Power Point
Power PointPower Point
Power PointMJH123
 
Presentation bulgaria o_drzavi
Presentation bulgaria o_drzaviPresentation bulgaria o_drzavi
Presentation bulgaria o_drzaviGavranica
 
Antropologia dźwięku. Foniczne reprezentacje kultur.
Antropologia dźwięku. Foniczne reprezentacje kultur.Antropologia dźwięku. Foniczne reprezentacje kultur.
Antropologia dźwięku. Foniczne reprezentacje kultur.agata stanisz
 
Online Masterclass Learning Analytics
Online Masterclass Learning Analytics Online Masterclass Learning Analytics
Online Masterclass Learning Analytics Hendrik Drachsler
 
An Open Social Approach Rev 01 09 09v2
An Open Social Approach Rev 01 09 09v2An Open Social Approach Rev 01 09 09v2
An Open Social Approach Rev 01 09 09v2sbendt
 
Tablet ecosystem in_india-facts_&_figures
Tablet ecosystem in_india-facts_&_figuresTablet ecosystem in_india-facts_&_figures
Tablet ecosystem in_india-facts_&_figuresAmit Ambastha
 
Designit in Barcelona: an introduction to Generative Design
Designit in Barcelona: an introduction to Generative DesignDesignit in Barcelona: an introduction to Generative Design
Designit in Barcelona: an introduction to Generative DesignGuy Haviv
 
Unit 1.3 Introduction to Programming (Part 1)
Unit 1.3 Introduction to Programming (Part 1)Unit 1.3 Introduction to Programming (Part 1)
Unit 1.3 Introduction to Programming (Part 1)Intan Jameel
 
ailehekimliği
ailehekimliğiailehekimliği
ailehekimliğianttab
 
Greater Pittsburgh Arts Council 2008 Annual Meeting
Greater Pittsburgh Arts Council 2008 Annual MeetingGreater Pittsburgh Arts Council 2008 Annual Meeting
Greater Pittsburgh Arts Council 2008 Annual Meetingtwilhelm
 
Bobcat by Noah
Bobcat by NoahBobcat by Noah
Bobcat by Noahvebrya
 
Imdrf tech-131209-samd-key-definitions-140901
Imdrf tech-131209-samd-key-definitions-140901Imdrf tech-131209-samd-key-definitions-140901
Imdrf tech-131209-samd-key-definitions-140901Pankaj Srivastava
 

Viewers also liked (20)

ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
ウェブを速くするためにDeNAがやっていること - HTTP/2と、さらにその先
 
はじめてのUser-Agent文字列
はじめてのUser-Agent文字列はじめてのUser-Agent文字列
はじめてのUser-Agent文字列
 
たのしい独自フレームワーク
たのしい独自フレームワークたのしい独自フレームワーク
たのしい独自フレームワーク
 
Muskrats by Morgan
Muskrats by MorganMuskrats by Morgan
Muskrats by Morgan
 
Power Point
Power PointPower Point
Power Point
 
Presentation bulgaria o_drzavi
Presentation bulgaria o_drzaviPresentation bulgaria o_drzavi
Presentation bulgaria o_drzavi
 
M02 un07 p01
M02 un07 p01M02 un07 p01
M02 un07 p01
 
M02 un09 p01
M02 un09 p01M02 un09 p01
M02 un09 p01
 
Unit 2.5
Unit 2.5Unit 2.5
Unit 2.5
 
Antropologia dźwięku. Foniczne reprezentacje kultur.
Antropologia dźwięku. Foniczne reprezentacje kultur.Antropologia dźwięku. Foniczne reprezentacje kultur.
Antropologia dźwięku. Foniczne reprezentacje kultur.
 
Online Masterclass Learning Analytics
Online Masterclass Learning Analytics Online Masterclass Learning Analytics
Online Masterclass Learning Analytics
 
Zendframework Parte2
Zendframework    Parte2Zendframework    Parte2
Zendframework Parte2
 
An Open Social Approach Rev 01 09 09v2
An Open Social Approach Rev 01 09 09v2An Open Social Approach Rev 01 09 09v2
An Open Social Approach Rev 01 09 09v2
 
Tablet ecosystem in_india-facts_&_figures
Tablet ecosystem in_india-facts_&_figuresTablet ecosystem in_india-facts_&_figures
Tablet ecosystem in_india-facts_&_figures
 
Designit in Barcelona: an introduction to Generative Design
Designit in Barcelona: an introduction to Generative DesignDesignit in Barcelona: an introduction to Generative Design
Designit in Barcelona: an introduction to Generative Design
 
Unit 1.3 Introduction to Programming (Part 1)
Unit 1.3 Introduction to Programming (Part 1)Unit 1.3 Introduction to Programming (Part 1)
Unit 1.3 Introduction to Programming (Part 1)
 
ailehekimliği
ailehekimliğiailehekimliği
ailehekimliği
 
Greater Pittsburgh Arts Council 2008 Annual Meeting
Greater Pittsburgh Arts Council 2008 Annual MeetingGreater Pittsburgh Arts Council 2008 Annual Meeting
Greater Pittsburgh Arts Council 2008 Annual Meeting
 
Bobcat by Noah
Bobcat by NoahBobcat by Noah
Bobcat by Noah
 
Imdrf tech-131209-samd-key-definitions-140901
Imdrf tech-131209-samd-key-definitions-140901Imdrf tech-131209-samd-key-definitions-140901
Imdrf tech-131209-samd-key-definitions-140901
 

Similar to XSSに強いウェブサイトを作る – テンプレートエンジンの選定基準とスニペットの生成手法

Amazon Kinesis Analytics によるストリーミングデータのリアルタイム分析
Amazon Kinesis Analytics によるストリーミングデータのリアルタイム分析Amazon Kinesis Analytics によるストリーミングデータのリアルタイム分析
Amazon Kinesis Analytics によるストリーミングデータのリアルタイム分析Amazon Web Services Japan
 
Web アプリケーション パターンと .NET - CLR/H 88 回 ~雪まつりデイ!~ バージョン
Web アプリケーション パターンと .NET - CLR/H 88 回 ~雪まつりデイ!~ バージョンWeb アプリケーション パターンと .NET - CLR/H 88 回 ~雪まつりデイ!~ バージョン
Web アプリケーション パターンと .NET - CLR/H 88 回 ~雪まつりデイ!~ バージョンAkira Inoue
 
20121112 jaws-ug sapporo8
20121112 jaws-ug sapporo820121112 jaws-ug sapporo8
20121112 jaws-ug sapporo8Hirokazu Ouchi
 
One ASP.NET の今とこれから
One ASP.NET の今とこれからOne ASP.NET の今とこれから
One ASP.NET の今とこれからAkira Inoue
 
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶjQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶShumpei Shiraishi
 
WebMatrix 2 と Azure Web Sites を使ったスマートフォンサイト構築のすすめ
WebMatrix 2 と Azure Web Sites を使ったスマートフォンサイト構築のすすめWebMatrix 2 と Azure Web Sites を使ったスマートフォンサイト構築のすすめ
WebMatrix 2 と Azure Web Sites を使ったスマートフォンサイト構築のすすめAkira Inoue
 
Kinesis Analyticsの適用できない用途と、Kinesis Firehoseの苦労話
Kinesis Analyticsの適用できない用途と、Kinesis Firehoseの苦労話Kinesis Analyticsの適用できない用途と、Kinesis Firehoseの苦労話
Kinesis Analyticsの適用できない用途と、Kinesis Firehoseの苦労話Sotaro Kimura
 
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方Yuki Morishita
 
AWS Black Belt Online Seminar 2017 Amazon Kinesis
AWS Black Belt Online Seminar 2017 Amazon KinesisAWS Black Belt Online Seminar 2017 Amazon Kinesis
AWS Black Belt Online Seminar 2017 Amazon KinesisAmazon Web Services Japan
 
WebMatrix 2 と Azure を使ったスマートフォンサイト構築のすすめ
WebMatrix 2 と Azure を使ったスマートフォンサイト構築のすすめWebMatrix 2 と Azure を使ったスマートフォンサイト構築のすすめ
WebMatrix 2 と Azure を使ったスマートフォンサイト構築のすすめAkira Inoue
 
Htmlコーディングの効率化 後編
Htmlコーディングの効率化 後編Htmlコーディングの効率化 後編
Htmlコーディングの効率化 後編Yasuhito Yabe
 
キャッチアップJavaScriptビルド - ビルドから見るJSの今/2016春
キャッチアップJavaScriptビルド -ビルドから見るJSの今/2016春キャッチアップJavaScriptビルド -ビルドから見るJSの今/2016春
キャッチアップJavaScriptビルド - ビルドから見るJSの今/2016春Kondo Hitoshi
 
AWS初心者向けWebinar AWS上にWebサーバーシステムを作ってみましょう ~まずは仮想サーバーから[演習つき]~
AWS初心者向けWebinar AWS上にWebサーバーシステムを作ってみましょう ~まずは仮想サーバーから[演習つき]~AWS初心者向けWebinar AWS上にWebサーバーシステムを作ってみましょう ~まずは仮想サーバーから[演習つき]~
AWS初心者向けWebinar AWS上にWebサーバーシステムを作ってみましょう ~まずは仮想サーバーから[演習つき]~Amazon Web Services Japan
 
Containers + EC2 Spot: AWS Batch による大規模バッチ処理でのスポットインスタンス活用
Containers + EC2 Spot: AWS Batch による大規模バッチ処理でのスポットインスタンス活用Containers + EC2 Spot: AWS Batch による大規模バッチ処理でのスポットインスタンス活用
Containers + EC2 Spot: AWS Batch による大規模バッチ処理でのスポットインスタンス活用Daisuke Miyamoto
 
EC-CUBEの設計思想について
EC-CUBEの設計思想についてEC-CUBEの設計思想について
EC-CUBEの設計思想についてKentaro Ohkouchi
 
AWSクラウドデザインパターン(CDP) - Eコマース編 -
AWSクラウドデザインパターン(CDP) - Eコマース編 -AWSクラウドデザインパターン(CDP) - Eコマース編 -
AWSクラウドデザインパターン(CDP) - Eコマース編 -SORACOM, INC
 
ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説Akira Inoue
 
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ 【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ 日本マイクロソフト株式会社
 

Similar to XSSに強いウェブサイトを作る – テンプレートエンジンの選定基準とスニペットの生成手法 (20)

Amazon Kinesis Analytics によるストリーミングデータのリアルタイム分析
Amazon Kinesis Analytics によるストリーミングデータのリアルタイム分析Amazon Kinesis Analytics によるストリーミングデータのリアルタイム分析
Amazon Kinesis Analytics によるストリーミングデータのリアルタイム分析
 
Web アプリケーション パターンと .NET - CLR/H 88 回 ~雪まつりデイ!~ バージョン
Web アプリケーション パターンと .NET - CLR/H 88 回 ~雪まつりデイ!~ バージョンWeb アプリケーション パターンと .NET - CLR/H 88 回 ~雪まつりデイ!~ バージョン
Web アプリケーション パターンと .NET - CLR/H 88 回 ~雪まつりデイ!~ バージョン
 
20121112 jaws-ug sapporo8
20121112 jaws-ug sapporo820121112 jaws-ug sapporo8
20121112 jaws-ug sapporo8
 
One ASP.NET の今とこれから
One ASP.NET の今とこれからOne ASP.NET の今とこれから
One ASP.NET の今とこれから
 
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶjQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
 
WebMatrix 2 と Azure Web Sites を使ったスマートフォンサイト構築のすすめ
WebMatrix 2 と Azure Web Sites を使ったスマートフォンサイト構築のすすめWebMatrix 2 と Azure Web Sites を使ったスマートフォンサイト構築のすすめ
WebMatrix 2 と Azure Web Sites を使ったスマートフォンサイト構築のすすめ
 
BPStudy20121221
BPStudy20121221BPStudy20121221
BPStudy20121221
 
Kinesis Analyticsの適用できない用途と、Kinesis Firehoseの苦労話
Kinesis Analyticsの適用できない用途と、Kinesis Firehoseの苦労話Kinesis Analyticsの適用できない用途と、Kinesis Firehoseの苦労話
Kinesis Analyticsの適用できない用途と、Kinesis Firehoseの苦労話
 
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方
 
AWS Black Belt Online Seminar 2017 Amazon Kinesis
AWS Black Belt Online Seminar 2017 Amazon KinesisAWS Black Belt Online Seminar 2017 Amazon Kinesis
AWS Black Belt Online Seminar 2017 Amazon Kinesis
 
WebMatrix 2 と Azure を使ったスマートフォンサイト構築のすすめ
WebMatrix 2 と Azure を使ったスマートフォンサイト構築のすすめWebMatrix 2 と Azure を使ったスマートフォンサイト構築のすすめ
WebMatrix 2 と Azure を使ったスマートフォンサイト構築のすすめ
 
Htmlコーディングの効率化 後編
Htmlコーディングの効率化 後編Htmlコーディングの効率化 後編
Htmlコーディングの効率化 後編
 
キャッチアップJavaScriptビルド - ビルドから見るJSの今/2016春
キャッチアップJavaScriptビルド -ビルドから見るJSの今/2016春キャッチアップJavaScriptビルド -ビルドから見るJSの今/2016春
キャッチアップJavaScriptビルド - ビルドから見るJSの今/2016春
 
AWS初心者向けWebinar AWS上にWebサーバーシステムを作ってみましょう ~まずは仮想サーバーから[演習つき]~
AWS初心者向けWebinar AWS上にWebサーバーシステムを作ってみましょう ~まずは仮想サーバーから[演習つき]~AWS初心者向けWebinar AWS上にWebサーバーシステムを作ってみましょう ~まずは仮想サーバーから[演習つき]~
AWS初心者向けWebinar AWS上にWebサーバーシステムを作ってみましょう ~まずは仮想サーバーから[演習つき]~
 
Containers + EC2 Spot: AWS Batch による大規模バッチ処理でのスポットインスタンス活用
Containers + EC2 Spot: AWS Batch による大規模バッチ処理でのスポットインスタンス活用Containers + EC2 Spot: AWS Batch による大規模バッチ処理でのスポットインスタンス活用
Containers + EC2 Spot: AWS Batch による大規模バッチ処理でのスポットインスタンス活用
 
EC-CUBEの設計思想について
EC-CUBEの設計思想についてEC-CUBEの設計思想について
EC-CUBEの設計思想について
 
Nginx
NginxNginx
Nginx
 
AWSクラウドデザインパターン(CDP) - Eコマース編 -
AWSクラウドデザインパターン(CDP) - Eコマース編 -AWSクラウドデザインパターン(CDP) - Eコマース編 -
AWSクラウドデザインパターン(CDP) - Eコマース編 -
 
ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説
 
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ 【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
 

More from Kazuho Oku

HTTP/2で 速くなるとき ならないとき
HTTP/2で 速くなるとき ならないときHTTP/2で 速くなるとき ならないとき
HTTP/2で 速くなるとき ならないときKazuho Oku
 
QUIC標準化動向 〜2017/7
QUIC標準化動向 〜2017/7QUIC標準化動向 〜2017/7
QUIC標準化動向 〜2017/7Kazuho Oku
 
HTTP/2の課題と将来
HTTP/2の課題と将来HTTP/2の課題と将来
HTTP/2の課題と将来Kazuho Oku
 
TLS 1.3 と 0-RTT のこわ〜い話
TLS 1.3 と 0-RTT のこわ〜い話TLS 1.3 と 0-RTT のこわ〜い話
TLS 1.3 と 0-RTT のこわ〜い話Kazuho Oku
 
Reorganizing Website Architecture for HTTP/2 and Beyond
Reorganizing Website Architecture for HTTP/2 and BeyondReorganizing Website Architecture for HTTP/2 and Beyond
Reorganizing Website Architecture for HTTP/2 and BeyondKazuho Oku
 
Recent Advances in HTTP, controlling them using ruby
Recent Advances in HTTP, controlling them using rubyRecent Advances in HTTP, controlling them using ruby
Recent Advances in HTTP, controlling them using rubyKazuho Oku
 
Programming TCP for responsiveness
Programming TCP for responsivenessProgramming TCP for responsiveness
Programming TCP for responsivenessKazuho Oku
 
Programming TCP for responsiveness
Programming TCP for responsivenessProgramming TCP for responsiveness
Programming TCP for responsivenessKazuho Oku
 
Developing the fastest HTTP/2 server
Developing the fastest HTTP/2 serverDeveloping the fastest HTTP/2 server
Developing the fastest HTTP/2 serverKazuho Oku
 
TLS & LURK @ IETF 95
TLS & LURK @ IETF 95TLS & LURK @ IETF 95
TLS & LURK @ IETF 95Kazuho Oku
 
HTTPとサーバ技術の最新動向
HTTPとサーバ技術の最新動向HTTPとサーバ技術の最新動向
HTTPとサーバ技術の最新動向Kazuho Oku
 
Cache aware-server-push in H2O version 1.5
Cache aware-server-push in H2O version 1.5Cache aware-server-push in H2O version 1.5
Cache aware-server-push in H2O version 1.5Kazuho Oku
 
HTTP/2時代のウェブサイト設計
HTTP/2時代のウェブサイト設計HTTP/2時代のウェブサイト設計
HTTP/2時代のウェブサイト設計Kazuho Oku
 
H2O - making the Web faster
H2O - making the Web fasterH2O - making the Web faster
H2O - making the Web fasterKazuho Oku
 
H2O - making HTTP better
H2O - making HTTP betterH2O - making HTTP better
H2O - making HTTP betterKazuho Oku
 
H2O - the optimized HTTP server
H2O - the optimized HTTP serverH2O - the optimized HTTP server
H2O - the optimized HTTP serverKazuho Oku
 
JSON SQL Injection and the Lessons Learned
JSON SQL Injection and the Lessons LearnedJSON SQL Injection and the Lessons Learned
JSON SQL Injection and the Lessons LearnedKazuho Oku
 
JSX 速さの秘密 - 高速なJavaScriptを書く方法
JSX 速さの秘密 - 高速なJavaScriptを書く方法JSX 速さの秘密 - 高速なJavaScriptを書く方法
JSX 速さの秘密 - 高速なJavaScriptを書く方法Kazuho Oku
 
JSX の現在と未来 - Oct 26 2013
JSX の現在と未来 - Oct 26 2013JSX の現在と未来 - Oct 26 2013
JSX の現在と未来 - Oct 26 2013Kazuho Oku
 
Using the Power to Prove
Using the Power to ProveUsing the Power to Prove
Using the Power to ProveKazuho Oku
 

More from Kazuho Oku (20)

HTTP/2で 速くなるとき ならないとき
HTTP/2で 速くなるとき ならないときHTTP/2で 速くなるとき ならないとき
HTTP/2で 速くなるとき ならないとき
 
QUIC標準化動向 〜2017/7
QUIC標準化動向 〜2017/7QUIC標準化動向 〜2017/7
QUIC標準化動向 〜2017/7
 
HTTP/2の課題と将来
HTTP/2の課題と将来HTTP/2の課題と将来
HTTP/2の課題と将来
 
TLS 1.3 と 0-RTT のこわ〜い話
TLS 1.3 と 0-RTT のこわ〜い話TLS 1.3 と 0-RTT のこわ〜い話
TLS 1.3 と 0-RTT のこわ〜い話
 
Reorganizing Website Architecture for HTTP/2 and Beyond
Reorganizing Website Architecture for HTTP/2 and BeyondReorganizing Website Architecture for HTTP/2 and Beyond
Reorganizing Website Architecture for HTTP/2 and Beyond
 
Recent Advances in HTTP, controlling them using ruby
Recent Advances in HTTP, controlling them using rubyRecent Advances in HTTP, controlling them using ruby
Recent Advances in HTTP, controlling them using ruby
 
Programming TCP for responsiveness
Programming TCP for responsivenessProgramming TCP for responsiveness
Programming TCP for responsiveness
 
Programming TCP for responsiveness
Programming TCP for responsivenessProgramming TCP for responsiveness
Programming TCP for responsiveness
 
Developing the fastest HTTP/2 server
Developing the fastest HTTP/2 serverDeveloping the fastest HTTP/2 server
Developing the fastest HTTP/2 server
 
TLS & LURK @ IETF 95
TLS & LURK @ IETF 95TLS & LURK @ IETF 95
TLS & LURK @ IETF 95
 
HTTPとサーバ技術の最新動向
HTTPとサーバ技術の最新動向HTTPとサーバ技術の最新動向
HTTPとサーバ技術の最新動向
 
Cache aware-server-push in H2O version 1.5
Cache aware-server-push in H2O version 1.5Cache aware-server-push in H2O version 1.5
Cache aware-server-push in H2O version 1.5
 
HTTP/2時代のウェブサイト設計
HTTP/2時代のウェブサイト設計HTTP/2時代のウェブサイト設計
HTTP/2時代のウェブサイト設計
 
H2O - making the Web faster
H2O - making the Web fasterH2O - making the Web faster
H2O - making the Web faster
 
H2O - making HTTP better
H2O - making HTTP betterH2O - making HTTP better
H2O - making HTTP better
 
H2O - the optimized HTTP server
H2O - the optimized HTTP serverH2O - the optimized HTTP server
H2O - the optimized HTTP server
 
JSON SQL Injection and the Lessons Learned
JSON SQL Injection and the Lessons LearnedJSON SQL Injection and the Lessons Learned
JSON SQL Injection and the Lessons Learned
 
JSX 速さの秘密 - 高速なJavaScriptを書く方法
JSX 速さの秘密 - 高速なJavaScriptを書く方法JSX 速さの秘密 - 高速なJavaScriptを書く方法
JSX 速さの秘密 - 高速なJavaScriptを書く方法
 
JSX の現在と未来 - Oct 26 2013
JSX の現在と未来 - Oct 26 2013JSX の現在と未来 - Oct 26 2013
JSX の現在と未来 - Oct 26 2013
 
Using the Power to Prove
Using the Power to ProveUsing the Power to Prove
Using the Power to Prove
 

Recently uploaded

TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 

Recently uploaded (9)

TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 

XSSに強いウェブサイトを作る – テンプレートエンジンの選定基準とスニペットの生成手法