Submit Search
Upload
『例えば、PHPを避ける』以降PHPはどれだけ安全になったか
•
61 likes
•
74,751 views
Hiroshi Tokumaru
Follow
PHPカンファレンス北海道2016基調講演
Read less
Read more
Technology
Report
Share
Report
Share
1 of 49
Recommended
オススメの標準・準標準パッケージ20選
オススメの標準・準標準パッケージ20選
Takuya Ueda
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
Yugo Shimizu
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門
masayoshi takahashi
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
Wiresharkの解析プラグインを作る ssmjp 201409
Wiresharkの解析プラグインを作る ssmjp 201409
稔 小林
ワタシはSingletonがキライだ
ワタシはSingletonがキライだ
Tetsuya Kaneuchi
C/C++プログラマのための開発ツール
C/C++プログラマのための開発ツール
MITSUNARI Shigeo
自宅サーバ仮想化
自宅サーバ仮想化
anubis_369
Recommended
オススメの標準・準標準パッケージ20選
オススメの標準・準標準パッケージ20選
Takuya Ueda
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
Yugo Shimizu
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門
masayoshi takahashi
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
Wiresharkの解析プラグインを作る ssmjp 201409
Wiresharkの解析プラグインを作る ssmjp 201409
稔 小林
ワタシはSingletonがキライだ
ワタシはSingletonがキライだ
Tetsuya Kaneuchi
C/C++プログラマのための開発ツール
C/C++プログラマのための開発ツール
MITSUNARI Shigeo
自宅サーバ仮想化
自宅サーバ仮想化
anubis_369
Serf / Consul 入門 ~仕事を楽しくしよう~
Serf / Consul 入門 ~仕事を楽しくしよう~
Masahito Zembutsu
GraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ること
Shingo Fukui
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
Norishige Fukushima
PHPの今とこれから2022
PHPの今とこれから2022
Rui Hirokawa
僕がつくった 70個のうちの48個のWebサービス達
僕がつくった 70個のうちの48個のWebサービス達
Yusuke Wada
ネットワークでなぜ遅延が生じるのか
ネットワークでなぜ遅延が生じるのか
Jun Kato
Pythonによる黒魔術入門
Pythonによる黒魔術入門
大樹 小倉
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
Itsuki Kuroda
PHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったこと
gree_tech
外部キー制約に伴うロックの小話
外部キー制約に伴うロックの小話
ichirin2501
実践イカパケット解析
実践イカパケット解析
Yuki Mizuno
Glibc malloc internal
Glibc malloc internal
Motohiro KOSAKI
OSS活動の活発さと評価の関係について
OSS活動の活発さと評価の関係について
Takuto Wada
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Shin Ohno
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
Masahito Zembutsu
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
Yoshiki Hayama
php-src の歩き方
php-src の歩き方
do_aki
MagicOnion入門
MagicOnion入門
torisoup
分散システムについて語らせてくれ
分散システムについて語らせてくれ
Kumazaki Hiroki
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
Shohei Koyama
みんなそろそろ707やめようぜ (;´Д`)
みんなそろそろ707やめようぜ (;´Д`)
Yasutaka Hamada
PHP の GC の話
PHP の GC の話
y-uti
More Related Content
What's hot
Serf / Consul 入門 ~仕事を楽しくしよう~
Serf / Consul 入門 ~仕事を楽しくしよう~
Masahito Zembutsu
GraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ること
Shingo Fukui
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
Norishige Fukushima
PHPの今とこれから2022
PHPの今とこれから2022
Rui Hirokawa
僕がつくった 70個のうちの48個のWebサービス達
僕がつくった 70個のうちの48個のWebサービス達
Yusuke Wada
ネットワークでなぜ遅延が生じるのか
ネットワークでなぜ遅延が生じるのか
Jun Kato
Pythonによる黒魔術入門
Pythonによる黒魔術入門
大樹 小倉
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
Itsuki Kuroda
PHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったこと
gree_tech
外部キー制約に伴うロックの小話
外部キー制約に伴うロックの小話
ichirin2501
実践イカパケット解析
実践イカパケット解析
Yuki Mizuno
Glibc malloc internal
Glibc malloc internal
Motohiro KOSAKI
OSS活動の活発さと評価の関係について
OSS活動の活発さと評価の関係について
Takuto Wada
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Shin Ohno
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
Masahito Zembutsu
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
Yoshiki Hayama
php-src の歩き方
php-src の歩き方
do_aki
MagicOnion入門
MagicOnion入門
torisoup
分散システムについて語らせてくれ
分散システムについて語らせてくれ
Kumazaki Hiroki
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
Shohei Koyama
What's hot
(20)
Serf / Consul 入門 ~仕事を楽しくしよう~
Serf / Consul 入門 ~仕事を楽しくしよう~
GraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ること
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
PHPの今とこれから2022
PHPの今とこれから2022
僕がつくった 70個のうちの48個のWebサービス達
僕がつくった 70個のうちの48個のWebサービス達
ネットワークでなぜ遅延が生じるのか
ネットワークでなぜ遅延が生じるのか
Pythonによる黒魔術入門
Pythonによる黒魔術入門
フロー効率性とリソース効率性について #xpjug
フロー効率性とリソース効率性について #xpjug
PHPからgoへの移行で分かったこと
PHPからgoへの移行で分かったこと
外部キー制約に伴うロックの小話
外部キー制約に伴うロックの小話
実践イカパケット解析
実践イカパケット解析
Glibc malloc internal
Glibc malloc internal
OSS活動の活発さと評価の関係について
OSS活動の活発さと評価の関係について
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
「のどが渇いた」というユーザーに何を出す? ユーザーの「欲しい」に惑わされない、本当のインサイトを見つけるUXデザイン・UXリサーチ
php-src の歩き方
php-src の歩き方
MagicOnion入門
MagicOnion入門
分散システムについて語らせてくれ
分散システムについて語らせてくれ
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
Viewers also liked
みんなそろそろ707やめようぜ (;´Д`)
みんなそろそろ707やめようぜ (;´Д`)
Yasutaka Hamada
PHP の GC の話
PHP の GC の話
y-uti
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
sasezaki
営業・運用を支える "気付ける" 管理画面
営業・運用を支える "気付ける" 管理画面
Masao Maeda
知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数
Wataru Terada
PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。
PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。
sasezaki
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
ichikaway
いまどきのPHP開発現場 -2015年秋-
いまどきのPHP開発現場 -2015年秋-
Masashi Shinbara
PHPの今とこれから2015
PHPの今とこれから2015
Rui Hirokawa
PHPとシグナル、その裏側
PHPとシグナル、その裏側
do_aki
Viewers also liked
(10)
みんなそろそろ707やめようぜ (;´Д`)
みんなそろそろ707やめようぜ (;´Д`)
PHP の GC の話
PHP の GC の話
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
営業・運用を支える "気付ける" 管理画面
営業・運用を支える "気付ける" 管理画面
知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数
PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。
PHP、おまえだったのか。 いつもHTTPメッセージを 運んでくれたのは。
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
いまどきのPHP開発現場 -2015年秋-
いまどきのPHP開発現場 -2015年秋-
PHPの今とこれから2015
PHPの今とこれから2015
PHPとシグナル、その裏側
PHPとシグナル、その裏側
Similar to 『例えば、PHPを避ける』以降PHPはどれだけ安全になったか
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011
Hiroshi Tokumaru
安全なPHPアプリケーションの作り方2013
安全なPHPアプリケーションの作り方2013
Hiroshi Tokumaru
文字コードに起因する脆弱性とその対策(増補版)
文字コードに起因する脆弱性とその対策(増補版)
Hiroshi Tokumaru
『PHP逆引きレシピ』とセキュリティのこと
『PHP逆引きレシピ』とセキュリティのこと
kenjis
PHPでセキュリティを真面目に考える
PHPでセキュリティを真面目に考える
Takuya Sato
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
Hiroh Satoh
XXE、SSRF、安全でないデシリアライゼーション入門
XXE、SSRF、安全でないデシリアライゼーション入門
Hiroshi Tokumaru
Webシステム脆弱性LT資料
Webシステム脆弱性LT資料
Tomohito Adachi
第一回 社内勉強会 PHP Application Security Checklist に学ぶ PHP セキュリティ (Excerpt)
第一回 社内勉強会 PHP Application Security Checklist に学ぶ PHP セキュリティ (Excerpt)
Yuya Takeyama
Webアプリでパスワード保護はどこまでやればいいか
Webアプリでパスワード保護はどこまでやればいいか
Hiroshi Tokumaru
安全なPHPアプリケーションの作り方2014
安全なPHPアプリケーションの作り方2014
Hiroshi Tokumaru
徳丸本に載っていないWebアプリケーションセキュリティ
徳丸本に載っていないWebアプリケーションセキュリティ
Hiroshi Tokumaru
IETF90 Web関連WG報告 #isocjp
IETF90 Web関連WG報告 #isocjp
Kaoru Maeda
mod_auth_ticket - Bringing Single-Sign-On to lighttpd
mod_auth_ticket - Bringing Single-Sign-On to lighttpd
Taisuke Yamada
PHPの今とこれから2020
PHPの今とこれから2020
Rui Hirokawa
今日こそわかる、安全なWebアプリの作り方2010
今日こそわかる、安全なWebアプリの作り方2010
Hiroshi Tokumaru
PHPカンファレンス2014セキュリティ対談資料
PHPカンファレンス2014セキュリティ対談資料
Yasuo Ohgaki
最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)
Rui Hirokawa
PHPCON_TOKYO_2022_Bigginer.pptx
PHPCON_TOKYO_2022_Bigginer.pptx
Hideo Kashioka
メルカリのデータベース戦略 / PHPとMySQLの怖い話 MyNA会2015年8月
メルカリのデータベース戦略 / PHPとMySQLの怖い話 MyNA会2015年8月
Masahiro Nagano
Similar to 『例えば、PHPを避ける』以降PHPはどれだけ安全になったか
(20)
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011
徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011
安全なPHPアプリケーションの作り方2013
安全なPHPアプリケーションの作り方2013
文字コードに起因する脆弱性とその対策(増補版)
文字コードに起因する脆弱性とその対策(増補版)
『PHP逆引きレシピ』とセキュリティのこと
『PHP逆引きレシピ』とセキュリティのこと
PHPでセキュリティを真面目に考える
PHPでセキュリティを真面目に考える
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
XXE、SSRF、安全でないデシリアライゼーション入門
XXE、SSRF、安全でないデシリアライゼーション入門
Webシステム脆弱性LT資料
Webシステム脆弱性LT資料
第一回 社内勉強会 PHP Application Security Checklist に学ぶ PHP セキュリティ (Excerpt)
第一回 社内勉強会 PHP Application Security Checklist に学ぶ PHP セキュリティ (Excerpt)
Webアプリでパスワード保護はどこまでやればいいか
Webアプリでパスワード保護はどこまでやればいいか
安全なPHPアプリケーションの作り方2014
安全なPHPアプリケーションの作り方2014
徳丸本に載っていないWebアプリケーションセキュリティ
徳丸本に載っていないWebアプリケーションセキュリティ
IETF90 Web関連WG報告 #isocjp
IETF90 Web関連WG報告 #isocjp
mod_auth_ticket - Bringing Single-Sign-On to lighttpd
mod_auth_ticket - Bringing Single-Sign-On to lighttpd
PHPの今とこれから2020
PHPの今とこれから2020
今日こそわかる、安全なWebアプリの作り方2010
今日こそわかる、安全なWebアプリの作り方2010
PHPカンファレンス2014セキュリティ対談資料
PHPカンファレンス2014セキュリティ対談資料
最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)
PHPCON_TOKYO_2022_Bigginer.pptx
PHPCON_TOKYO_2022_Bigginer.pptx
メルカリのデータベース戦略 / PHPとMySQLの怖い話 MyNA会2015年8月
メルカリのデータベース戦略 / PHPとMySQLの怖い話 MyNA会2015年8月
More from Hiroshi Tokumaru
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
ウェブセキュリティのありがちな誤解を解説する
ウェブセキュリティのありがちな誤解を解説する
Hiroshi Tokumaru
脅威分析の手法によりウェブサーバーにウイルス対策ソフトが必要かを検証する
脅威分析の手法によりウェブサーバーにウイルス対策ソフトが必要かを検証する
Hiroshi Tokumaru
SQLインジェクション再考
SQLインジェクション再考
Hiroshi Tokumaru
徳丸本VMに脆弱なWordPressを導入する
徳丸本VMに脆弱なWordPressを導入する
Hiroshi Tokumaru
introduction to unsafe deserialization part1
introduction to unsafe deserialization part1
Hiroshi Tokumaru
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
Hiroshi Tokumaru
ウェブ・セキュリティ基礎試験(徳丸基礎試験)の模擬試験問題
ウェブ・セキュリティ基礎試験(徳丸基礎試験)の模擬試験問題
Hiroshi Tokumaru
オニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法 (PHPカンファレンス2019)
オニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法 (PHPカンファレンス2019)
Hiroshi Tokumaru
Railsエンジニアのためのウェブセキュリティ入門
Railsエンジニアのためのウェブセキュリティ入門
Hiroshi Tokumaru
安全なWebアプリケーションの作り方2018
安全なWebアプリケーションの作り方2018
Hiroshi Tokumaru
秀スクリプトの話
秀スクリプトの話
Hiroshi Tokumaru
デバッガでWordPress本体やプラグインの脆弱性を追いかけてみよう
デバッガでWordPress本体やプラグインの脆弱性を追いかけてみよう
Hiroshi Tokumaru
若手エンジニアのためのセキュリティ講座
若手エンジニアのためのセキュリティ講座
Hiroshi Tokumaru
ウェブセキュリティの常識
ウェブセキュリティの常識
Hiroshi Tokumaru
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
Hiroshi Tokumaru
ウェブアプリケーションセキュリティ超入門
ウェブアプリケーションセキュリティ超入門
Hiroshi Tokumaru
ウェブセキュリティの最近の話題早分かり
ウェブセキュリティの最近の話題早分かり
Hiroshi Tokumaru
セキュリティの都市伝説を暴く
セキュリティの都市伝説を暴く
Hiroshi Tokumaru
安全なPHPアプリケーションの作り方2016
安全なPHPアプリケーションの作り方2016
Hiroshi Tokumaru
More from Hiroshi Tokumaru
(20)
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
ウェブセキュリティのありがちな誤解を解説する
ウェブセキュリティのありがちな誤解を解説する
脅威分析の手法によりウェブサーバーにウイルス対策ソフトが必要かを検証する
脅威分析の手法によりウェブサーバーにウイルス対策ソフトが必要かを検証する
SQLインジェクション再考
SQLインジェクション再考
徳丸本VMに脆弱なWordPressを導入する
徳丸本VMに脆弱なWordPressを導入する
introduction to unsafe deserialization part1
introduction to unsafe deserialization part1
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
SSRF対策としてAmazonから発表されたIMDSv2の効果と破り方
ウェブ・セキュリティ基礎試験(徳丸基礎試験)の模擬試験問題
ウェブ・セキュリティ基礎試験(徳丸基礎試験)の模擬試験問題
オニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法 (PHPカンファレンス2019)
オニギリペイのセキュリティ事故に学ぶ安全なサービスの構築法 (PHPカンファレンス2019)
Railsエンジニアのためのウェブセキュリティ入門
Railsエンジニアのためのウェブセキュリティ入門
安全なWebアプリケーションの作り方2018
安全なWebアプリケーションの作り方2018
秀スクリプトの話
秀スクリプトの話
デバッガでWordPress本体やプラグインの脆弱性を追いかけてみよう
デバッガでWordPress本体やプラグインの脆弱性を追いかけてみよう
若手エンジニアのためのセキュリティ講座
若手エンジニアのためのセキュリティ講座
ウェブセキュリティの常識
ウェブセキュリティの常識
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
著名PHPアプリの脆弱性に学ぶセキュアコーディングの原則
ウェブアプリケーションセキュリティ超入門
ウェブアプリケーションセキュリティ超入門
ウェブセキュリティの最近の話題早分かり
ウェブセキュリティの最近の話題早分かり
セキュリティの都市伝説を暴く
セキュリティの都市伝説を暴く
安全なPHPアプリケーションの作り方2016
安全なPHPアプリケーションの作り方2016
Recently uploaded
論文紹介: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 の勉強会で発表されたものです
iPride Co., Ltd.
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
Recently uploaded
(9)
論文紹介: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 の勉強会で発表されたものです
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
『例えば、PHPを避ける』以降PHPはどれだけ安全になったか
1.
『例えば、PHPを避ける』以降PHPはどれだけ 安全になったか 徳丸 浩
2.
アジェンダ • 例えば、PHPを避ける • htmlspecialchars
文字エンコーディングチェックの改善 • register_globalsが非推奨に • マジッククォートが非推奨に • 暗号学的に安全な擬似乱数生成器のサポート • セッションID生成の安全性強化 • ヌルバイト攻撃の防御機能の追加 • PDOのDB接続時の文字エンコーディング指定が可能に • header関数のバグ修正 • 安全なパスワード保存が簡単にできるようになった Copyright © 2016 Hiroshi Tokumaru 2
3.
徳丸浩の自己紹介 • 経歴 – 1985年
京セラ株式会社入社 – 1995年 京セラコミュニケーションシステム株式会社(KCCS)に出向・転籍 – 2008年 KCCS退職、HASHコンサルティング株式会社設立 • 経験したこと – 京セラ入社当時はCAD、計算幾何学、数値シミュレーションなどを担当 – その後、企業向けパッケージソフトの企画・開発・事業化を担当 – 1999年から、携帯電話向けインフラ、プラットフォームの企画・開発を担当 Webアプリケーションのセキュリティ問題に直面、研究、社内展開、寄稿などを開始 – 2004年にKCCS社内ベンチャーとしてWebアプリケーションセキュリティ事業を立ち上 げ • 現在 – HASHコンサルティング株式会社 代表 http://www.hash-c.co.jp/ – 独立行政法人情報処理推進機構 非常勤研究員 http://www.ipa.go.jp/security/ – 著書「体系的に学ぶ 安全なWebアプリケーションの作り方」(2011年3月) 「徳丸浩のWebセキュリティ教室 」(2015年10月) – 技術士(情報工学部門) Copyright © 2016 Hiroshi Tokumaru 3
4.
例えば、PHPを避ける Copyright © 2016
Hiroshi Tokumaru 4
5.
Copyright © 2016
Hiroshi Tokumaru 5 例えば、PHPを避ける
6.
現在のセキュアプログラミング講座 6 register globalsとナルバイト攻撃が問題??? https://www.ipa.go.jp/security/awareness/vendor/programmingv2/contents/003.html より引用
7.
PHPの何が問題だったか、本当に問題だったか? • セキュアプログラミング講座の改訂は2007年6月 • その時点で、PHPは本当に避けるべき存在だった か? •
当時の最新版はPHP 5.2.3 (2007/5/31) • その後、PHPはどの程度の安全になったか? • 下記について調査 – PHPの安全でない機能の削除 – PHPの安全性を高める機能の追加 Copyright © 2016 Hiroshi Tokumaru 7
8.
htmlspecialchars 文字エンコーディング チェックの改善(PHP5.2.5 2007/11/8) Copyright
© 2016 Hiroshi Tokumaru 8
9.
htmlspecialcharsの文字コードチェックの変遷 • PHP4.1.0 (2001/12/10) htmlspecialcharsに第3引数追加。ほとんど何もして いないに等しい文字エンコーディングチェック •
PHP-5.2.5 (2007/11/8) 文字エンコーディングのチェックを強化…したけど 抜けがたくさん • PHP-5.2.12 (2009/12/17) moriyoshiの神対応による厳格なチェックに • PHP-5.4.0 (2012/3/1) 第3引数のデフォルトが UTF-8 に変更 Copyright © 2016 Hiroshi Tokumaru 9
10.
そこそこ安全なはずのスクリプト Copyright © 2016
Hiroshi Tokumaru 10 <?php header('Content-Type: text/html; charset=Shift_JIS'); $p1 = @$_GET['p1']; $p2 = @$_GET['p2']; ?><body><form> <input name=p1 value="<?php echo htmlspecialchars($p1, ENT_QUOTES, 'Shift_JIS'); ?>"><BR> <input name=p2 value="<?php echo htmlspecialchars($p2, ENT_QUOTES, 'Shift_JIS'); ?>"><BR> <input type="submit" value="更新"> </form></body>
11.
半端な先行バイトによるXSS • 半端な先行バイトによるXSSが発生する条件は、 以下のいずれかを満たす場合 – htmlspecialcharsの第3引数を指定していない –
PHPの5.2.11以前あるいはPHP5.3.1以前を使用 • 対策としては、以下の両方を行う – PHPの最新版を使う – htmlspecialcharsの第3引数を指定する Copyright © 2010-2014 HASH Consulting Corp. 11 <input name=p1 value="・><BR> <input name=p2 value=" onmouseover=alert(document.cookie)//"><BR> 閉じる引用符が食われた状態 ここで最初の属性値がようやく終了 第二の属性値がイベントハンドラに
12.
register_globalsが非推奨に (PHP-5.3.0 2009/6/30) Copyright ©
2016 Hiroshi Tokumaru 12
13.
register_globals=On の危険な例 session_start(); if (isset($_SESSION['user']))
{ $islogin = TRUE; } Copyright © 2016 Hiroshi Tokumaru 13
14.
履歴 • PHP-4.2.0 (2002/4/22) register_globalsがデフォルトで
off になる • PHP-5.3.0 (2009/6/30) register_globalsを有効にすると警告エラーになる • PHP-5.4.0 (2012/3/1) register_globalsが廃止される Copyright © 2016 Hiroshi Tokumaru 14
15.
マジッククォートが非推奨に (PHP-5.3.0 2009/6/30) Copyright ©
2016 Hiroshi Tokumaru 15
16.
マジッククォートとは何か? • 入力値($_GET、$_POST、$_COOKIE)を予めエスケー プしておく設定 – '
→ ' → • SQLインジェクション対策の自動化のために導入さ れた • PHP-5.3.0 (2009/6/30) マジッククォートを有効にすると警告エラーになる • PHP-5.4.0 (2012/3/1) マジッククォートが廃止される Copyright © 2016 Hiroshi Tokumaru 16
17.
マジッククォートはなぜダメだったか? • 不便 – システムが勝手にエスケープするので多重エスケープの原因になる –
エスケープが不要な場合アンエスケープの必要があり、不便であり、 脆弱性の要因にもなる • 対策として不十分(文字エンコーディングを考慮しないため …PDOの項参照) • 徳丸の意見 – マジッククォートは入力時にエスケープ処理を自動的行う仕組みだ が、エスケープ処理は文字列を使う時に都度すべきという考え方が 一般化した – マジッククォートはMySQLに特化したエスケープ方式であり、かつ MySQLのオプションや文字エンコーディングを考慮しない不完全な エスケープだった Copyright © 2016 Hiroshi Tokumaru 17
18.
デモメモ: ここでphp.iniを編集して、 register_globalsとmagic_quotes_gpcを オフにしておく Copyright © 2016
Hiroshi Tokumaru 18
19.
暗号学的に安全な擬似乱数生成器の サポート(PHP-5.3.0 2009/6/30) Copyright ©
2016 Hiroshi Tokumaru 19
20.
PHPにおける乱数の状況 • PHPにおける乱数の状況は酷い…下記が用いられる – rand() –
mt_rand() – uniqid() • 上記はいずれも暗号学的に安全でない – 過去の乱数列から推測可能性があるということ • PHP-5.3.0から下記がサポートされる – openssl_random_pseudo_bytes() • PHP-7.0.0から下記がサポートされる – random_bytes() – random_int() Copyright © 2016 Hiroshi Tokumaru 20
21.
セッションID生成の安全性強化 (PHP-5.3.2 2010/3/4) Copyright ©
2016 Hiroshi Tokumaru 21
22.
22体系的に学ぶ 安全なWebアプリケーションの作り方 P162、163より引用 PHPはデフォルト設定では以下の組み合わせにMD5ハッシュ関数を通す方法でセッ ションIDを生成しています。
リモートIP アドレス 現在時刻 乱数(暗号論的擬似乱数生成系ではない) これは、図4-51で示したありがちなセッションIDの生成方法に該当します。ロジックの 複雑性が高いため解読方法が判明しているわけではありませんが、理論的には安全性 が保証されていない設計ということになります。
23.
23http://dsas.blog.klab.org/archives/52136166.html より引用
24.
セッションIDの強化の歴史 • PHP-5.3.2 (2010/3/4) セッションIDの生成方法を複雑化したが不完全 •
PHP-5.4.0 (2012/3/1) セッションIDのシードに安全な乱数を使うように • PHP-5.4未満の場合は下記を設定するとよい Copyright © 2016 Hiroshi Tokumaru 24 [Session] ;; entropy_file は Windowsでは設定不要 ;; PHP-5.4以降では下記がデフォルトに session.entropy_file = /dev/urandom session.entropy_length = 32
25.
ヌルバイト攻撃の防御機能の追加 (PHP-5.3.4 2010/12/9) Copyright ©
2016 Hiroshi Tokumaru 25
26.
ヌルバイト攻撃はディレクトリトラバーサル等と併用する 26https://www.ipa.go.jp/security/vuln/websecurity.html より引用
27.
ディレクトリトラバーサルとヌルバイト攻撃 • 以下のPHPスクリプト $fp =
fopen('./data/' . $_GET['file'] . '.txt', 'r'); … • file=../../../../../etc/passwd%00 とすると ファイル名は以下となる。[nul]は値0の文字 ./data/../../../../../etc/passwd[nul].txt カレントディレクトリが /var/www/html とすると /var/www/html/../../../../../etc/passwd[nul].txt ↓ 正規化 ([nul]以降は無視される) /etc/passwd • Unix / Linux / WindowsのAPIでは通常ヌルバイトを 文字列の終端記号として用いているため Copyright © 2016 HASH Consulting Corp. 27
28.
ディレクトリトラバーサルの影響と対策 • 影響 – 任意のファイルの読み出し –
任意のファイルに任意内容が書き込みできる場合も – PHPスクリプト等を書き込みできれば、任意スクリプト を外部から自由に実行できる場合も • 対策 – ファイル名には basename()関数を通してから使う $file = basename($_GET['file']); – できるだけ新しいPHPを使う • PHP5.3.4以降ではヌルバイト攻撃対策がされている Copyright © 2016 HASH Consulting Corp. 28
29.
PHP 5.3.4におけるヌルバイト攻撃対策 • ファイル名等にヌルバイトが混入している場合、エ ラーとして処理を打ち切る Copyright
© 2016 HASH Consulting Corp. 29 $ cat nullbyte.php <?php $rtn = readfile("../../../../etc/passwd0.txt"); var_dump($rtn); $ php-5.3.3 nullbyte.php root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh 【中略】 int(1415) $ php-5.3.4 nullbyte.php bool(false)
30.
phpMyAdmin3.5.8に存在した正規表現インジェクション • テーブル名のプリフィックスを変更する処理に存在 Copyright ©
2016 HASH Consulting Corp. 30 // $from_prefix, $to_prefix, $currentは外部から操作可能 $newtablename = preg_replace("/^" . $from_prefix . "/", $to_prefix, $current);
31.
攻撃ができる理由 Copyright © 2016
HASH Consulting Corp. 31 case 'replace_prefix_tbl': $current = $selected[$i]; $newtablename = preg_replace("/^" . $from_prefix . "/", $to_prefix, $current); preg_replace("/^/e0/", "phpinfo();", "test"); preg_replace("/^/e", "phpinfo();", "test"); $from_pref = "/e0" PHP5.4.3以前では、0以降は無視される
32.
/e 修飾子… 32http://www.php.net/manual/ja/reference.pcre.pattern.modifiers.php
33.
脆弱性が混入した要因 • preg_replaceに渡す正規表現をエスケープしていな かった – 最低限、/
をエスケープする必要がある…理論的には • えーっと、preg_quoteって、マルチバイト対応だっ け? – Shift_JIS以外では問題ない? • 外部からの値を用いて正規表現を組み立てるべきで はない Copyright © 2016 HASH Consulting Corp. 33 preg_replace(“/^” . $from_prefix . “/”, … ↓ reg_replace("/^" . preg_quote($from_prefix, '/') . "/", …
34.
PDOのDB接続時の文字エンコーディング 指定が可能に(PHP-5.3.6 2011/3/17) Copyright ©
2016 Hiroshi Tokumaru 34
35.
【文字コードの問題1】 5C問題によるSQLインジェクション • 5C問題とは –
Shift_JIS文字の2バイト目に0x5Cが来る文字に起因する問 題 ソ、表、能、欺、申、暴、十 … など出現頻度の高い文字 が多い – 0x5CがASCIIではバックスラッシュであり、ISO-8859-1な ど1バイト文字と解釈された場合、日本語の1バイトが バックスラッシュとして取り扱われる – 一貫して1バイト文字として取り扱われれば脆弱性になら ないが、1バイト文字として取り扱われる場合と、 Shift_JISとして取り扱われる場合が混在すると脆弱性が発 生する Copyright © 2014 HASH Consulting Corp. 35
36.
ソースコード(要点のみ) <?php header('Content-Type: text/html; charset=Shift_JIS'); $key
= @$_GET['name']; if (! mb_check_encoding($key, 'Shift_JIS')) { die('文字エンコーディングが不正です'); } // MySQLに接続(PDO) $dbh = new PDO('mysql:host=localhost;dbname=books;charset=sjis', 'phpcon', 'pass1'); // Shift_JISを指定 $dbh->query("SET NAMES sjis"); // プレースホルダによるSQLインジェクション対策 $sth = $dbh->prepare("SELECT * FROM books WHERE author=?"); $sth->setFetchMode(PDO::FETCH_NUM); // バインドとクエリ実行 $sth->execute(array($key)); ?> Copyright © 2014 HASH Consulting Corp. 36
37.
5C問題によるSQLインジェクションの説明 Copyright © 2014
HASH Consulting Corp. 37
38.
SQLインジェクション対策はプレースホルダで • プレースホルダとは SELECT *
FROM books WHERE id=? • 静的プレースホルダと動的プレースホルダ – 静的: サーバー側で値をバインドする(エスケープは必要 ない) – 動的: 呼び出し側で値をエスケープしてバインドする • 接続時に文字エンコーディングを指定する $db = new PDO('mysql:host=myhost;dbname=mydb;charset=utf8', DBUSER, DBPASS); – SET NAMES utf8 はやめましょう • 列の型を意識する Copyright © 2012-2015 HASH Consulting Corp. 38
39.
サンプルコード $db = new
PDO('mysql:host=myhost;dbname=mydb;charset=utf8', DBUSER, DBPASS); // エミュレーションモードOFF = 静的プレースホルダ $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); // エラー時に例外を発生させる $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // プレースホルダを使ってSQLを準備 $prepare = $db->prepare( 'SELECT * FROM example WHERE id = :id and language = :lang'); // 型を指定してbind $prepare->bindValue(':id', (int) $id, PDO::PARAM_INT); $prepare->bindValue(':lang', $str, PDO::PARAM_STR); $prepare->execute(); Copyright © 2012-2015 HASH Consulting Corp. 39
40.
header関数のバグ修正 (PHP-5.4.0 2012/3/1) Copyright ©
2016 Hiroshi Tokumaru 40
41.
HTTPヘッダインジェクション 41安全なウェブサイトの作り方改訂第7版より引用
42.
このサンプルプログラムでどこまで悪用できるか? Copyright © 2016
Hiroshi Tokumaru 42 <?php header('Location: ' . $_GET['url']);
43.
ヘッダインジェクションによるXSSフィルタ回避 Copyright © 2016
Hiroshi Tokumaru 43 <?php $cookie = $_GET['cookie']; $txt = $_GET['txt']; header('Content-Type: text/html; charset="UTF-8"'); header('Set-Cookie: A=' . $cookie); ?><!DOCTYPE html> <body><?php echo "Cookie A=" . htmlspecialchars($_COOKIE['A']) ; ?> <?php echo $txt; // XSS脆弱性あり ?></body> X-XSS-Protection: 0 ヘッダを追加して、XSSフィルタを無効にしたい…
44.
header関数改修の歴史 • PHP 5.1.2 –
改行のチェックが追加される – %0d(キャリッジリターン)のチェックが漏れていた • PHP 5.3.11 および PHP 5.4.0 – キャリッジリターンのチェックが追加される – 継続行(下図)については許容 • PHP 5.4.38 / PHP 5.5.22 / PHP 5.6.6 – 継続行が禁止される Copyright © 2016 Hiroshi Tokumaru 44 Location: http://php.net/ Set-Cookie: PHPSESSID=ABC; ↑空白またはタブ
45.
Linuxディストリビューションの対応 Copyright © 2016
Hiroshi Tokumaru 45 ※CentOS5 ~ 7 / Ubuntu 14.04以前はパッチが出ていない
46.
安全なパスワード保存が簡単にできるよ うになった(PHP-5.5.0 2013/6/20) Copyright ©
2016 Hiroshi Tokumaru 46
47.
password_hash 関数 (PHP5.5から) http://php.net/manual/ja/function.password-hash.php
より引用 <?php echo password_hash('rasmuslerdorf’, PASSWORD_DEFAULT); 【結果】 $2y$10$.vGA1O9wmRjrwAVXD98HNOgsNpDczlqm3Jq7KnEd1rVAGv3Fykk1a 47
48.
まとめ • 『例えば、PHPを避ける』の時代は、現実にPHPの 罠はかなりあった – 『避ける』必要はないにしても、気をつけなければ脆弱 性の原因に… •
2016年現在で、罠はかなり解消されつつある • 特に以下は重要 – Htmlspecialcharsの文字エンコーディングチェック – PDOのDB接続時の文字エンコーディング指定 • できるだけ新しいバージョンのPHPを使う • でも、もっと大切なことは、最新のパッチのあたっ たPHPを使うこと • PHPを使って、安全で素晴らしいサイト構築を! Copyright © 2016 Hiroshi Tokumaru 48
49.
ご清聴ありがとうございました Copyright © 2016
Hiroshi Tokumaru 49