久しぶりに自分のデモサイトをみたらXSS被害に!
以前に書いたこの記事。
チャットサーバをHeroku上でデモ用に動かしていたのですがXSS対応していなかったためルームに入るとgithubに飛ばされるような書き込みがされてしまっていました。
ということに気づいてしまったのでルーム名と書き込みに対して無害化するロジックをいれてみました。
この記事をみて組込もうとしたところモジュールの仕様が変わっていたので、
その辺を記事に残しておきます。
コードで一言: node-validatorを使ってみた
node validatorというモジュールからはXSSのsinitizeをしてくれる機能は切り離されたようです。
chriso/validator.js · GitHub
なので今回使ったのは結局こちらgithub.com
インストール
npm install xss-filters --save
使い方(サーバサイド)
var xssFilters = require('xss-filters'); res.send('<h1> Hello, ' + xssFilters.inHTMLData(firstname) + '!</h1>');
かんたんですね。
これでもう大丈夫なはず!
体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践
- 作者: 徳丸浩
- 出版社/メーカー: SBクリエイティブ株式会社
- 発売日: 2013/07/26
- メディア: Kindle版
- この商品を含むブログを見る