
231
7
章
セキュリティ、暗号化、認証
はじめに
Web
サービスを一般公開する場合、セキュリティは一番重要な要素となります。セキュリティ
の重要性はサービスや取り扱うデータの重要性に比例しますが、たとえ小さなプロジェクトであっ
ても、攻撃に対する耐性を持ち合わせていなければなりません。
市場で利用されているフレームワークの多くは、ビルトインのセキュリティ対策を提供していま
す。ただし、ビルトインで提供されるということは諸刃の剣でもあります。(
SQL
に渡す前のユー
ザ入力のクリーニングなどの基本的事項は除いて)セキュリティ対策に関して、開発者が詳細に至
るまで考え抜いた上で実装を行う必要がないため、フレームワークのベンダーがすべてのセキュリ
ティホールを閉じてくれている、と暗黙的に信頼してしまっています。
このような状況下で、
PHP
のように多くのサイトで利用されているサーバサイドの言語やフレー
ムワークに脆弱性が見つかったとすると、多くの潜在的攻撃者がすぐにその情報を知ることにな
り、脆弱性を持ったバージョンのソフトウェアで動作しているサイトは攻撃に対して無力になるで
しょう。
Node
では、サーバサイドのセキュリティのほぼすべての責任を開発者が負っています。した
がって、我々開発者は考えられる脆弱性を知り、攻撃に備えてシステムとスクリプトを強化する必
要があります。
Node
は、フレームワークの構築のためにミニマリストアプローチをとっています。つまり、開
発者が明示的に筋書きを定めていなければ、何も起こりません。このアプローチは、システムの未 ...