1K Views
March 07, 15
スライド概要
医療セキュリティハッカソン神戸2015内 ディスカッション資料
ES6時代における Web開発者と セキュリティ業界の乖離 開発側から見たセキュリティ業界に 対する懸念と求めるもの
過激派 注意!
いまどきのWeb開発 • 静的なHTML+API • アプリとWebの共通化、SPA • コンパイルされたJS • AltJS、Closure Compiler • MV*、データバインディング • Vue.js、AngularJS • Virtual DOM • React
静的なHTML+API • サーバサイドではHTMLを生成しない • スマホ用アプリとWebでバックエンドを共通化 • Single Page Applicationsの台頭 • JSON等のAPIのみのレスポンス • 脆弱性検査する側 • 「ページ単位」でのボリューム管理の破たん • 反射型、蓄積型XSSの根絶 • もちろんSQLインジェクションなども存在しない
コンパイルされたJS • AltJS、Closure Compiler等の利用 • TypeScript、CoffeeScript、JSX • Closure Compiler - オートエスケープ • 脆弱性検査する側 • minifyされたJavaScriptが読めない • 使用された言語上での注意すべき点がわからない
MV*、データバインディング • MVVM、MVCフレームワークの利用 • Vue.js、AngularJSなど • 生でDOMを触らない • HTMLへのデータバインディング機構 • 脆弱性検査する側 • DOM-based XSSさえ発生しにくい • コードが読めない • 使用されたフレームワークでの注意すべき点がわか らない (AngularJSでのカスタムディレクティブなど)
Virtual DOM • Reactに代表されるDOM操作の革命 • JS Objとして仮想的なDOM構造を持つ • JS ObjからDOMへの一方的な吐き出し • 脆弱性検査する側 • DOM-based XSSはほとんど根絶 • コードが読めない • 見るべき項目が分からない
いまどきのWeb開発 • 脆弱性検査する側 • 言語やフレームワークごとの注意すべき点というの がわからない • そもそもコードが読めない • 従来の脆弱性は原理上ほとんど発生し得ない • どういう観点で検査をすればいいのかわからない
よくある意見 「全員がそういう開発手法ではない」
「全員がそういう開発手法ではない」 • 「従来からの開発手法が大半だから、そういう 開発者のために、これまで通りの検査が必要」 • それって「ただのツールが使えない人」だよね • 新しい開発手法ならそもそも脆弱性が発生しな い • セキュリティ向上のためには新しい手法を広め るほうが意義があるのでは