SlideShare a Scribd company logo
1 of 7
Node.js
ミニマム構成の思想
→ 最低限のものしか入っていない。apacheのよ
うにアップロードダウンロードすらも標準機能で
はない
npm install [module name] 
による拡張モジュールインストールが便利
セキュリティにおけるphpとの違い
● phpならば
escapeshellarg()
password_hash()
などの強力な機能が用意されているが
● nodeでは最小限の機能しかないのでnpmでセキュリティ拡
張をインストールする必要がある
コミュニティモジュールの信頼性が不透明・・・
不安定性
● Npm で取得できるモジュールは今後大きく変化
する可能性がある
● Connect モジュールで1年前メインの機能だっ
たものが3.0バージョンでは使用不能に
→ 何を使うかは慎重に考えるべき
● あるモジュールが別のモジュールに依存するこ
ともある
メリット・デメリット
● 割と簡単に帯域制限をかけられる
● 何でもオブジェクトとして扱える
● 重要なデータにアクセスする可能性のある場合
(アカウント登録など)
ではapache+PHPの安全性を優先すべき
かも
気になったところ
● ヌルバイト攻撃に対してどう対応するか
– ヌルバイト攻撃とは?
不正なバイナリ(01の文字列)を送り込んで関数を停止させた
り、意図しない挙動を引き起こす可能性があるもの。
PHPではヌルバイトを検出できる「バイナリセーフ関数」と
「非バイナリセーフ関数」が存在し、安全性も明らか。
nodeではよくわかんない
→ 怖いところはapache+phpで動かして安全性
を確保すべきでは?
おまけ:最低限のセキュリティ
● 変数のキャスト
整数型と予測するものは整数型に変換して格納するなど
● ホワイトリスト
ブラックリストで検出するよりもホワイトリストのほう
が安全
● パス操作、コマンドインジェクション
専用のサニタイズ関数を作って共通化しておくべき
おまけ:最低限のセキュリティ
● 変数のキャスト
整数型と予測するものは整数型に変換して格納するなど
● ホワイトリスト
ブラックリストで検出するよりもホワイトリストのほう
が安全
● パス操作、コマンドインジェクション
専用のサニタイズ関数を作って共通化しておくべき

More Related Content

What's hot

日本マイクロソフト Forefront tmg_セミナ受講メモ_2011-09-01
日本マイクロソフト Forefront tmg_セミナ受講メモ_2011-09-01日本マイクロソフト Forefront tmg_セミナ受講メモ_2011-09-01
日本マイクロソフト Forefront tmg_セミナ受講メモ_2011-09-01Yukio Saito
 
ネットワーク 全体像
ネットワーク 全体像ネットワーク 全体像
ネットワーク 全体像Kenichi Takeuchi
 
Frontend optimization dena_creativeseminar
Frontend optimization dena_creativeseminarFrontend optimization dena_creativeseminar
Frontend optimization dena_creativeseminarDeNA_open_events
 
TDUCTFの実行基盤
TDUCTFの実行基盤TDUCTFの実行基盤
TDUCTFの実行基盤Youta Egusa
 
第3回鹿児島node.jsの会資料_内村
第3回鹿児島node.jsの会資料_内村第3回鹿児島node.jsの会資料_内村
第3回鹿児島node.jsの会資料_内村Koichi Uchimura
 
Landoを利用したdrupal開発環境構築
Landoを利用したdrupal開発環境構築Landoを利用したdrupal開発環境構築
Landoを利用したdrupal開発環境構築otofu1
 
Symfony開発者がLaravelしようとして云々
Symfony開発者がLaravelしようとして云々Symfony開発者がLaravelしようとして云々
Symfony開発者がLaravelしようとして云々mimizuk
 
EWD 3トレーニングコース#15 ewd-xpressでjQuery以外のフレームワークを利用する
EWD 3トレーニングコース#15 ewd-xpressでjQuery以外のフレームワークを利用するEWD 3トレーニングコース#15 ewd-xpressでjQuery以外のフレームワークを利用する
EWD 3トレーニングコース#15 ewd-xpressでjQuery以外のフレームワークを利用するKiyoshi Sawada
 
Free & OSS Office System
Free & OSS Office SystemFree & OSS Office System
Free & OSS Office Systemubon
 

What's hot (10)

SystemTapで何か
SystemTapで何かSystemTapで何か
SystemTapで何か
 
日本マイクロソフト Forefront tmg_セミナ受講メモ_2011-09-01
日本マイクロソフト Forefront tmg_セミナ受講メモ_2011-09-01日本マイクロソフト Forefront tmg_セミナ受講メモ_2011-09-01
日本マイクロソフト Forefront tmg_セミナ受講メモ_2011-09-01
 
ネットワーク 全体像
ネットワーク 全体像ネットワーク 全体像
ネットワーク 全体像
 
Frontend optimization dena_creativeseminar
Frontend optimization dena_creativeseminarFrontend optimization dena_creativeseminar
Frontend optimization dena_creativeseminar
 
TDUCTFの実行基盤
TDUCTFの実行基盤TDUCTFの実行基盤
TDUCTFの実行基盤
 
第3回鹿児島node.jsの会資料_内村
第3回鹿児島node.jsの会資料_内村第3回鹿児島node.jsの会資料_内村
第3回鹿児島node.jsの会資料_内村
 
Landoを利用したdrupal開発環境構築
Landoを利用したdrupal開発環境構築Landoを利用したdrupal開発環境構築
Landoを利用したdrupal開発環境構築
 
Symfony開発者がLaravelしようとして云々
Symfony開発者がLaravelしようとして云々Symfony開発者がLaravelしようとして云々
Symfony開発者がLaravelしようとして云々
 
EWD 3トレーニングコース#15 ewd-xpressでjQuery以外のフレームワークを利用する
EWD 3トレーニングコース#15 ewd-xpressでjQuery以外のフレームワークを利用するEWD 3トレーニングコース#15 ewd-xpressでjQuery以外のフレームワークを利用する
EWD 3トレーニングコース#15 ewd-xpressでjQuery以外のフレームワークを利用する
 
Free & OSS Office System
Free & OSS Office SystemFree & OSS Office System
Free & OSS Office System
 

Similar to u2u1

世界征服を目指すJubatusだからこそ期待する5つのポイント
世界征服を目指すJubatusだからこそ期待する5つのポイント世界征服を目指すJubatusだからこそ期待する5つのポイント
世界征服を目指すJubatusだからこそ期待する5つのポイントNTT DATA OSS Professional Services
 
意外と知らない?Yumパッケージ管理
意外と知らない?Yumパッケージ管理意外と知らない?Yumパッケージ管理
意外と知らない?Yumパッケージ管理denet1999
 
究極のディストリビューションUbuntu
究極のディストリビューションUbuntu究極のディストリビューションUbuntu
究極のディストリビューションUbuntuKenichi Takahashi
 
【学習メモ#4th】12ステップで作る組込みOS自作入門
【学習メモ#4th】12ステップで作る組込みOS自作入門【学習メモ#4th】12ステップで作る組込みOS自作入門
【学習メモ#4th】12ステップで作る組込みOS自作入門sandai
 
Fluentdでログを集めてGlusterFSに保存してMapReduceで集計
Fluentdでログを集めてGlusterFSに保存してMapReduceで集計Fluentdでログを集めてGlusterFSに保存してMapReduceで集計
Fluentdでログを集めてGlusterFSに保存してMapReduceで集計maebashi
 
[db tech showcase Sapporo 2015] A22:HP NonStop SQLはなぜグローバルに分散DBを構築できるのか、 データの...
[db tech showcase Sapporo 2015] A22:HP NonStop SQLはなぜグローバルに分散DBを構築できるのか、 データの...[db tech showcase Sapporo 2015] A22:HP NonStop SQLはなぜグローバルに分散DBを構築できるのか、 データの...
[db tech showcase Sapporo 2015] A22:HP NonStop SQLはなぜグローバルに分散DBを構築できるのか、 データの...Insight Technology, Inc.
 
第1回『いまさら聞けない!システム運用・管理のコツ』 『クラウド管理・運用サービス「E.C.O」のご紹介』
第1回『いまさら聞けない!システム運用・管理のコツ』 『クラウド管理・運用サービス「E.C.O」のご紹介』第1回『いまさら聞けない!システム運用・管理のコツ』 『クラウド管理・運用サービス「E.C.O」のご紹介』
第1回『いまさら聞けない!システム運用・管理のコツ』 『クラウド管理・運用サービス「E.C.O」のご紹介』Naoya Hashimoto
 
PXE で linux インストールな本 -1 スピンドルマシンも Linux 化-
PXE で linux インストールな本 -1 スピンドルマシンも Linux 化-PXE で linux インストールな本 -1 スピンドルマシンも Linux 化-
PXE で linux インストールな本 -1 スピンドルマシンも Linux 化-Kenichiro MATOHARA
 
ネットワークコマンド入力に対応したツール事例
ネットワークコマンド入力に対応したツール事例ネットワークコマンド入力に対応したツール事例
ネットワークコマンド入力に対応したツール事例fumoto kazuhiro
 
クラウドアプリケーション開発に必要なセキュリティ
クラウドアプリケーション開発に必要なセキュリティ クラウドアプリケーション開発に必要なセキュリティ
クラウドアプリケーション開発に必要なセキュリティ Lumin Hacker
 
第12回CloudStackユーザ会_ApacheCloudStack最新情報
第12回CloudStackユーザ会_ApacheCloudStack最新情報第12回CloudStackユーザ会_ApacheCloudStack最新情報
第12回CloudStackユーザ会_ApacheCloudStack最新情報Midori Oge
 
第5回札幌SoftLayer勉強会資料_20150311
第5回札幌SoftLayer勉強会資料_20150311第5回札幌SoftLayer勉強会資料_20150311
第5回札幌SoftLayer勉強会資料_20150311潤 川岡
 
【第二回 ゼロからはじめる Oracle Solaris 11】03 ネットワーク環境の複雑性に対処する新しいネットワーク管理の仕組み ~ Oracle ...
【第二回 ゼロからはじめる Oracle Solaris 11】03 ネットワーク環境の複雑性に対処する新しいネットワーク管理の仕組み ~ Oracle ...【第二回 ゼロからはじめる Oracle Solaris 11】03 ネットワーク環境の複雑性に対処する新しいネットワーク管理の仕組み ~ Oracle ...
【第二回 ゼロからはじめる Oracle Solaris 11】03 ネットワーク環境の複雑性に対処する新しいネットワーク管理の仕組み ~ Oracle ...SolarisJP
 

Similar to u2u1 (18)

世界征服を目指すJubatusだからこそ期待する5つのポイント
世界征服を目指すJubatusだからこそ期待する5つのポイント世界征服を目指すJubatusだからこそ期待する5つのポイント
世界征服を目指すJubatusだからこそ期待する5つのポイント
 
意外と知らない?Yumパッケージ管理
意外と知らない?Yumパッケージ管理意外と知らない?Yumパッケージ管理
意外と知らない?Yumパッケージ管理
 
究極のディストリビューションUbuntu
究極のディストリビューションUbuntu究極のディストリビューションUbuntu
究極のディストリビューションUbuntu
 
【学習メモ#4th】12ステップで作る組込みOS自作入門
【学習メモ#4th】12ステップで作る組込みOS自作入門【学習メモ#4th】12ステップで作る組込みOS自作入門
【学習メモ#4th】12ステップで作る組込みOS自作入門
 
Grunt入門
Grunt入門Grunt入門
Grunt入門
 
Fluentdでログを集めてGlusterFSに保存してMapReduceで集計
Fluentdでログを集めてGlusterFSに保存してMapReduceで集計Fluentdでログを集めてGlusterFSに保存してMapReduceで集計
Fluentdでログを集めてGlusterFSに保存してMapReduceで集計
 
Jspmとtypescriptで開発する
Jspmとtypescriptで開発するJspmとtypescriptで開発する
Jspmとtypescriptで開発する
 
[db tech showcase Sapporo 2015] A22:HP NonStop SQLはなぜグローバルに分散DBを構築できるのか、 データの...
[db tech showcase Sapporo 2015] A22:HP NonStop SQLはなぜグローバルに分散DBを構築できるのか、 データの...[db tech showcase Sapporo 2015] A22:HP NonStop SQLはなぜグローバルに分散DBを構築できるのか、 データの...
[db tech showcase Sapporo 2015] A22:HP NonStop SQLはなぜグローバルに分散DBを構築できるのか、 データの...
 
第1回『いまさら聞けない!システム運用・管理のコツ』 『クラウド管理・運用サービス「E.C.O」のご紹介』
第1回『いまさら聞けない!システム運用・管理のコツ』 『クラウド管理・運用サービス「E.C.O」のご紹介』第1回『いまさら聞けない!システム運用・管理のコツ』 『クラウド管理・運用サービス「E.C.O」のご紹介』
第1回『いまさら聞けない!システム運用・管理のコツ』 『クラウド管理・運用サービス「E.C.O」のご紹介』
 
Ad stirの裏側
Ad stirの裏側Ad stirの裏側
Ad stirの裏側
 
PXE で linux インストールな本 -1 スピンドルマシンも Linux 化-
PXE で linux インストールな本 -1 スピンドルマシンも Linux 化-PXE で linux インストールな本 -1 スピンドルマシンも Linux 化-
PXE で linux インストールな本 -1 スピンドルマシンも Linux 化-
 
FreeBSD 12.0 RELEASE!
FreeBSD 12.0 RELEASE!FreeBSD 12.0 RELEASE!
FreeBSD 12.0 RELEASE!
 
20130126 sc12-reading
20130126 sc12-reading20130126 sc12-reading
20130126 sc12-reading
 
ネットワークコマンド入力に対応したツール事例
ネットワークコマンド入力に対応したツール事例ネットワークコマンド入力に対応したツール事例
ネットワークコマンド入力に対応したツール事例
 
クラウドアプリケーション開発に必要なセキュリティ
クラウドアプリケーション開発に必要なセキュリティ クラウドアプリケーション開発に必要なセキュリティ
クラウドアプリケーション開発に必要なセキュリティ
 
第12回CloudStackユーザ会_ApacheCloudStack最新情報
第12回CloudStackユーザ会_ApacheCloudStack最新情報第12回CloudStackユーザ会_ApacheCloudStack最新情報
第12回CloudStackユーザ会_ApacheCloudStack最新情報
 
第5回札幌SoftLayer勉強会資料_20150311
第5回札幌SoftLayer勉強会資料_20150311第5回札幌SoftLayer勉強会資料_20150311
第5回札幌SoftLayer勉強会資料_20150311
 
【第二回 ゼロからはじめる Oracle Solaris 11】03 ネットワーク環境の複雑性に対処する新しいネットワーク管理の仕組み ~ Oracle ...
【第二回 ゼロからはじめる Oracle Solaris 11】03 ネットワーク環境の複雑性に対処する新しいネットワーク管理の仕組み ~ Oracle ...【第二回 ゼロからはじめる Oracle Solaris 11】03 ネットワーク環境の複雑性に対処する新しいネットワーク管理の仕組み ~ Oracle ...
【第二回 ゼロからはじめる Oracle Solaris 11】03 ネットワーク環境の複雑性に対処する新しいネットワーク管理の仕組み ~ Oracle ...
 

u2u1