57

以下にリストされている一般的なセキュリティの懸念に対処するNode/Expressアプリに追加する必要があるモジュールを探しています。

  • インジェクションの脆弱性(JavaScript、SQL、Mongo、HTML)
  • セッション固定とハイジャック
  • クロスサイトの脆弱性(スクリプト、リクエストフォージェリ)
  • 一括割当
  • ここに関連する懸念事項を挿入

ご協力いただきありがとうございます!

----------

私が見つけたいくつかのリソース:

素晴らしい講演(2012年11月):http://lanyrd.com/2012/asfws/sxzbm/(スライドを参照)

ServerFaultの質問(2011-2012):https ://serverfault.com/questions/285123/is-node-js-mature-for-enterprise-security

トピックに関するブログ投稿(2012年9月):http ://codefol.io/posts/29-Why-Rails-and-not-Sinatra-or-Node-js-

エクスプロイトテスター:https ://code.google.com/p/skipfish/

パスポートモジュール:https ://github.com/jaredhanson/passport

EveryAuthモジュール:https ://github.com/bnoguchi/everyauth

4

4 に答える 4

46

SecureExpress.jsアプリの作成に関する優れた出発点となるブログ投稿を作成しました。zeMircoが言及したように、csrfとhelmet以外のいくつかのことをカバーしています。

もう1つは、express.jsをrailsと比較できないことです。リンゴとオレンジです。たとえば、ExpressにバンドルされているORMはなく、サードパーティモジュールの実装または使用はユーザー次第です。

私はあなたの懸念のそれぞれの内訳を試してみます。

-Injection Vulnerabilities (JavaScript, SQL, Mongo, HTML)

繰り返しますが、これらはエクスプレスに組み込まれていないものです。最も近いのは、XSSがテンプレートへのインジェクションを心配していることです。エクスプレス出力で一般的に使用されるJadeまたはEJSテンプレートは、デフォルトで<> "'および&をエンコードしますが、JavaScriptまたはCSSへのユーザー入力など、他のコンテキストについても心配する必要があることに注意してください。

-Session fixation and hijacking

再度上記のブログ投稿を参照してください。ただし、Expressは、接続ミドルウェアのほとんどに基づいており、これらのミドルウェアの1つがセッションミドルウェアです。ここで最大のことは、Cookieフラグを適切に設定することです。

-Cross-Site Vulnerabilities (Scripting, Request Forgery)

上記を参照。また、express.csrf()ミドルウェアも付属しています。言及されたブログ投稿は、それを実装する方法を示しています。

-Mass Assignment

このタイプの脆弱性を適用できる概念がないため、express.jsの問題ではありませんが、作成するカスタムロジックは実際にはこの問題に対して脆弱である可能性があるため、コードが脆弱であるかどうかを確認する問題です。使用したサードパーティモジュールが...

于 2013-01-31T03:11:12.680 に答える
9

私がすぐに考えることができる2つのモジュール:

  1. csrf:CRSF保護ミドルウェア。
  2. ヘルメット:さまざまなセキュリティヘッダーを実装するミドルウェア
于 2013-01-30T19:47:12.590 に答える
7

注意すべきことの1つは、bodyParserです。http://andrewkelley.me/post/do-not-use-bodyparser-with-express-js.htmlを参照してください

于 2013-09-06T23:23:26.017 に答える
1

キャッチオールエラーハンドラーを指定する場合は4xx、DOSの脆弱性につながる可能性があるため、サーバーを再起動したり、USERエラー(範囲)に応答してそのハンドラーでブロックしたりしないでください。この脆弱性はで自動的に対処されexpress-error-handler、サービスはできるだけ早くシャットダウンするため(アクティブな接続がドレインされた場合、またはタイムアウトが発生した場合)、再起動は大した問題ではありません。この動作を実装すると、エクスプロイトテストに大きな違いが生じました。

ところで、未処理のエラーをすべて無視するのは安全ではありません。これにより、アプリケーションが未定義の状態になり、別の種類のDOSの脆弱性が発生します。

于 2013-10-21T09:21:19.390 に答える