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

Spider DeNA Technology Seminar #2
Spider DeNA Technology Seminar #2Spider DeNA Technology Seminar #2
Spider DeNA Technology Seminar #2
Kentoku
 

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
 
Muskrats by Morgan
Muskrats by MorganMuskrats by Morgan
Muskrats by Morgan
vebrya
 
Power Point
Power PointPower Point
Power Point
MJH123
 
Presentation bulgaria o_drzavi
Presentation bulgaria o_drzaviPresentation bulgaria o_drzavi
Presentation bulgaria o_drzavi
Gavranica
 
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
Guy Haviv
 
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
twilhelm
 
Bobcat by Noah
Bobcat by NoahBobcat by Noah
Bobcat by Noah
vebrya
 

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に強いウェブサイトを作る – テンプレートエンジンの選定基準とスニペットの生成手法

Web アプリケーション パターンと .NET - CLR/H 88 回 ~雪まつりデイ!~ バージョン
Web アプリケーション パターンと .NET - CLR/H 88 回 ~雪まつりデイ!~ バージョンWeb アプリケーション パターンと .NET - CLR/H 88 回 ~雪まつりデイ!~ バージョン
Web アプリケーション パターンと .NET - CLR/H 88 回 ~雪まつりデイ!~ バージョン
Akira Inoue
 
One ASP.NET の今とこれから
One ASP.NET の今とこれからOne ASP.NET の今とこれから
One ASP.NET の今とこれから
Akira Inoue
 
WebMatrix 2 と Azure Web Sites を使ったスマートフォンサイト構築のすすめ
WebMatrix 2 と Azure Web Sites を使ったスマートフォンサイト構築のすすめWebMatrix 2 と Azure Web Sites を使ったスマートフォンサイト構築のすすめ
WebMatrix 2 と Azure Web Sites を使ったスマートフォンサイト構築のすすめ
Akira Inoue
 
WebMatrix 2 と Azure を使ったスマートフォンサイト構築のすすめ
WebMatrix 2 と Azure を使ったスマートフォンサイト構築のすすめWebMatrix 2 と Azure を使ったスマートフォンサイト構築のすすめ
WebMatrix 2 と Azure を使ったスマートフォンサイト構築のすすめ
Akira Inoue
 
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
 

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

Programming TCP for responsiveness
Programming TCP for responsivenessProgramming TCP for responsiveness
Programming TCP for responsiveness
Kazuho 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

Recently uploaded (10)

論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 

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