node.jsでcsrf対策

node.jsでcsrf対策を行う必要がありましたが、csurfというモジュールを使うことで簡単に実装できました。

実装するにあたり、サーバサイドでのcsrf対策用トークンを何に保存するか決める必要がありますが、私はcookieで行うことにしました。セッションストレージで行うやり方もありますが、やや実装が手間そうなので・・・

私の開発したソースコードから関連する場所を抜粋しておきます。

var app = express();

var cookieParser = require('cookie-parser');
var csrf = require('csurf');

app.use(cookieParser());
app.use(csrf({cookie: true}));

あと、おまけですが、node.jsにはミドルウェアという機能があり、色々な処理をつなげていくことができます。

例えば、リクエストをルーティングする前に共通処理を入れることができます。
これによって、アクセス時にログを出力するようにしたりできます。

うーん、超便利。まだまだnode.jsは奥が深そうですね。