node.jsで使える便利なモジュールはたくさんあります。node-validatorもその1つで、入力した値の検証(バリデート)と、無害化(サニタイズ)してくれるモジュールです。前回と前々回でチャットに関しての記事を書きましたので、今回は簡単にnode-validatorの紹介と、チャットのサンプルにnode-validatorを適応させたいと思います。
https://github.com/chriso/node-validator
チャットでサニタイズしなかったらどうなるか。 前回と前々回の記事では、サニタイズをしていないので、例えばタグを入力してボタンを押して見ると、
html 1
2
3
<h1>こんにちは!</h1> <img src="http://0.gravatar.com/avatar/50dcad2670fb76d401e699e09101d87e?s=500" width="150"> <script>alert('ぼえー')</script> このようにタグがそのまま出たり、悪意あるJavaScriptを実行してしまって、cookieを書き換えられたり、同じページを開いている人にも悪い影響が出てしまう可能性があるので良くないです。これを防ぐ為に、サニタイズをします。
node-validatorのインストール方法 毎度おなじみnpmを使います。
$ npm install validator チャットにサニタイズを適応させる。 Mongooseを使わないバージョンで試してみたいと思います。前々回の【node.js】socket.ioを使って簡単にチャットを作る方法から持ってきます。
$ git clone https://github.com/cotapon/chat-socket_io-sample $ cd chat-socket_io-sample $ npm install validator node_modulesの中にvalidatorが入っているのを確認して、app.jsを編集します。
app.js 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
![](https://blog.cotapon.org/images/nodejs_thumb.jpg)