4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

node.js の CVSS v3 モジュールを使ってデモページを作ってみた

Last updated at Posted at 2015-07-26

前回の続き。

cvss3 のロジックはできたので(まだ基本評価基準のみだけど),これをブラウザ上でも使えるようにする。

Web 上をあちこち回ってみたが webpack を使うのがよさげである。今回の用途にはオーバースペックではあるが,練習を兼ねて使ってみる。以下のページがとても参考になった。感謝。

spiegel-im-spiegel/cvss-demo に開発環境を置いている。以下のページで実際に動いているのを確認できる。

デモページでは [Score] ボタンを押すと Vector 情報を出力し,その Vector 情報を cvss3 で計算して Score を表示している。すべてクライアント側で動作しているのでご心配なく。

ハマりどころ

cvss3 ではオブジェクトを階層的に配置している。たとえば BaseMetrics オブジェクトを生成するには

app.js
var cvss3 = require('cvss3');
var base = new cvss3.BaseMetrics();

のように記述する。オブジェクトを階層的に配置することで Java 的な名前空間を構成している。 node.js ではこれで問題なく動作したが, webpack で JavaScript をバンドルするとうまくいかないようだ。上述のようなコードを書くと「BaseMetrics なんてコンストラクタはねーよ,バカ」(超意訳)とか怒られる。

色々試してみたが,オブジェクトを階層的に配置するのはダメらしい。なので,そこはすっぱり諦めて global 直下に並列に配置することにした。例えば上述のコードは

app.js
require('cvss3');
var base = new CVSS3_Base();

と書けば目的のオブジェクトを生成できる。もっとうまいやり方があるかも知れないが,週末も終わるし,本業が忙しくなってしばらく構ってあげられないと思うので,当面はこれで行ってみる。

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?