2014-01-01から1年間の記事一覧

uncaughtExceptionのハンドラの中で例外発生させたときの挙動

基本的には、プログラムで例外が発生したときに、それがcatchされないとプログラムは終了する(落ちる)。 しかし、実際に運用する環境のプログラムでは、仮にcatchされなかったとしてもプログラムを止めることはできないので、 どうにかする。Node.jsの場合は…

とりいそぎExpress4を試す。

Expressを使い始めるためにひな形を作成するexpress-generatorが、Express4に対応してたので とりあえずそれを使って試すのがよさそう。本来なら npm install -g express-generator ですが、まだnpmにはExpress4向けのものは上がっていないので、githubから…

バリデーションとエラー処理について

値の妥当性チェックはどこでやるべきなのかの話 Webアプリケーションに限った話ではありませんが、特にWebアプリケーションを作っているとき、 ユーザから受け取った値のバリデーションは必ずどこかで行わなければなりません。例えばJavaでモデルを作るとき…

Webアプリケーションに対する攻撃手法まとめ(0.5 MongoDB インジェクション)

0.5 MongoDB injection 前回の記事でNode.js+MongoDBなら普通は脆弱性出ないから気にしなくていいですよね、等と書いたのですが、 僕自身が今までフツーに脆弱なコードを書いていました・・・。まずはその話から。 概要 Node.js+MongoDBでMongoDBのドライバ…

Webアプリケーションに対する攻撃手法まとめ(0.SQLインジェクション)

前置き 会社で1ヶ月ほど技術研修を受けましたので、その整理をするつもりで記事を書き始めましたが、 文にしようとすると自分の分かっていないところが諸々出てくるため、結局深彫りして調べる必要があり、結果書くのに要する時間も文量も予定の4倍くらいに…

express.ioの導入

紹介までしといてまだセットアップもしてなかったのかよっていうツッコミはおいといて。簡単に紹介し直すと、Node.jsのアプリの定番フレームワークとしてExpressがあり、またWebSocketを主に使った双方向通信ができるのがSocket.IOで、 この2つを合わせて使…

esprimaのパーサを試してみる

2つ前の記事で紹介したJavaScript Source Transformation: Non-Destructive vs Regenerativeのコメント欄にて、esprimaというパーサがあることを知った。 さっそくnpm installして試そう・・・と思ったのだが、なんと公式サイト上で試せてしまった。 http://…

UglifyJSのパーサを試してみる

前回の記事の続き。 asyncblockのソースを調べたところ、asyncblockのsource transformationは、内部でUglifyJSを使っていた。 UglifyJSは普通はソースをminifyする用途で使われるが、その一部としてjsの文をparseしており(当然か)、その部分だけ抜き出して…

記事を読んだ: JavaScript Source Transformation: Non-Destructive vs Regenerative

Node.jsの非同期処理を同期っぽく書けるようにするasyncblockというモジュールのreadmeを読んでいて、 その中に Source Transformationという言葉が出てきたので、なんじゃこれとググって次の記事を参照した。http://ariya.ofilabs.com/2013/06/javascript-s…

なるべく怠惰にWebサービスを作りたい件[サーバ編1]

サーバ編から行きます。npm, Node.jsはインストール済とします。 とりあえずCoffeeScriptをインストールしましょう、 npm install -g coffee-script フレームワーク 最初に、フレームワークはExpress.ioを選定しました。Node.jsのフレームワークといえば第一…

なるべく怠惰にWebサービスを作りたい件[前編]

一人で趣味でWebサービスを作る時、Node.jsを選択すればサーバもクライアントもJavaScriptで書けるわけですが、 JavaScriptにコンパイルできる言語はいくつかあり、 特に静的型付けを必要としなければ、CoffeeScriptは第一候補に入ってくるでしょう。 Coffee…