Webセキュリティの問題の記録と解決策

1. 対象サイトに JavaScript フレームワーク ライブラリの脆弱性があることが検出されました

サーバー認証の問題(トークン)

ログインすると、インターフェイスはすべてのインターフェイスのログイン資格情報としてトークンを返し、Web 側は通常 Cookie メソッドを使用してトークンを保存します。データを確認したところ、この保存方法には抜け穴があることが判明しました。

間違い:

import Cookies from 'js-cookie'
export function getToken () {
  return Cookies.get(TokenKey)
}

export function setToken (token) {
  return Cookies.set(TokenKey, token)
}

export function removeToken () {
  return Cookies.remove(TokenKey)
}

方法:

js-cookie を削除して再パッケージ化するだけです。ページ上のデータに関しては、グローバル クエリ Cookie がlocalstrogeに保存されます。

// 存放数据
localStorage.setItem("key",value);
// 根据key获取数据
localStorage.getItem("key");
// 根据key删除数据
localStorage.removeItem("key");
// 清空localStorage
localStorage.clear();

jQueryのバージョンが低すぎる

分析します:

Web セキュリティ - JQuery フレームワーク XSS 脆弱性の分析

http://www.zztongyun.com/article/jQuery%E4%BB%A3%E7%A0%81

https://jiuaidu.com/jianzhan/774195/

以下のリンクで脆弱な jQuery バージョンを確認してください。

http://research.insecurelabs.org/jquery/test/

次のリンクから脆弱性の詳細を表示します。

https://bugs.jquery.com/ticket/11290

解決:

最新バージョンに更新するには、次の手順に従います。

1) アップグレードバージョン:

実際、これはそれを修正するための最良かつ最も簡単な方法です。古いバージョンのいくつかのメソッドは新しいバージョンでは放棄されている可能性があるため、互換性のために jquery-merge を導入する必要があります。公式では2種類のjQuery-Migrateが提供されています。公式Webサイトを参照してください。

1.9 より前の jQuery コードを jQuery 1.9 から 3.0 に更新します。そのバージョンはここから入手できます。

圧縮された製品版 jQuery Migrate 1.4.1 をダウンロードします。

非圧縮の開発用 jQuery Migrate 1.4.1 をダウンロードします。

Migrate1.x を使用して jQuery1.9 以降にアップグレードした後、2 番目のバージョンは、コードを jQuery3.0 以降で実行するように更新するのに役立ちます。

圧縮された製品版 jQuery Migrate 3.4.0 をダウンロードします。

非圧縮の開発用 jQuery Migrate 3.4.0 をダウンロードします。

計画

<script src="/js/jquery-3.6.3.min.js"></script>//最新版本代替旧版本
<script src="/js/jquery-migrate-3.4.0.min.js"></script>//帮助更新版本的migrate

2) バージョン番号を非表示にする

この方法、実は非常にトリッキーで、スキャナーにjsのバージョン番号を認識させないようにするのですが、操作方法としては、jqueryファイルのヘッダーにあるバージョン番号のコメントを削除し、ファイル内のバージョン番号を削除するというものです。削除したくない場合は、最新のバージョン番号 3.5.1 に変更できます。

3) jsメソッドを書き直す

一部のメソッドを書き直すか、下位バージョンの対応するメソッドを上位バージョンに置き換えます。

おすすめ

転載: blog.csdn.net/weixin_51258044/article/details/128883382