Suche senden
Hochladen
日本語消えたスライド
•
2 gefällt mir
•
1,904 views
Masashi Shinbara
Folgen
Osaka フォントは ok。 ヒラギノフォントが ng っぽい。
Weniger lesen
Mehr lesen
Technologie
Melden
Teilen
Melden
Teilen
1 von 31
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
Twilio入門 -Web アプリ編-
Twilio入門 -Web アプリ編-
Masashi Shinbara
Twilio を使えば簡単にできる アプリケーションと電話/SMS連携
Twilio を使えば簡単にできる アプリケーションと電話/SMS連携
Masashi Shinbara
リッチなプッシュ通知の実践的運用ノウハウ
リッチなプッシュ通知の実践的運用ノウハウ
pLucky
わかってるフレームワーク Laravel
わかってるフレームワーク Laravel
Masashi Shinbara
Twilio API を PHP で触ってみよう
Twilio API を PHP で触ってみよう
Masashi Shinbara
Kintone hands on
Kintone hands on
twilioforkwc
最近つくったWebサイト作成ツールをおひろめ
最近つくったWebサイト作成ツールをおひろめ
Masaki Yamamoto
[BA01] もうすぐ満 6 歳! Office 365 の最新機能で到達する働き方改革の姿
[BA01] もうすぐ満 6 歳! Office 365 の最新機能で到達する働き方改革の姿
de:code 2017
Empfohlen
Twilio入門 -Web アプリ編-
Twilio入門 -Web アプリ編-
Masashi Shinbara
Twilio を使えば簡単にできる アプリケーションと電話/SMS連携
Twilio を使えば簡単にできる アプリケーションと電話/SMS連携
Masashi Shinbara
リッチなプッシュ通知の実践的運用ノウハウ
リッチなプッシュ通知の実践的運用ノウハウ
pLucky
わかってるフレームワーク Laravel
わかってるフレームワーク Laravel
Masashi Shinbara
Twilio API を PHP で触ってみよう
Twilio API を PHP で触ってみよう
Masashi Shinbara
Kintone hands on
Kintone hands on
twilioforkwc
最近つくったWebサイト作成ツールをおひろめ
最近つくったWebサイト作成ツールをおひろめ
Masaki Yamamoto
[BA01] もうすぐ満 6 歳! Office 365 の最新機能で到達する働き方改革の姿
[BA01] もうすぐ満 6 歳! Office 365 の最新機能で到達する働き方改革の姿
de:code 2017
いまどきのPHP開発現場 -2015年秋-
いまどきのPHP開発現場 -2015年秋-
Masashi Shinbara
レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2
レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2
Masashi Shinbara
先取り!PHP 7 と WordPress
先取り!PHP 7 と WordPress
Masashi Shinbara
レイヤードアーキテクチャを意識したPHPアプリケーションの構築
レイヤードアーキテクチャを意識したPHPアプリケーションの構築
Masashi Shinbara
How to learn Laravel5 application from Authentication
How to learn Laravel5 application from Authentication
Masashi Shinbara
認証機能で学ぶ Laravel 5 アプリケーション
認証機能で学ぶ Laravel 5 アプリケーション
Masashi Shinbara
Azure Websites で作るスケーラブルな PHP アプリケーション
Azure Websites で作るスケーラブルな PHP アプリケーション
Masashi Shinbara
ビルドサーバで使うDocker
ビルドサーバで使うDocker
Masashi Shinbara
Ansible ではじめるサーバ作業の自動化
Ansible ではじめるサーバ作業の自動化
Masashi Shinbara
開発現場で活用するVagrant
開発現場で活用するVagrant
Masashi Shinbara
PHPコードではなく PHPコードの「書き方」を知る
PHPコードではなく PHPコードの「書き方」を知る
Masashi Shinbara
Heroku で作る スケーラブルな PHP アプリケーション
Heroku で作る スケーラブルな PHP アプリケーション
Masashi Shinbara
Vagrant体験入門
Vagrant体験入門
Masashi Shinbara
VagrantユーザのためのDocker入門
VagrantユーザのためのDocker入門
Masashi Shinbara
Laravel ユーザなら知っておくべきAuthオートログイン
Laravel ユーザなら知っておくべきAuthオートログイン
Masashi Shinbara
キャラ立ちしたエンジニアになる!
キャラ立ちしたエンジニアになる!
Masashi Shinbara
Composer 再入門
Composer 再入門
Masashi Shinbara
Vagrant で PHP 開発環境を作る ハンズオン
Vagrant で PHP 開発環境を作る ハンズオン
Masashi Shinbara
いまどきのPHP
いまどきのPHP
Masashi Shinbara
Vagrant で作る PHP 開発環境 [実践編]
Vagrant で作る PHP 開発環境 [実践編]
Masashi Shinbara
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Weitere ähnliche Inhalte
Mehr von Masashi Shinbara
いまどきのPHP開発現場 -2015年秋-
いまどきのPHP開発現場 -2015年秋-
Masashi Shinbara
レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2
レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2
Masashi Shinbara
先取り!PHP 7 と WordPress
先取り!PHP 7 と WordPress
Masashi Shinbara
レイヤードアーキテクチャを意識したPHPアプリケーションの構築
レイヤードアーキテクチャを意識したPHPアプリケーションの構築
Masashi Shinbara
How to learn Laravel5 application from Authentication
How to learn Laravel5 application from Authentication
Masashi Shinbara
認証機能で学ぶ Laravel 5 アプリケーション
認証機能で学ぶ Laravel 5 アプリケーション
Masashi Shinbara
Azure Websites で作るスケーラブルな PHP アプリケーション
Azure Websites で作るスケーラブルな PHP アプリケーション
Masashi Shinbara
ビルドサーバで使うDocker
ビルドサーバで使うDocker
Masashi Shinbara
Ansible ではじめるサーバ作業の自動化
Ansible ではじめるサーバ作業の自動化
Masashi Shinbara
開発現場で活用するVagrant
開発現場で活用するVagrant
Masashi Shinbara
PHPコードではなく PHPコードの「書き方」を知る
PHPコードではなく PHPコードの「書き方」を知る
Masashi Shinbara
Heroku で作る スケーラブルな PHP アプリケーション
Heroku で作る スケーラブルな PHP アプリケーション
Masashi Shinbara
Vagrant体験入門
Vagrant体験入門
Masashi Shinbara
VagrantユーザのためのDocker入門
VagrantユーザのためのDocker入門
Masashi Shinbara
Laravel ユーザなら知っておくべきAuthオートログイン
Laravel ユーザなら知っておくべきAuthオートログイン
Masashi Shinbara
キャラ立ちしたエンジニアになる!
キャラ立ちしたエンジニアになる!
Masashi Shinbara
Composer 再入門
Composer 再入門
Masashi Shinbara
Vagrant で PHP 開発環境を作る ハンズオン
Vagrant で PHP 開発環境を作る ハンズオン
Masashi Shinbara
いまどきのPHP
いまどきのPHP
Masashi Shinbara
Vagrant で作る PHP 開発環境 [実践編]
Vagrant で作る PHP 開発環境 [実践編]
Masashi Shinbara
Mehr von Masashi Shinbara
(20)
いまどきのPHP開発現場 -2015年秋-
いまどきのPHP開発現場 -2015年秋-
レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2
レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2
先取り!PHP 7 と WordPress
先取り!PHP 7 と WordPress
レイヤードアーキテクチャを意識したPHPアプリケーションの構築
レイヤードアーキテクチャを意識したPHPアプリケーションの構築
How to learn Laravel5 application from Authentication
How to learn Laravel5 application from Authentication
認証機能で学ぶ Laravel 5 アプリケーション
認証機能で学ぶ Laravel 5 アプリケーション
Azure Websites で作るスケーラブルな PHP アプリケーション
Azure Websites で作るスケーラブルな PHP アプリケーション
ビルドサーバで使うDocker
ビルドサーバで使うDocker
Ansible ではじめるサーバ作業の自動化
Ansible ではじめるサーバ作業の自動化
開発現場で活用するVagrant
開発現場で活用するVagrant
PHPコードではなく PHPコードの「書き方」を知る
PHPコードではなく PHPコードの「書き方」を知る
Heroku で作る スケーラブルな PHP アプリケーション
Heroku で作る スケーラブルな PHP アプリケーション
Vagrant体験入門
Vagrant体験入門
VagrantユーザのためのDocker入門
VagrantユーザのためのDocker入門
Laravel ユーザなら知っておくべきAuthオートログイン
Laravel ユーザなら知っておくべきAuthオートログイン
キャラ立ちしたエンジニアになる!
キャラ立ちしたエンジニアになる!
Composer 再入門
Composer 再入門
Vagrant で PHP 開発環境を作る ハンズオン
Vagrant で PHP 開発環境を作る ハンズオン
いまどきのPHP
いまどきのPHP
Vagrant で作る PHP 開発環境 [実践編]
Vagrant で作る PHP 開発環境 [実践編]
Kürzlich hochgeladen
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Hiroshi Tomioka
Kürzlich hochgeladen
(11)
論文紹介: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の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
日本語消えたスライド
1.
@shin1x1 2016/02/27 TwilioJP-UG大阪&AWScean合同勉強会 Twilio と
Web アプリ 連携におけるセキュリティ
2.
https://github.com/shin1x1/twilio-api-security-demo
3.
TwilioとWebアプリの連携
4.
サンプルアプリケーション (c) 2016 Masashi
Shinbara @shin1x1 • 会員向けポイント管理システム • 電話をかけると現在のポイントが聞ける • 電話番号で認証
5.
(c) 2016 Masashi
Shinbara @shin1x1 電話をかける 図図 - twilio 図図 - twilio Twilio Webサーバ会員 090-xxxx-xxxx
6.
(c) 2016 Masashi
Shinbara @shin1x1 電話番号が送られる 図図 - twilio 図図 - twilio HTTPリクエスト From: 090-xxxx-xxxx (発信元電話番号)
7.
(c) 2016 Masashi
Shinbara @shin1x1 会員認証 図図 - twilio 図図 - twilio 090-xxx-xxx で DB を参照して 会員を特定する
8.
(c) 2016 Masashi
Shinbara @shin1x1 情報をXMLで返す 図図 - twilio 図図 - twilio TwiML(XML)を返す
9.
(c) 2016 Masashi
Shinbara @shin1x1 情報をTwiMLで返す 図図 - twilio 図図 - twilio TwiML(XML)を返す <?xml version="1.0" encoding="UTF-8"?> <Response> <Say voice="woman" language="ja-JP"> 鈴木さんのポイントは 50 ポイントです。 </Say> </Response>
10.
(c) 2016 Masashi
Shinbara @shin1x1 音声を流す 図図 - twilio 図図 - twilio 音声再生
11.
(c) 2016 Masashi
Shinbara @shin1x1 デモ
12.
(c) 2016 Masashi
Shinbara @shin1x1 起こりうる問題
13.
(c) 2016 Masashi
Shinbara @shin1x1 HTTPの世界 図図 - twilio 図図 - twilio Twilio Webサーバ会員
14.
(c) 2016 Masashi
Shinbara @shin1x1 偽装リクエスト 図図 - twilio 図図 - twilio 電話番号を POST
15.
(c) 2016 Masashi
Shinbara @shin1x1 偽装リクエスト 図図 - twilio 図図 - twilio TwiMLを 取得
16.
(c) 2016 Masashi
Shinbara @shin1x1 偽装リクエスト 図図 - twilio 図図 - twilio Twilio Webサーバ会員 $ curl -d "From=%2B819012345678" https://example.com/api/calling <?xml version="1.0" encoding="UTF-8"?> <Response> <Say voice="woman" language="ja-JP"> 田中さんのポイントは 100 ポイントです。 </Say> </Response>
17.
(c) 2016 Masashi
Shinbara @shin1x1 Twilio を偽ったリクエスト •偽装したリクエストをWebアプリに送信 •情報取得、操作などの不正利用の可能性
18.
(c) 2016 Masashi
Shinbara @shin1x1 対策
19.
偽装リクエスト対策 (c) 2016 Masashi
Shinbara @shin1x1 1. 通信経路の暗号化 2. 通信元を制限 3. リクエストを検証
20.
(c) 2016 Masashi
Shinbara @shin1x1 1. 通信経路の暗号化 • HTTPS を利用する • 自己署名の証明書は NG • TLS を利用(SSLv3 は、廃止予定)
21.
(c) 2016 Masashi
Shinbara @shin1x1 Webアプリケーションのエンドポイント https:// にする
22.
(c) 2016 Masashi
Shinbara @shin1x1 2. 通信元を制限 • HTTP Basic認証 / Digest認証 • ユーザ、パスワードを URL に含める • https://user:pass@example.com/
23.
(c) 2016 Masashi
Shinbara @shin1x1 IPアドレスによる制限は? https://www.twilio.com/help/faq/twilio-basics/which-ip-addresses-will-twilios-requests-come- from • Twilio の送信元 IP アドレスは非公開 • 代わりにリクエストの検証を行う • どうしても必要なら相談
24.
(c) 2016 Masashi
Shinbara @shin1x1 3. リクエストの検証 ・Twilio からのリクエストであることを確認 • 妥当であれば処理を実行 • そうでなければ処理を中断(エラー)
25.
(c) 2016 Masashi
Shinbara @shin1x1 HMAC-SHA1署名による検証 ・ X-Twilio-Signatureヘッダ • 所定のアルゴリズムで署名を算出 • 上記、2つを比較して合致すれば ok
26.
X-Twilio-Signatureヘッダ X-Twilio-Signature: +sndfa0paQ+m2P0PZ4U/2lnLkHw=
27.
署名算出 ・URL - https://example.com/calling ・POSTパラメータ(キーでソート) Key2=value2 Key1=value1 From=+819012345678 https://example.com/calling From+819012345678Key1value1Key2value2
28.
署名算出 ・AuthTokenをキーにして、HMAC-SHA1署名 ・base64でエンコード +sndfa0paQ+m2P0PZ4U/2lnLkHw= https://example.com/calling Key1value1Key2value2From+819012345678
29.
署名が一致するか 生成した署名 +sndfa0paQ+m2P0PZ4U/2lnLkHw= X-Twilio-Signature: +sndfa0paQ+m2P0PZ4U/2lnLkHw= 合致するので、Twilioからのリクエストとみなす
30.
twilio/sdk による検証 $validator =
new Services_Twilio_RequestValidator($authToken); // ヘッダから署名取得 $signature = $request->header('X-Twilio-Signature'); // URL 取得 Request::setTrustedProxies([$request->getClientIp()]); $url = $request->getUri(); // POST パラメータ取得 $postParameters = $request->input(); // 署名検証 if (!$validator->validate($signature, $url, $postParameters)) { // OK } else { // NG }
31.
まとめ (c) 2016 Masashi
Shinbara @shin1x1 •Twilio と Web アプリケーションは HTTP(S) で連携 •偽装リクエストが送信されることを意識 •Twilio 公式ドキュメントを参考に https://jp.twilio.com/docs/api/security
Jetzt herunterladen