SlideShare a Scribd company logo
SNS作成を通して学ぶ
安全なWebアプリ構築 第1回*
金子純也**
*第2回MPSミーティング (2014年6月7日) 資料
**Morning Project Samurai 代表
Copyright (c) 2014 Junya Kaneko
本シリーズの位置づけと目的
位置づけ:
- MPSメンバー用SNS開発プロジェクトの一環
目的:
- 安全なMPSメンバー用SNSの開発
- 安全なWebアプリの開発方法の実践的な学習
第2回MPSミーティング (2014年6月7日) 資料 Copyright (c) 2014 Junya Kaneko
目次
• Webアプリにおける安全 (概要)
• XSS脆弱性のあるサイトの改善 (実習)
• MPSメンバー用SNSについて
第2回MPSミーティング (2014年6月7日) 資料 Copyright (c) 2014 Junya Kaneko
Webアプリの定義 by W3C
HTTPによって伝達される、XHTMLやその派生とCSSで

作られた、サーバサイドまたはクライアントサイド・

プロセッシングを用いて、Web ブラウザ上であたかも

アプリケーションのように振る舞う単一または複数の

Web ページの集合
A Web page (XHTML or a variant thereof + CSS) or collection
of Web pages delivered over HTTP which use server-side or
client-side processing (e.g. JavaScript) to provide an
"application-like" experience within a Web browser. Web
applications are distinct from simple Web content (the focus
of BP1) in that they include locally executable elements of
interactivity and persistent state.
(出典: W3C, http://www.w3.org/TR/mwabp/#webapp-defined. 訳: 金子純也 )
第2回MPSミーティング (2014年6月7日) 資料 Copyright (c) 2014 Junya Kaneko
Webアプリの定義の要約
ブラウザ内でアプリケーションのように振る舞う
Webサイト
第2回MPSミーティング (2014年6月7日) 資料 Copyright (c) 2014 Junya Kaneko
Webアプリの例
Facebook
(出典: www.facebook.com) (出典: www.amazon.co.jp)
Amazon
第2回MPSミーティング (2014年6月7日) 資料 Copyright (c) 2014 Junya Kaneko
Webアプリではないサイトの例
第2回MPSミーティング (2014年6月7日) 資料 Copyright (c) 2014 Junya Kaneko
Webアプリに関わる事件1
SQLインジェクションによりショッピングサイトで

10万人分の個人情報が漏洩
被害:
- 営業停止
- 賠償金5000万円相当の買い物ポイント
- 詫び状送付関連費用
- 調査人件費
- 被害者対応人件費
- 失った顧客と信用
(出典:IPA, 脆弱性により引き起こされた被害, http://www.ipa.go.jp/files/000024375.pdf)
第2回MPSミーティング (2014年6月7日) 資料 Copyright (c) 2014 Junya Kaneko
Webアプリに関わる事件2
OSコマンド・インジェクションによるレンタルサーバ内の

200以上のサイトのトップページの改ざん
被害:
- 調査人件費
- 被害者対応人件費
- レンタルサーバ構成変更人件費
- コンテンツ復旧対応人件費
- 失った顧客と信用
(出典:IPA, 脆弱性により引き起こされた被害, http://www.ipa.go.jp/files/000024375.pdf)
第2回MPSミーティング (2014年6月7日) 資料 Copyright (c) 2014 Junya Kaneko
その他の事例
• Amazon Webサービスのダウン (2008年)

- Twitter 等の他のWebサービスに影響
• CD Universe のクレジット顧客情報の漏洩 (2000年)

- 約13万人分の個人情報が流出
• アルバイトが度を超えた悪ふざけ画像をSNSに

アップロード(2013年)

- 店の信用や(恐らく)顧客の欠失
第2回MPSミーティング (2014年6月7日) 資料 Copyright (c) 2014 Junya Kaneko
Webアプリの安全の重要性
安全でないWebアプリ
運営者 ユーザー
多大な損害
第2回MPSミーティング (2014年6月7日) 資料 Copyright (c) 2014 Junya Kaneko
Webアプリにおける事故
• データの漏洩
• データの改ざん
• データの整合性の崩壊
• クラッキング行為の踏み台となる
• ダウン
Q1: Webアプリの上記以外の事故は??
第2回MPSミーティング (2014年6月7日) 資料 Copyright (c) 2014 Junya Kaneko
Q1に対する皆の回答
• フィッシング

(似たようなサイドでだます。インラインフレーム
で、ホントのサイトを表示するように見せかける。
対象のサイトを間接的に操作可能。東京三菱UFJの
詐欺。メールできっかけを作る。)
• ユーザーの信用を逆手に取る
• プレステ情報流出
第2回MPSミーティング (2014年6月7日) 資料 Copyright (c) 2014 Junya Kaneko
Webアプリにおけるハザード
• 意図しないデータの送信
• 意図しないデータの書き換え
• 意図しないアクセス権限設定
• データ同士の関連に課された制約からの逸脱
• エラー処理漏れ
• 不正なスクリプトの受け入れ、もしくは実行
• パケット受け入れ過多
• 不正なアクセスの検知漏れ
Q2: Webアプリの上記以外のハザードは??
第2回MPSミーティング (2014年6月7日) 資料 Copyright (c) 2014 Junya Kaneko
Q2に対する皆の回答
第2回MPSミーティング (2014年6月7日) 資料 Copyright (c) 2014 Junya Kaneko
安全なWebアプリの要件
• 意図しないデータの送信をしてはならない
• 意図しないデータの書き換えをしてはならない
• 意図しないアクセス権を設定してはならない
• データ同士の関連に課された制約は守らなければならない
• エラー処理を漏らしてはならない
• パケットの受け入れ制限を適切に行わなくてはならない
• 不正なスクリプトの受け入れ、実行をしてはならない
• 不正なアクセスは検知しなければならない
Q3: 安全なWebアプリの上記以外の要件は??
第2回MPSミーティング (2014年6月7日) 資料 Copyright (c) 2014 Junya Kaneko
Q3に対する皆の回答
• DOS
• ポート解放
第2回MPSミーティング (2014年6月7日) 資料 Copyright (c) 2014 Junya Kaneko
良く知られた脆弱性1
• クロスサイト・スクリプティング (XSS)
• HTTPヘッダ・インジェクション
• SQLインジェクション
• OSコマンド・インジェクション
• メールヘッダ・インジェクション
第2回MPSミーティング (2014年6月7日) 資料 Copyright (c) 2014 Junya Kaneko
(出典: 徳丸浩, 安全なWebアプリケーションの作り方)
良く知られた脆弱性2
• ディレクトリ・トラバーサル
• クロスサイト・リクエストフォージェリ
• セッションフィクセーション
• 認証不備
• 認可不備
第2回MPSミーティング (2014年6月7日) 資料 Copyright (c) 2014 Junya Kaneko
(出典: 徳丸浩, 安全なWebアプリケーションの作り方)
• ブルートフォースアタック (BFA)
目次
• Webアプリにおける安全 (概要)
• XSS脆弱性のあるサイトの改善 (実習)
• MPSメンバー用SNSについて
第2回MPSミーティング (2014年6月7日) 資料 Copyright (c) 2014 Junya Kaneko
XSSをつく攻撃の概要
ユーザー 悪意のあるサイト
Webアプリ
(XSS)
1. アクセス 2. スクリプト
汚染された
Webアプリ
3. 提示
4. 入力
攻撃者
5. ユーザーの入力情報
第2回MPSミーティング (2014年6月7日) 資料 Copyright (c) 2014 Junya Kaneko
XSSをつく攻撃の原理
import cgi
html = """<!DOCTYPE HTML>
<html><head><title>XSS Sample 01</title></head>
<body>
<h1>XSS Sample 01</h1>
<form method='POST' action='xss01.py'>
User name: <input type='text' name='uname'></input>
<input type='submit'></input>
</form>
<p>Hello %s!</p>
</body>
</html>"""
form = cgi.FieldStorage()
print "Content-type:text/html"
print ""
print ""
name = form.getfirst("uname", "")
if name is "":
name = "guest"
print html % (name)
• Junyaと入力
• Login押下
第2回MPSミーティング (2014年6月7日) 資料 Copyright (c) 2014 Junya Kaneko
xss01.py
XSSをつく攻撃の原理 (続き)
第2回MPSミーティング (2014年6月7日) 資料 Copyright (c) 2014 Junya Kaneko
import cgi
html = """<!DOCTYPE HTML>
<html><head><title>XSS Sample 01</title></head>
<body>
<h1>XSS Sample 01</h1>
<form method='POST' action='xss01.py'>
User name: <input type='text' name='uname'></input>
<input type='submit'></input>
</form>
<p>Hello %s!</p>
</body>
</html>"""
form = cgi.FieldStorage()
print "Content-type:text/html"
print ""
print ""
name = form.getfirst("uname", "")
if name is "":
name = "guest"
print html % (name)
• JavaScript入力
• Login押下
xss01.py
XSSの原因
第2回MPSミーティング (2014年6月7日) 資料 Copyright (c) 2014 Junya Kaneko
import cgi
html = """<!DOCTYPE HTML>
<html><head><title>XSS Sample 01</title></head>
<body>
<h1>XSS Sample 01</h1>
<form method='POST' action='xss01.py'>
User name: <input type='text' name='uname'></input>
<input type='submit'></input>
</form>
<p>Hello %s!</p>
</body>
</html>"""
form = cgi.FieldStorage()
print "Content-type:text/html"
print ""
print ""
name = form.getfirst("uname", "")
if name is "":
name = "guest"
print html % (name)
• JavaScript入力
• Login押下
ユーザー入力の
エコーバック
xss01.py
XSSをつく攻撃の実験
Q4:
XSSのあるSNSのユーザーのセッションIDを抜き取る方法を

考えて、実際にコーディングしてみよう
(次スライドに、脆弱性のあるサイトのコード記載)
Q5:
XSSはWebアプリにおけるどのハザードを引き起こすか?
Q6:
XSSをなくすには?
第2回MPSミーティング (2014年6月7日) 資料 Copyright (c) 2014 Junya Kaneko
XSSのあるサイトのコード
import cgi, Cookie, mysql.connector
form = cgi.FieldStorage()
member_name = form.getfirst("mname","")
password = form.getfirst("pwd","")
query = ("SELECT id FROM members where name='%s' and pwd='%s'"
% (member_name, password))
cnx = mysql.connector.connect(user = 'root', database = 'mps')
cursor = cnx.cursor()
cursor.execute(query)
result = cursor.fetchall()
cursor.close()
cnx.close()
if len(result) == 0:
print "Content-Type: text/htmlnnn"
print """
<html>
<head>
<title>Login failure</title>
<meta http-equiv='refresh' content='1; url=http://localhost/~jyuneko/cgi-bin/safer_webapp/lecture1/q4/login.html'>
</head>
<body>
<h1>Login failure</h1>
<p>The member name %s or the given password is incorrect.</p>
</body>
</html>""" % member_name
elif len(result) == 1:
cookie = Cookie.SimpleCookie()
cookie['sid'] = 'samplesid'
print cookie
print "Content-Type: text/htmlnnn"
print """
<html>
<head>
<title>MPS SNS</title>
</head>
<body>
<h1>MPS SNS</h1>
<p>Welcome to MPS %s</p>
</body>
</html>""" % member_name
else:
print "Content-Type: text/htmlnnn"
print """
<html>
<head>
<title>Fatal database error</title>
</head>
<body>
<h1>Fatal database error</h1>
<p>A fatal database error occured. Please contact to the administrator.</p>
</body>
</html>"""
login.py
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<title>Login</title>
<style>
ul#login_form {
list-style-type: none;
}
li#login_form {
margin-bottom: 5px;
}
</style>
</head>
<body>
<h1>Login</h1>
<form method='post' action='login.py'>
<ul id='login_form'>
<li id='login_form'>Member Name: <input type='text' name='mname'></input></li>
<li id='login_form'>Password: <input type='password' name='pwd'></input></li>
<li id='login_form'><input type='submit' value='login'></input></li>
</ul>
</form>
<hr>
<address></address>
<!-- hhmts start -->Last modified: Thu Jun 5 02:54:39 JST 2014 <!-- hhmts end -->
</body> </html>
login.html
第2回MPSミーティング (2014年6月7日) 資料 Copyright (c) 2014 Junya Kaneko
Q4に対する皆の回答
第2回MPSミーティング (2014年6月7日) 資料 Copyright (c) 2014 Junya Kaneko
Q5に対する皆の回答
第2回MPSミーティング (2014年6月7日) 資料 Copyright (c) 2014 Junya Kaneko
Q6に対する皆の回答
第2回MPSミーティング (2014年6月7日) 資料 Copyright (c) 2014 Junya Kaneko
XSSへの対策
第2回MPSミーティング (2014年6月7日) 資料 Copyright (c) 2014 Junya Kaneko
(出典: IPA, セキュリティ実装 チェックリスト)
その他の脆弱性の発見と解決
Q7:
Q4のサンプルコード中に含まれる、その他の脆弱性と

その解決方法は?
第2回MPSミーティング (2014年6月7日) 資料 Copyright (c) 2014 Junya Kaneko
Q7に対する皆の回答
第2回MPSミーティング (2014年6月7日) 資料 Copyright (c) 2014 Junya Kaneko
さらなる学習の為に
• IPA: 安全なウェブサイトの作り方. 

https://www.ipa.go.jp/security/vuln/websecurity.html
• 徳丸浩: 安全なWebアプリケーションの作り方.

ソフトバンククリエイティブ出版
第2回MPSミーティング (2014年6月7日) 資料 Copyright (c) 2014 Junya Kaneko

More Related Content

What's hot

「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api
Tatsuo Kudo
 
Azure Network Security Group(NSG) はじめてのDeep Dive
Azure Network Security Group(NSG) はじめてのDeep DiveAzure Network Security Group(NSG) はじめてのDeep Dive
Azure Network Security Group(NSG) はじめてのDeep Dive
Yoshimasa Katakura
 
XXE、SSRF、安全でないデシリアライゼーション入門
XXE、SSRF、安全でないデシリアライゼーション入門XXE、SSRF、安全でないデシリアライゼーション入門
XXE、SSRF、安全でないデシリアライゼーション入門
Hiroshi Tokumaru
 
XSS再入門
XSS再入門XSS再入門
XSS再入門
Hiroshi Tokumaru
 
安全なPHPアプリケーションの作り方2014
安全なPHPアプリケーションの作り方2014安全なPHPアプリケーションの作り方2014
安全なPHPアプリケーションの作り方2014Hiroshi Tokumaru
 
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~normalian
 
体系的に学ばないXSSの話
体系的に学ばないXSSの話体系的に学ばないXSSの話
体系的に学ばないXSSの話Yutaka Maehira
 
安全なプラグインに必要なこと: 脆弱性届出状況に見る傾向と対策 (WordCampTokyo 2017)
安全なプラグインに必要なこと: 脆弱性届出状況に見る傾向と対策 (WordCampTokyo 2017)安全なプラグインに必要なこと: 脆弱性届出状況に見る傾向と対策 (WordCampTokyo 2017)
安全なプラグインに必要なこと: 脆弱性届出状況に見る傾向と対策 (WordCampTokyo 2017)
JPCERT Coordination Center
 
機械学習でWebアプリの脆弱性を見つける - Reflected XSS 編 -
機械学習でWebアプリの脆弱性を見つける - Reflected XSS 編 -機械学習でWebアプリの脆弱性を見つける - Reflected XSS 編 -
機械学習でWebアプリの脆弱性を見つける - Reflected XSS 編 -
Isao Takaesu
 
安全なWebアプリケーションの作り方2018
安全なWebアプリケーションの作り方2018安全なWebアプリケーションの作り方2018
安全なWebアプリケーションの作り方2018
Hiroshi Tokumaru
 
次世代プラットフォームのセキュリティモデル考察(前編)
次世代プラットフォームのセキュリティモデル考察(前編)次世代プラットフォームのセキュリティモデル考察(前編)
次世代プラットフォームのセキュリティモデル考察(前編)
Yosuke HASEGAWA
 
とある診断員と色々厄介な脆弱性達
とある診断員と色々厄介な脆弱性達とある診断員と色々厄介な脆弱性達
とある診断員と色々厄介な脆弱性達zaki4649
 
Azure bastion ignite the tour @tokyo 2019
Azure bastion   ignite the tour @tokyo 2019Azure bastion   ignite the tour @tokyo 2019
Azure bastion ignite the tour @tokyo 2019
Yoshimasa Katakura
 
なぜ自社で脆弱性診断を行うべきなのか
なぜ自社で脆弱性診断を行うべきなのかなぜ自社で脆弱性診断を行うべきなのか
なぜ自社で脆弱性診断を行うべきなのか
Sen Ueno
 
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (JavaDayTokyo2015)
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (JavaDayTokyo2015)脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (JavaDayTokyo2015)
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (JavaDayTokyo2015)
JPCERT Coordination Center
 
安全なPHPアプリケーションの作り方2013
安全なPHPアプリケーションの作り方2013安全なPHPアプリケーションの作り方2013
安全なPHPアプリケーションの作り方2013
Hiroshi Tokumaru
 
Webアプリでパスワード保護はどこまでやればいいか
Webアプリでパスワード保護はどこまでやればいいかWebアプリでパスワード保護はどこまでやればいいか
Webアプリでパスワード保護はどこまでやればいいかHiroshi Tokumaru
 
ウェブセキュリティの最近の話題早分かり
ウェブセキュリティの最近の話題早分かりウェブセキュリティの最近の話題早分かり
ウェブセキュリティの最近の話題早分かり
Hiroshi Tokumaru
 
owasp_evening_okinawa_7_owasp_top_10-2017_injection
owasp_evening_okinawa_7_owasp_top_10-2017_injectionowasp_evening_okinawa_7_owasp_top_10-2017_injection
owasp_evening_okinawa_7_owasp_top_10-2017_injection
tobaru_yuta
 
20150221 めとべや東京-プライベートコード共有サービス
20150221 めとべや東京-プライベートコード共有サービス20150221 めとべや東京-プライベートコード共有サービス
20150221 めとべや東京-プライベートコード共有サービス
Takayoshi Tanaka
 

What's hot (20)

「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api
「金融API向けOAuth」にみるOAuthプロファイリングの実際 #secjaws #finsecjaws01 #oauth #oidc #api
 
Azure Network Security Group(NSG) はじめてのDeep Dive
Azure Network Security Group(NSG) はじめてのDeep DiveAzure Network Security Group(NSG) はじめてのDeep Dive
Azure Network Security Group(NSG) はじめてのDeep Dive
 
XXE、SSRF、安全でないデシリアライゼーション入門
XXE、SSRF、安全でないデシリアライゼーション入門XXE、SSRF、安全でないデシリアライゼーション入門
XXE、SSRF、安全でないデシリアライゼーション入門
 
XSS再入門
XSS再入門XSS再入門
XSS再入門
 
安全なPHPアプリケーションの作り方2014
安全なPHPアプリケーションの作り方2014安全なPHPアプリケーションの作り方2014
安全なPHPアプリケーションの作り方2014
 
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
 
体系的に学ばないXSSの話
体系的に学ばないXSSの話体系的に学ばないXSSの話
体系的に学ばないXSSの話
 
安全なプラグインに必要なこと: 脆弱性届出状況に見る傾向と対策 (WordCampTokyo 2017)
安全なプラグインに必要なこと: 脆弱性届出状況に見る傾向と対策 (WordCampTokyo 2017)安全なプラグインに必要なこと: 脆弱性届出状況に見る傾向と対策 (WordCampTokyo 2017)
安全なプラグインに必要なこと: 脆弱性届出状況に見る傾向と対策 (WordCampTokyo 2017)
 
機械学習でWebアプリの脆弱性を見つける - Reflected XSS 編 -
機械学習でWebアプリの脆弱性を見つける - Reflected XSS 編 -機械学習でWebアプリの脆弱性を見つける - Reflected XSS 編 -
機械学習でWebアプリの脆弱性を見つける - Reflected XSS 編 -
 
安全なWebアプリケーションの作り方2018
安全なWebアプリケーションの作り方2018安全なWebアプリケーションの作り方2018
安全なWebアプリケーションの作り方2018
 
次世代プラットフォームのセキュリティモデル考察(前編)
次世代プラットフォームのセキュリティモデル考察(前編)次世代プラットフォームのセキュリティモデル考察(前編)
次世代プラットフォームのセキュリティモデル考察(前編)
 
とある診断員と色々厄介な脆弱性達
とある診断員と色々厄介な脆弱性達とある診断員と色々厄介な脆弱性達
とある診断員と色々厄介な脆弱性達
 
Azure bastion ignite the tour @tokyo 2019
Azure bastion   ignite the tour @tokyo 2019Azure bastion   ignite the tour @tokyo 2019
Azure bastion ignite the tour @tokyo 2019
 
なぜ自社で脆弱性診断を行うべきなのか
なぜ自社で脆弱性診断を行うべきなのかなぜ自社で脆弱性診断を行うべきなのか
なぜ自社で脆弱性診断を行うべきなのか
 
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (JavaDayTokyo2015)
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (JavaDayTokyo2015)脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (JavaDayTokyo2015)
脆弱性事例に学ぶセキュアコーディング「SSL/TLS証明書検証」編 (JavaDayTokyo2015)
 
安全なPHPアプリケーションの作り方2013
安全なPHPアプリケーションの作り方2013安全なPHPアプリケーションの作り方2013
安全なPHPアプリケーションの作り方2013
 
Webアプリでパスワード保護はどこまでやればいいか
Webアプリでパスワード保護はどこまでやればいいかWebアプリでパスワード保護はどこまでやればいいか
Webアプリでパスワード保護はどこまでやればいいか
 
ウェブセキュリティの最近の話題早分かり
ウェブセキュリティの最近の話題早分かりウェブセキュリティの最近の話題早分かり
ウェブセキュリティの最近の話題早分かり
 
owasp_evening_okinawa_7_owasp_top_10-2017_injection
owasp_evening_okinawa_7_owasp_top_10-2017_injectionowasp_evening_okinawa_7_owasp_top_10-2017_injection
owasp_evening_okinawa_7_owasp_top_10-2017_injection
 
20150221 めとべや東京-プライベートコード共有サービス
20150221 めとべや東京-プライベートコード共有サービス20150221 めとべや東京-プライベートコード共有サービス
20150221 めとべや東京-プライベートコード共有サービス
 

Similar to 安全なWebアプリ構築1回

Python で OAuth2 をつかってみよう!
Python で OAuth2 をつかってみよう!Python で OAuth2 をつかってみよう!
Python で OAuth2 をつかってみよう!
Project Samurai
 
HTML5 Web アプリケーションのセキュリティ
HTML5 Web アプリケーションのセキュリティHTML5 Web アプリケーションのセキュリティ
HTML5 Web アプリケーションのセキュリティ
彰 村地
 
クラウドセキュリティ基礎 #seccamp
クラウドセキュリティ基礎 #seccampクラウドセキュリティ基礎 #seccamp
クラウドセキュリティ基礎 #seccamp
Masahiro NAKAYAMA
 
ADFS クレームルール言語 Deep Dive
ADFS クレームルール言語 Deep DiveADFS クレームルール言語 Deep Dive
ADFS クレームルール言語 Deep Dive
Suguru Kunii
 
20161102 cms security
20161102 cms  security20161102 cms  security
20161102 cms security
Six Apart
 
細工された製品が突然牙をむく「サプライチェーン攻撃」の脅威
細工された製品が突然牙をむく「サプライチェーン攻撃」の脅威細工された製品が突然牙をむく「サプライチェーン攻撃」の脅威
細工された製品が突然牙をむく「サプライチェーン攻撃」の脅威
Noriaki Hayashi
 
20140716 Movable Type seminar
20140716 Movable Type seminar20140716 Movable Type seminar
20140716 Movable Type seminarSix Apart
 
20180224 azure securitycenter
20180224 azure securitycenter20180224 azure securitycenter
20180224 azure securitycenter
Masakazu Kishima
 
Blojsom におけるクロスサイトスクリプティングの脆弱性
Blojsom におけるクロスサイトスクリプティングの脆弱性Blojsom におけるクロスサイトスクリプティングの脆弱性
Blojsom におけるクロスサイトスクリプティングの脆弱性JPCERT Coordination Center
 
アプリケーションのシフトレフトを実践するには
アプリケーションのシフトレフトを実践するにはアプリケーションのシフトレフトを実践するには
アプリケーションのシフトレフトを実践するには
Riotaro OKADA
 
継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発
継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発
継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発
Takashi Watanabe
 
20160208 power cms_cloud_public
20160208 power cms_cloud_public20160208 power cms_cloud_public
20160208 power cms_cloud_public
Six Apart
 
OWASP ASVS と Cheat Sheet シリーズ (日本語版) のご紹介 (OSC2016Hokkaido)
OWASP ASVS と Cheat Sheet シリーズ (日本語版) のご紹介 (OSC2016Hokkaido)OWASP ASVS と Cheat Sheet シリーズ (日本語版) のご紹介 (OSC2016Hokkaido)
OWASP ASVS と Cheat Sheet シリーズ (日本語版) のご紹介 (OSC2016Hokkaido)
JPCERT Coordination Center
 
20160717 csc sec_bd
20160717 csc sec_bd20160717 csc sec_bd
20160717 csc sec_bd
寛人 種市
 
Signature & Model Hybrid Platform
Signature & Model Hybrid PlatformSignature & Model Hybrid Platform
Signature & Model Hybrid Platform
YOJI WATANABE
 
ライブコーディングとデモで理解するWebセキュリティの基礎
ライブコーディングとデモで理解するWebセキュリティの基礎ライブコーディングとデモで理解するWebセキュリティの基礎
ライブコーディングとデモで理解するWebセキュリティの基礎
Takahisa Kishiya
 
Browser andsecurity2015
Browser andsecurity2015Browser andsecurity2015
Browser andsecurity2015
彰 村地
 
OAuth Security Workshop 2017 #osw17
OAuth Security Workshop 2017 #osw17OAuth Security Workshop 2017 #osw17
OAuth Security Workshop 2017 #osw17
Tatsuo Kudo
 
Essentials of container
Essentials of containerEssentials of container
Essentials of container
Toru Makabe
 
【日商USA】webinar 2022.6.24 RSAカンファレンス2022 フィードバック
【日商USA】webinar 2022.6.24 RSAカンファレンス2022 フィードバック【日商USA】webinar 2022.6.24 RSAカンファレンス2022 フィードバック
【日商USA】webinar 2022.6.24 RSAカンファレンス2022 フィードバック
NISSHO USA
 

Similar to 安全なWebアプリ構築1回 (20)

Python で OAuth2 をつかってみよう!
Python で OAuth2 をつかってみよう!Python で OAuth2 をつかってみよう!
Python で OAuth2 をつかってみよう!
 
HTML5 Web アプリケーションのセキュリティ
HTML5 Web アプリケーションのセキュリティHTML5 Web アプリケーションのセキュリティ
HTML5 Web アプリケーションのセキュリティ
 
クラウドセキュリティ基礎 #seccamp
クラウドセキュリティ基礎 #seccampクラウドセキュリティ基礎 #seccamp
クラウドセキュリティ基礎 #seccamp
 
ADFS クレームルール言語 Deep Dive
ADFS クレームルール言語 Deep DiveADFS クレームルール言語 Deep Dive
ADFS クレームルール言語 Deep Dive
 
20161102 cms security
20161102 cms  security20161102 cms  security
20161102 cms security
 
細工された製品が突然牙をむく「サプライチェーン攻撃」の脅威
細工された製品が突然牙をむく「サプライチェーン攻撃」の脅威細工された製品が突然牙をむく「サプライチェーン攻撃」の脅威
細工された製品が突然牙をむく「サプライチェーン攻撃」の脅威
 
20140716 Movable Type seminar
20140716 Movable Type seminar20140716 Movable Type seminar
20140716 Movable Type seminar
 
20180224 azure securitycenter
20180224 azure securitycenter20180224 azure securitycenter
20180224 azure securitycenter
 
Blojsom におけるクロスサイトスクリプティングの脆弱性
Blojsom におけるクロスサイトスクリプティングの脆弱性Blojsom におけるクロスサイトスクリプティングの脆弱性
Blojsom におけるクロスサイトスクリプティングの脆弱性
 
アプリケーションのシフトレフトを実践するには
アプリケーションのシフトレフトを実践するにはアプリケーションのシフトレフトを実践するには
アプリケーションのシフトレフトを実践するには
 
継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発
継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発
継続的デリバリーとサービス仮想化で変わる、エンタープライズアジャイル開発
 
20160208 power cms_cloud_public
20160208 power cms_cloud_public20160208 power cms_cloud_public
20160208 power cms_cloud_public
 
OWASP ASVS と Cheat Sheet シリーズ (日本語版) のご紹介 (OSC2016Hokkaido)
OWASP ASVS と Cheat Sheet シリーズ (日本語版) のご紹介 (OSC2016Hokkaido)OWASP ASVS と Cheat Sheet シリーズ (日本語版) のご紹介 (OSC2016Hokkaido)
OWASP ASVS と Cheat Sheet シリーズ (日本語版) のご紹介 (OSC2016Hokkaido)
 
20160717 csc sec_bd
20160717 csc sec_bd20160717 csc sec_bd
20160717 csc sec_bd
 
Signature & Model Hybrid Platform
Signature & Model Hybrid PlatformSignature & Model Hybrid Platform
Signature & Model Hybrid Platform
 
ライブコーディングとデモで理解するWebセキュリティの基礎
ライブコーディングとデモで理解するWebセキュリティの基礎ライブコーディングとデモで理解するWebセキュリティの基礎
ライブコーディングとデモで理解するWebセキュリティの基礎
 
Browser andsecurity2015
Browser andsecurity2015Browser andsecurity2015
Browser andsecurity2015
 
OAuth Security Workshop 2017 #osw17
OAuth Security Workshop 2017 #osw17OAuth Security Workshop 2017 #osw17
OAuth Security Workshop 2017 #osw17
 
Essentials of container
Essentials of containerEssentials of container
Essentials of container
 
【日商USA】webinar 2022.6.24 RSAカンファレンス2022 フィードバック
【日商USA】webinar 2022.6.24 RSAカンファレンス2022 フィードバック【日商USA】webinar 2022.6.24 RSAカンファレンス2022 フィードバック
【日商USA】webinar 2022.6.24 RSAカンファレンス2022 フィードバック
 

More from Project Samurai

数学的基礎から学ぶ Deep Learning (with Python) Vol. 12
数学的基礎から学ぶ Deep Learning (with Python) Vol. 12数学的基礎から学ぶ Deep Learning (with Python) Vol. 12
数学的基礎から学ぶ Deep Learning (with Python) Vol. 12
Project Samurai
 
Python で画像処理をやってみよう! -SIFT 第7回-
Python で画像処理をやってみよう! -SIFT 第7回-Python で画像処理をやってみよう! -SIFT 第7回-
Python で画像処理をやってみよう! -SIFT 第7回-
Project Samurai
 
数学的基礎から学ぶ Deep Learning (with Python) Vol. 9
数学的基礎から学ぶ Deep Learning (with Python) Vol. 9数学的基礎から学ぶ Deep Learning (with Python) Vol. 9
数学的基礎から学ぶ Deep Learning (with Python) Vol. 9
Project Samurai
 
Python で画像処理をやってみよう! -SIFT 第6回-
Python で画像処理をやってみよう! -SIFT 第6回-Python で画像処理をやってみよう! -SIFT 第6回-
Python で画像処理をやってみよう! -SIFT 第6回-
Project Samurai
 
数学的基礎から学ぶ Deep Learning (with Python) Vol. 8
数学的基礎から学ぶ Deep Learning (with Python) Vol. 8数学的基礎から学ぶ Deep Learning (with Python) Vol. 8
数学的基礎から学ぶ Deep Learning (with Python) Vol. 8
Project Samurai
 
数学的基礎から学ぶ Deep Learning (with Python) Vol. 7
数学的基礎から学ぶ Deep Learning (with Python) Vol. 7数学的基礎から学ぶ Deep Learning (with Python) Vol. 7
数学的基礎から学ぶ Deep Learning (with Python) Vol. 7
Project Samurai
 
Python で画像処理をやってみよう! -SIFT 第5回-
Python で画像処理をやってみよう! -SIFT 第5回-Python で画像処理をやってみよう! -SIFT 第5回-
Python で画像処理をやってみよう! -SIFT 第5回-
Project Samurai
 
数学的基礎から学ぶ Deep Learning (with Python) Vol. 6
数学的基礎から学ぶ Deep Learning (with Python) Vol. 6数学的基礎から学ぶ Deep Learning (with Python) Vol. 6
数学的基礎から学ぶ Deep Learning (with Python) Vol. 6
Project Samurai
 
Mpsy20160423
Mpsy20160423Mpsy20160423
Mpsy20160423
Project Samurai
 
Make your Artificial Intelligence
Make your Artificial IntelligenceMake your Artificial Intelligence
Make your Artificial Intelligence
Project Samurai
 
数学的基礎から学ぶ Deep Learning (with Python) Vol. 4
数学的基礎から学ぶ Deep Learning (with Python) Vol. 4数学的基礎から学ぶ Deep Learning (with Python) Vol. 4
数学的基礎から学ぶ Deep Learning (with Python) Vol. 4
Project Samurai
 
数学的基礎から学ぶ Deep Learning (with Python) Vol. 3
数学的基礎から学ぶ Deep Learning (with Python) Vol. 3数学的基礎から学ぶ Deep Learning (with Python) Vol. 3
数学的基礎から学ぶ Deep Learning (with Python) Vol. 3
Project Samurai
 
数学的基礎から学ぶ Deep Learning (with Python) Vol. 2
数学的基礎から学ぶ Deep Learning (with Python) Vol. 2数学的基礎から学ぶ Deep Learning (with Python) Vol. 2
数学的基礎から学ぶ Deep Learning (with Python) Vol. 2
Project Samurai
 
数学的基礎から学ぶ Deep Learning (with Python) Vol. 1
数学的基礎から学ぶ Deep Learning (with Python) Vol. 1数学的基礎から学ぶ Deep Learning (with Python) Vol. 1
数学的基礎から学ぶ Deep Learning (with Python) Vol. 1
Project Samurai
 
Python で画像処理をやってみよう!第11回 - SIFT Vol.1 キーポイント候補 -
Python で画像処理をやってみよう!第11回 - SIFT Vol.1 キーポイント候補 -Python で画像処理をやってみよう!第11回 - SIFT Vol.1 キーポイント候補 -
Python で画像処理をやってみよう!第11回 - SIFT Vol.1 キーポイント候補 -
Project Samurai
 
Instagram API を使ってウェブアプリを作ろう!
Instagram API を使ってウェブアプリを作ろう!Instagram API を使ってウェブアプリを作ろう!
Instagram API を使ってウェブアプリを作ろう!
Project Samurai
 
Pythonで画像処理をやってみよう!第8回 - Scale-space 第7回 -
Pythonで画像処理をやってみよう!第8回 - Scale-space 第7回 -Pythonで画像処理をやってみよう!第8回 - Scale-space 第7回 -
Pythonで画像処理をやってみよう!第8回 - Scale-space 第7回 -
Project Samurai
 
JavaScript でパックマン!第7回 (一旦最終回)
JavaScript でパックマン!第7回 (一旦最終回)JavaScript でパックマン!第7回 (一旦最終回)
JavaScript でパックマン!第7回 (一旦最終回)
Project Samurai
 
Pythonで画像処理をやってみよう!第7回 - Scale-space 第6回 -
Pythonで画像処理をやってみよう!第7回 - Scale-space 第6回 -Pythonで画像処理をやってみよう!第7回 - Scale-space 第6回 -
Pythonで画像処理をやってみよう!第7回 - Scale-space 第6回 -
Project Samurai
 
JavaScript でパックマン!第6回
JavaScript でパックマン!第6回JavaScript でパックマン!第6回
JavaScript でパックマン!第6回
Project Samurai
 

More from Project Samurai (20)

数学的基礎から学ぶ Deep Learning (with Python) Vol. 12
数学的基礎から学ぶ Deep Learning (with Python) Vol. 12数学的基礎から学ぶ Deep Learning (with Python) Vol. 12
数学的基礎から学ぶ Deep Learning (with Python) Vol. 12
 
Python で画像処理をやってみよう! -SIFT 第7回-
Python で画像処理をやってみよう! -SIFT 第7回-Python で画像処理をやってみよう! -SIFT 第7回-
Python で画像処理をやってみよう! -SIFT 第7回-
 
数学的基礎から学ぶ Deep Learning (with Python) Vol. 9
数学的基礎から学ぶ Deep Learning (with Python) Vol. 9数学的基礎から学ぶ Deep Learning (with Python) Vol. 9
数学的基礎から学ぶ Deep Learning (with Python) Vol. 9
 
Python で画像処理をやってみよう! -SIFT 第6回-
Python で画像処理をやってみよう! -SIFT 第6回-Python で画像処理をやってみよう! -SIFT 第6回-
Python で画像処理をやってみよう! -SIFT 第6回-
 
数学的基礎から学ぶ Deep Learning (with Python) Vol. 8
数学的基礎から学ぶ Deep Learning (with Python) Vol. 8数学的基礎から学ぶ Deep Learning (with Python) Vol. 8
数学的基礎から学ぶ Deep Learning (with Python) Vol. 8
 
数学的基礎から学ぶ Deep Learning (with Python) Vol. 7
数学的基礎から学ぶ Deep Learning (with Python) Vol. 7数学的基礎から学ぶ Deep Learning (with Python) Vol. 7
数学的基礎から学ぶ Deep Learning (with Python) Vol. 7
 
Python で画像処理をやってみよう! -SIFT 第5回-
Python で画像処理をやってみよう! -SIFT 第5回-Python で画像処理をやってみよう! -SIFT 第5回-
Python で画像処理をやってみよう! -SIFT 第5回-
 
数学的基礎から学ぶ Deep Learning (with Python) Vol. 6
数学的基礎から学ぶ Deep Learning (with Python) Vol. 6数学的基礎から学ぶ Deep Learning (with Python) Vol. 6
数学的基礎から学ぶ Deep Learning (with Python) Vol. 6
 
Mpsy20160423
Mpsy20160423Mpsy20160423
Mpsy20160423
 
Make your Artificial Intelligence
Make your Artificial IntelligenceMake your Artificial Intelligence
Make your Artificial Intelligence
 
数学的基礎から学ぶ Deep Learning (with Python) Vol. 4
数学的基礎から学ぶ Deep Learning (with Python) Vol. 4数学的基礎から学ぶ Deep Learning (with Python) Vol. 4
数学的基礎から学ぶ Deep Learning (with Python) Vol. 4
 
数学的基礎から学ぶ Deep Learning (with Python) Vol. 3
数学的基礎から学ぶ Deep Learning (with Python) Vol. 3数学的基礎から学ぶ Deep Learning (with Python) Vol. 3
数学的基礎から学ぶ Deep Learning (with Python) Vol. 3
 
数学的基礎から学ぶ Deep Learning (with Python) Vol. 2
数学的基礎から学ぶ Deep Learning (with Python) Vol. 2数学的基礎から学ぶ Deep Learning (with Python) Vol. 2
数学的基礎から学ぶ Deep Learning (with Python) Vol. 2
 
数学的基礎から学ぶ Deep Learning (with Python) Vol. 1
数学的基礎から学ぶ Deep Learning (with Python) Vol. 1数学的基礎から学ぶ Deep Learning (with Python) Vol. 1
数学的基礎から学ぶ Deep Learning (with Python) Vol. 1
 
Python で画像処理をやってみよう!第11回 - SIFT Vol.1 キーポイント候補 -
Python で画像処理をやってみよう!第11回 - SIFT Vol.1 キーポイント候補 -Python で画像処理をやってみよう!第11回 - SIFT Vol.1 キーポイント候補 -
Python で画像処理をやってみよう!第11回 - SIFT Vol.1 キーポイント候補 -
 
Instagram API を使ってウェブアプリを作ろう!
Instagram API を使ってウェブアプリを作ろう!Instagram API を使ってウェブアプリを作ろう!
Instagram API を使ってウェブアプリを作ろう!
 
Pythonで画像処理をやってみよう!第8回 - Scale-space 第7回 -
Pythonで画像処理をやってみよう!第8回 - Scale-space 第7回 -Pythonで画像処理をやってみよう!第8回 - Scale-space 第7回 -
Pythonで画像処理をやってみよう!第8回 - Scale-space 第7回 -
 
JavaScript でパックマン!第7回 (一旦最終回)
JavaScript でパックマン!第7回 (一旦最終回)JavaScript でパックマン!第7回 (一旦最終回)
JavaScript でパックマン!第7回 (一旦最終回)
 
Pythonで画像処理をやってみよう!第7回 - Scale-space 第6回 -
Pythonで画像処理をやってみよう!第7回 - Scale-space 第6回 -Pythonで画像処理をやってみよう!第7回 - Scale-space 第6回 -
Pythonで画像処理をやってみよう!第7回 - Scale-space 第6回 -
 
JavaScript でパックマン!第6回
JavaScript でパックマン!第6回JavaScript でパックマン!第6回
JavaScript でパックマン!第6回
 

安全なWebアプリ構築1回