62069
以下の質問についてご存知の方がいらっしゃいましたらご教示を願います。

* * *

## 【質問の主旨】

GitHubにプッシュしているディレクトリの一部のファイルについて"serialize-
javascript"というお知らせが来ました。どのように対処すれば良いでしょうか？

[![画像の説明をここに入力](https://i.stack.imgur.com/OmNpL.png)](https://i.stack.imgur.com/OmNpL.png)

## 【質問の補足】

### 1.

お知らせに基づいて内容を調べていくと、一部のディレクトリ内で使われている以下のコードが  
お知らせの原因になっていることがわかりました。

```

    serialize-javascript": {
          "version": "1.7.0",
          "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.7.0.tgz",
    
```

### 2.

ただしこのコードは本番環境で動いているコードではありません。自分の学習用に書いてクライアント環境（自分のパソコン）のみ動作します。

### 3.

学習用としてすでに用は済んでいるので、GitHubに公開しているコードとクライアント環境に保存しているコードは削除しても良いと考えています。

* * *

以上、ご確認よろしくお願い申し上げます。
CC BY-SA 4.0
2020-01-08T08:23:59.910
62063
2020-01-08T12:22:36.373
2020-01-08T11:38:57.220
19110
32232
question
github security
GitHubから通知された "Security Alert" の対処方法を教えてください
学習用のデータであり、かつ自己判断で「対応しない」つもりであるなら、画面に表示されている  
" **Dismiss** (却下)" ボタンをクリックすればよいのではないでしょうか。
CC BY-SA 4.0
2020-01-08T08:37:13.163
62064
2020-01-08T08:37:13.163
3060
62063
answer
セキュリティ上の心配が無いようにするのであれば、アラートで説明されているように依存しているパッケージの **更新** をしたり **変更**
をしたりする必要があります。ただ、既に使わなくなっているソースコードで今後も使う予定が無いのであれば、以下のような対応も考えられます。

  * 警告を却下する。Dismiss ボタンを押し、却下理由を選ぶことができます。今回の場合は "This project is no longer maintained"（このプロジェクトはもうメンテナンスされていません）が適切そうです。
  * [リポジトリをアーカイブし](https://help.github.com/ja/github/creating-cloning-and-archiving-repositories/archiving-repositories)、メンテナンスされていないことを明らかにする。
  * リポジトリの説明文や README.md に、リポジトリがメンテナンスされていないことを明確に書き、他のユーザーが誤解して使わないようにする。

[![Dismiss
ボタンに表示される選択肢たちのスクリーンショットです。](https://i.stack.imgur.com/ntv2Cm.png)](https://i.stack.imgur.com/ntv2Cm.png)
CC BY-SA 4.0
2020-01-08T11:50:51.337
62069
2020-01-08T11:50:51.337
19110
62063
answer
学習用に「対応する」つもりであるなら、下記の手順で対応してみてください。

## GitHub からセキュリティー通知が来た場合

public な リポジトリや  
private なリポジトリでも GitHub への読み取りのアクセス許可を与えている場合に  
このような形で セキュリティーの問題が開発者に通知されるようです。

<https://help.github.com/en/github/managing-security-
vulnerabilities/configuring-automated-security-updates>

通知が不要な場合はリポジトリの設定を変更する事で通知が来なくすることもできます。

今回は、勉強を兼ねて どのように対処したらいいのか解説します。

## 対処内容確認

まず、セキュリティーの内容を確認します。

<https://github.com/yahoo/serialize-javascript/security/advisories/GHSA-h9rv-
jmmf-4pgx>

日本語では  
<https://jvndb.jvn.jp/ja/contents/2019/JVNDB-2019-012989.html>

にあるように serialize-javascirpt 2.1.1 より 古いバージョンには 正規表現の取り扱いに問題があるため
XSS(クロスサイトスクリプティング） セキュリティーの問題があるようです。

ここで、忠告を受け入れて対処するか、忠告を無視して 対応するか 判断が必要です。

今回は 対処する方法を解説します。

## 対処方法

GitHub の提案する [create automated security update] ボタンをクリックると package.json
に書かれているインストールされている npm パッケージのバージョン番号を 1.7.1 から 2.2.1 に変更するコミットを提案してきます。(GitHub
から pull request が来ます）

プルリクエストを受け取とると セキュリティーのアラート表示が消えるのですが、このままでは  
セキュリティーの本質的な解決にはなりません。

```

    git pull
    npm update
    
```

して 最新の パッケージをダウンロードして アプリの動作確認を行い  
問題がない事を確認して

```

    git add *
    git commit -m "セキュリティー対応のため serialize-javascript 2.1.1 に更新"
    git push
    
```

としておきます。

## セキュリティーアップデートと互換性の問題

今回は ver 1.7.1 から 2.1.1 に変更しても ライブラリの互換性の問題は発生しないようですが、  
ライブラリによっては、単純にはいかない場合もあります。

実は、このセキュリティーアップデートとライブラリの互換性の問題で  
アプリが動かない、または、微妙にうごきあおかしくなって、対処できない・・。  
何てことが良く発生します。

それをどのように対処するかは・・ stackoverlow でみんなに聞いてください。  
そうして得た情報はみんなで共有しましょう。
CC BY-SA 4.0
2020-01-08T12:22:36.373
62074
2020-01-08T12:22:36.373
2020-06-17T08:14:45.997
-1
18851
62063
answer