学習要約11週(研究ノート)「サイバースペースのセキュリティ専門家の概要」2019-2020-1学期20192419

第V章アプリケーションセキュリティ

5.1アプリケーションのセキュリティの概要

3層クライアント/サーバアーキテクチャで、新たな構造の出現によってもたらされるシステムに従来のクライアント/サーバー・アプリケーションのこれらの制限の影響を克服するために。
アプリケーションの別の種類を構築するための三層クライアント/サーバ・アーキテクチャ、アプリケーション・システムの3つのレベルで構成。この構成では、Webアプリケーション・サーバー(たとえば、MicrosoftのIEなど)標準的なブラウザを使用しているユーザは、インターネットとのアクセスをHTTPプロトコルを提供するサービス側は、Webアプリケーションサーバが直接、ページが要求された場合、ユーザーのブラウザが提起した要求を解析HTTPプロトコルでは、ユーザーを参照するページを返します。(もちろん、修正、追加履歴を含む)データベース照会操作の要求がある場合、この要件は、ミドルウェア・サーバとミドルウェアによる操作要求にデータベース、データベースシステムに送信され、結果が得られると、次にウェブに返さその後、アプリケーションサーバ、Webアプリケーションサーバ、データベース操作HTMLページの形成の結果、およびブラウザに返さ。

5.2一般的なWebアプリケーションのセキュリティの脆弱性

5.2.1 SQLインジェクションの脆弱性

SQLインジェクションの脆弱性は、Web-レベルが最もリスクの高い脆弱性の一つですです。
次のようにSQLインジェクションのために,,いくつかの保護対策を使用することができる:
1.パラメータタイプ検出
主パラメータクエリ純粋な文字を検出するために、以下の機能を達成することができるパラメータタイプ:

  • 指定されたベースバンド変換を使用して、VARの整数値を返します
  • 変数は、数値または数値文字列であるが、この関数は小数、入力が負であることを可能とするかどうか
  • 変数は数値、負の数であり、小数のチェックが失敗したかどうかを検出します

2.パラメーター長検出器
3リスクパラメータろ過は、
1)ブラックリスト2)ホワイトリストフィルタ3)GPCフィルタ:三つの主要な方法があり、濾過した
4パラメータクエリ

5.2.2ファイルアップロードの脆弱性

ファイルアップロード機能の実装コードの原則のいくつかの1.ファイルアップロードの脆弱性は、厳密には、Webアクセスのディレクトリおよびにこれらのファイルを転送する機能を経由して、任意のPHPファイルをアップロードするには、攻撃者を許可することができ、その結果、アップロードするファイルの拡張子とファイルタイプのユーザーに限定されるものではなく、リモートサーバー上で任意のPHPスクリプトを実行することができますPHPインタプリタ、。悪質なファイルがアップロード原因3があります:
1)ファイルアップロードチェックLAX
2)ファイル名を変更すると、ファイルのアップロードが正常に処理した後、
サードパーティのプラグインを使用)3を導入する
2.ファイルアップロード攻撃事例研究の
ステップ1:アップロードの正常画像そしてウェブシェル、オープンアップロードアドレス、準備された画像を選択し、アップロードの写真は、アップロードが成功した、情報が返されたページを観察し、我々は準備ができてPHP環境なので、あなたがPHPの言葉を使用する必要があるため、その後、私たちは言葉を作成する必要があります。新しい空のテキスト文書、単語書かれたテキストを作成し、xxxxxx.phpという名前のファイルを変更し、デスクトップに保存します。PHPのアップロードファイル、その後、アップロードに失敗したプロンプトが表示された場合、サーバーはサフィックスが判断をしたファイルをアップロードするために証明することができます。
ステップ2:検出アップロードバイパスへの変更、ファイルの拡張子
拡張子を持つ解析のPHPファイルに加えて、PHP言語は、あなたもphp2、PHP3、PHP4、PHP5拡張子を持つファイルに解決することができます。我々はxxxxxxx.php2、再アップロードのファイル名を変更することができます。まだアップロードにターン試みでxxxxxxx.php3、xxxxxx.php4、xxxxxxx.php5に、そのファイル名を失敗したアップロードし、アップロードが成功した、xxxxxx.php3が成功をアップロードできます、我々はその後、直接コピーすることができ、ファイルにアクセスする必要がありますファイルパス、コピーして、その構造のアクセスアドレスにとして、リアにWebサイトのアドレスのアドレスを貼り付け、および構築のアドレスをコピーします。
ステップ3:取得許可ウェブシェル
中国の包丁と、アドレスをコピーし、ここでパスワードを設定するパスワードのセット1を入力し、スクリプトPHPの種類を選択し、[追加]ボタンをクリックし、オープンアクセスソフトウェアを記入し、あなたは最後のエントリをダブルクリックした後、指定された対象サイトのリストを見ることができ、私たちが成功ウェブシェルの標的部位への許可を得ていること。
ファイル3.一般的な脆弱性保護措置
(1)システム防衛の開発段階
(2)防衛システムの運用段階
(3)セキュリティ防衛機器

5.2.3 XSS

  1. XSS定義
    クロスサイトスクリプティング攻撃は、入力は、ページ上の他のユーザーにページへの影響を表示するHTMLコードを入力し、他の欠点に表示することができ、したがって盗むフィルタユーザ入力にネットワークプログラムを使用して、不十分な攻撃者でありますユーザーの身元何らかのアクションやウイルスへの道の訪問者への攻撃を使用して、ユーザーデータ、。
  2. XSSは、例を利用します
  3. XSSザ分類は
    三つのカテゴリーに分けることができる:1)反射型2 XSS)XSSストレージタイプ3)DOMベースXSS
  4. XSSは、保護の一般的な手段脆弱性
    を使用するが、コーディングマテリアライズド)の特殊文字フィルター2)1

    5.2.4 CSRF

    これは、CSRF CSRFを指し、
  5. CSRF原理
    二つのステップで順番に完了しなければならない犠牲者:1)ログインAは、ウェブサイトを信頼して、ローカルにクッキー2を生成する)Aの場合は、外の危険なウェブサイトBへのアクセスではありません
  6. 害ウェイCSRFの三種類の異なる
    場所1)フォーラムおよびその他のインタラクティブ2)ウェブアタッカー3)攻撃者
  7. CSRFの脆弱性に対する保護の一般的方法
    1)を追加検証コード2)トークンを使用して)3リファラーを確認します

    5.2.5リモートコード実行の脆弱性

  8. 原則、リモートでコードが実行される脆弱性
  9. リモートでコードが実行される脆弱性防ぐために
    1)無効高リスクのシステムは、2機能)厳格なフィルタリング文字キー3)を厳密に許容パラメータの種類を制限します

    5.3悪意のあるコード

    5.3.1悪意のあるコードの定義

    また、マルウェアとして知られている悪意のあるコードは、コードが、コンピュータシステムに不正な操作を実行することができています。悪意のあるコードは、感染したコンピュータのデータを破壊するように、コードが検出されることなく他にプログラムに埋め込まれるプログラム、です。

    悪意のあるコードの5.3.4害

    主に以下の分野で危険悪意のあるコード、:1)データ2の破壊)4)コンピュータの速度に影響を与えるシステム・リソースをつかむために、ディスク・ストレージ・スペース3)を取ります

    5.3.6典型的な悪質なコードの原則と防衛分析

  10. 紹介ウェブシェル
    通常の実行スクリプトファイルであるウェブシェルファイルを
    害する2.WebShell
    これらのスクリプトしばしば、侵入Webアプリケーション・サーバーの後に、攻撃者がバックドア、Webサーバーのディレクトリにトロイの木馬ファイル、その後、攻撃者はWebページの方法を使用することができます、アップロードとダウンロードファイルなどのスクリプトバックドア型トロイの木馬、を介して制御Webサーバは、任意のコマンドを実行し、データベースを表示します。
    4.予防法
    (1)サーバーのセキュリティ設定
    ①スクリプトファイルのコード監査を強化し、ページが分析に集中するFSO、シェルは、オブジェクトや他の操作を表示されます。
    正規表現を介して②Webサーバは、そのような濾過により、確認するために必要なユーザ情報の正当性の長さ等の方法により提出されたユーザ入力情報を制限します。
    ③データベースは、データベース自体にアクセスするように設定されたデータベースシステムのセキュリティのアクセス許可を使用して、Webアプリケーションシステムの重要な構成要素です。
    (2)アプリケーションのセキュリティ
    、ストレージ、セキュリティ権限1.Webソフトウェア開発2.FTPファイルは、ファイルシステムのセキュリティをアップロード3. 4. Webサービスの実行のスーパーユーザーは使用しないでください
    (3)ファイルのアップロードを制御する
    スクリプトファイルのコード監査を強化1. 2.別のフォルダにある重要なファイルのアプリケーション、仮想ディレクトリを設定することにより、これらのフォルダへのアクセス、特にアップロードファイル、およびそれらのフォルダに設定し、合理的なアクセス。

    5.4ミドルウェアのセキュリティ

    5.4.1ミドルウェアの概要

    柔らかい、それは、ハードウェアプラットフォームおよびアプリケーション信頼性の高い効率的なデータ転送または変換の間に必要とされるので、システムの相互運用性が確保されます。ソフトウェア・アプリケーションの上位層のためのサポートを提供しながら、これらのすべては、ソフトウェアとハードウェアプラットフォームの必要性に基づいて構築、およびミドルウェアは、この環境の中でされて入ってきました。
    定義:ミドルウェアは、異なる技術間でリソースを共有するために、このソフトウェアを使用して、分散アプリケーション、個別のシステムソフトウェアまたはサービス・プログラムです。ミドルウェアは、クライアント/サーバーコンピューティングリソースのオペレーティングシステムの上に位置し、ネットワークトラフィックを管理しています。ミドルウェアの定義からわかるように、ミドルウェアの相互接続だけでなく、アプリケーション間の相互運用性を実現しています。ミドルウェアは、ネットワーク通信の定義を中心に、ソフトウェアベースの分散処理です。
    エンタープライズミドルウェアは、次のような利点があります
    、アプリケーション開発者は、11シンプルかつ統一された開発環境に直面しそうすることを、具体的には、ミドルウェアの盾基礎となるオペレーティングシステムの複雑さ)1プログラム設計の複雑さを軽減、注意がなります力は、もはや大幅技術的負担を軽減し、異なるシステムや作業の重複にソフトウェアを移植する必要があり、自分のビジネスに焦点を当てていません。
    アプリケーションシステムの同じ部分で簡単に2)のみ、開発サイクルを短縮し、開発するだけでなく、メンテナンス、操作およびワークロード管理システムは、コンピュータ入力の全体的なコストを削減減らすことはありませもたらします。
    ミドルウェアは、ミドルウェア技術やトランザクションミドルウェアの様々な機能の製品、メッセージングミドルウェア、統合ミドルウェアなどが含まれます。

    ミドルウェアの5.4.2分類

    ミドルウェアは、ミドルウェア技術やトランザクションミドルウェアの様々な機能の製品、メッセージングミドルウェア、統合ミドルウェアなどが含まれます。ミドルウェアは必要不可欠なツールのネットワークアプリケーションシステムの開発、統合、展開、運用、管理になっています。アプリケーション・サービス・クラスミドルウェア、アプリケーション統合ミドルウェアクラス、ビジネスクラスのミドルウェア・アーキテクチャ:基本的には3つのカテゴリに分類することができます。
  11. アプリケーションサービスクラスミドルウェア
    このようなミドルウェアは、オブジェクト・リクエスト・ブローカー(ORB)ミドルウェア、トランザクション・モニタ・トランザクションミドルウェア、Javaのアプリケーションサーバミドルウェアを含む、アプリケーション・プラットフォームのための統合コンピューティング環境やサポートシステムを提供します。
  12. アプリケーション統合ベースのミドルウェア
    共通メッセージング・ミドルウェア、エンタープライズ統合EAI、エンタープライズ・サービス・バスおよび補体を含む様々なネットワークアプリケーション、サービスおよびデータ統合統合機能、の間のメッセージベースの通信を提供するためのアプリケーション統合ミドルウェアアダプタなど。
  13. ビジネスクラスのミドルウェアアーキテクチャの
    ビジネスアーキテクチャのミドルウェアミドルウェアは、ビジネスプロセス、経営管理とビジネスの相互作用の複数の事業領域を含んでいます。

    5.4.3典型的なミドルウェアセーフティケース

    脆弱性の原因は以下の通りである:
    1)Javaで書かれたWebサーバーとWebアプリケーションの間で、Javaは通常、シリアル化された多数のオブジェクトを送信します。
    2)HTTPリクエスト・パラメータ、クッキーとパラメータ。
    3)RMIプロトコルは、RMIプロトコルは広く完全ベースのシリアル化を使用します。
    4)JMXをシリアライズされたオブジェクトを処理します。
    5)受信し、元のJavaオブジェクトを送信するためのカスタムプロトコル。
    6)データを読み取るためにシリアライズ()メソッド中のwriteObject ObjectOutputStreamのクラスを使用してデシリアライズ、データを受信した後、典型的にはreadObjectメソッドObjectInputStreamのクラス()メソッドを使用します。

    5.5.2標準のデータベース言語SQL

    SQLは、クエリ言語に構成されている、組織、管理、および検索するためのツールであるコンピュータデータベースにデータを格納するのに使用されます。

    データベースセキュリティの5.5.3典型的な例

    :次のように保護方法データベースのためのものである
    1)まず、SAアカウントのパスワードのような強化する必要性を。システムアカウントの設定は、このアカウントは、SAのような最上位の権限を持って使用していない、との要件を満たすために、一般的なアカウントを利用するために、データベースの一般的な動作に似て使用してください。
    ストアドプロシージャの処理2)拡張。まず第一に、あなたは、xp_cmdshellを削除するだけでなく、ストアドプロシージャ上記のものと理由は、一般的に以下これらのストアドプロシージャより。
    3)実行用のマスターSP_ dropextendedproc「xp_ cmdshell」不正ユーザアクセスを防ぐために、Guestアカウントを削除します。
    4)、ログオンするために、すべてのログインイベントの最高記録をデータベース・ロギングを強化します。
    5)速やかに満たされる必要があるような場合に見られるようなパスワードが空白または単純すぎる、などであるかどうかを確認するために、すべてのアカウントで、定期的に管理者アカウントを確認してください。

    世論分析の章VIII

    8.1世論の概念

    これらの世論、世論の特にネットワークは、役割を果たしたイベントの発展を導くために傾向があり、ヘルプをユーザーが正しい値を渡し、ネットワーク内の多数の世論に間違っから右区別精神文明のインターネット時代の重要な側面です。そのため、世論の分析は、サイバースペースのセキュリティの重要なトピックとなっています。

    8.1.1ネットワーク世論と世論

    世論は、社会や公務上の世論です。世論、世論と二つの部分で世論を含む社会的ネットワークは、両方とも相互作用があり、相互にマッピングされます。インターネット世論が社会的な世論の不可欠な部分である、インターネットを通じたメディアやインターネットユーザーは、焦点に一定の影響力を持っている、広報は、tendentiousコメントを呈したり、インターネット上の世論備考特殊な反射。

    8.1.2目的と世論分析の意義

    世論は、戦略、プロセスと結果が生成処理、特定の社会的なホットなイベント、開発、イベントのコミュニティの態度ほとんどの人々の変更の周りに一定の社会的な空間であり、社会現象や社会問題に関する人々の大半感情や意見の収集によって示さ態度。世論分析は、政府と企業経営にとって重要な意味を持っています。
    1)一部のネットワークは、政府の画像、世論、世論を監視および分析行い、イベントや世論の動向をタイムリーに理解し、エラー、世論の不正確な正しい指導に影響を与える可能性があります。
    2)政府は、世論の監視と分析を通じて、世論は正しい判断をするためにイベントに貢献し、社会のメンバー、態度、見解、意見や行動傾向のすべての部門によって社会的、感情的な理解を把握することができます。
    3)世論の企業、効果的な監視及び分析のために、治療に関連するタイムリーにネットワークへの影響、特に、負の影響は特に重要です。

    8.1.3インターネット世論の機能

    ネットワーク環境での世論の情報の主な情報源:ジャーナリズムレビュー、BBS、チャットルーム、ブログ、ニュースアグリゲーション、マイクロブログ、手紙など。インターネット世論は、以下の特徴を有する:1)2の直接発現)意見番号3で情報の大容量を有する)コンテンツ及びインタラクティブ4にランダム世論情報を有する)迅速5)が突然6伝搬)ネットワーク一連のイベントの分析によると不合理8)世論、9の偏差とリアルタイムの情報と時間の継承7)気分で世論の情報)が、我々は開発中のものを見つけ、イベントによって関心の顔の人々いくつかの段階を通過しますとき:初期の注意、開発期間、クーリングオフ期間の爆発、クーリングオフ期間を

    インターネット世論の8.2分析

    8.2.1検索

    人工検索マシン・タイプを取得するなど、世論既存のネットワーク検索方法。
    特定のキーワードに関連するネットワーク上の情報、および情報蓄積による情報ソースの見解を把持して工作機械を取得するための情報検索手段は、判断にURLのポインティングは、簡単な手順を与え、そしてユーザーの要求によってソートすることができますおよびスクリーニング。
    人工は、完全に人工的に依存している情報の管理を実現するために参照していない、取得、およびツールは、オープンな世論の分析作業によってネットワークを完成します。
    世論分析の検索方法は、次のような特徴があります:
    1)練習の自己開発の検索ツールは、使用頻度が高い、高い通常の商用検索エンジンの使い方ではありません。
    2)機械を取得することは予め設定されたディレクトリが必要です。
    データ検索機用の粗3検索)、人工細かい検索がデータを取得する責任があります。
    )ポイントを開始すると、キーワード検索やリストである、コンテンツが転送トラフィック、クリック数、コメントの量、キーポイントの普及を含め、属性情報を取得しています。

    8.2.2判定方法

    動機ネットワーク世論の分析では、世論が発生し、コアの要求、伝搬路と拡散影響に焦点を当て、スプレッドの動向を決定し、世論に影響を与えます。これら二つのタスクを達成するためには、アイデアを分析する必要があり、そして第二に、必要性は理論を支持します。
    判断のインターネット世論の分析は、主に情報判断定量的および2つの判断の定性分析が含まれています。
    定量は、以下を含む分析評価:
    領域統計分析(1)によって世論
    (2)意見時間統計分析
    世論時間統計分析の(3)
    (4)ジェンダー分析によって世論
    (5)世論業界統計解析により
    (6)世論によって統計分析の性質
    密度に応じて(7)世論の統計的分析、
    定性判定解析含む:
    統計解析の信頼性により判断(1)世論
    統計分析の値に応じて判断(2)世論
    (3)統計解析の信頼性によって判断世論
    (4)世論の統計分析は、過去の相関判断
    (5)は世論を回す早期警戒予報の統計的な分析を判断

    8.2.3典型的な世論の分析方法

    1.ダブル分析
    解析及びドライバ層分析二重層伝搬解析含む
    伝播層の(1)分析は
    必要がコミュニケータを分析するので、コンテンツ配布戦略調整識別特性コミュニケータの生産と普及のための重要な意義を有しています。
    (2)分析ドライバ層
    2統計的意味解析
    セマンティック文法ネットワーク世論のより正確な分析を達成するために、世論のネットワークの正確な理解を生成し、効果的意味解析を実現することができ、そして解析と組み合わせることができます。
    3.感情方位解析
    テキストコンテンツ分析感情的傾向の懸念は、テキストそのものではなく、自動的にテキストコンテンツ表現感情や態度を分析する能力はありません。
    4.テキストマイニングのWebベースの分析
    Webベースの技術は、順次パターン、自動分類、およびクラスタリング技術をマイニング、テキストマイニングアソシエーションルールマイニングを含みます。
    協会のルールマイニングは、データ間の関係の中に隠さ掘り出すことができます。
    焦点前後のシーケンシャルパターンマイニングの配列の関係が分析データにあり、その生産の世論のネットワークは、消光特性の開発プロセスは、機能セット間の順序暗黙の関係を発見し、シーケンシャルパターン分析に展示しました。
    クラスター分析は、いくつかの類似性測定基準、異なるカテゴリに標識されていないテキストのカテゴリであるテキストマイニング、でかなり広く使用されています。
    テキストマイニング技術の自動分類は、分類基準は、予め設定されている、キーテクノロジーは、事前定義されたクラスにオブジェクトを分割することであるです。

    8.3世論分析アプリケーション:インターネット世論解析システム

    8.3.1基本的なアーキテクチャ

    :分析システムは、一般的に以下の機能を有するネットワーク世論
    1)ホットな話題を、感受性被験者識別
    2)素因の分析
    トラッキングに関する3)
    4)トレンド分析、
    5)緊急分析
    6)警報システム
    7)統計報告
    意見ビッグデータシステム環境ネットワークシステム、世論世論データがネットワークによって収集された一般的な一般的な、データは、データ分析及びクラスタリング及び世論と他のプレゼンテーション・モジュールの結果、処理を事前。

    8.3.2情報収集

    ウェブクローラの基本原則:スタート→初期クロールウェブURL→→クロールURLキュー→→停止条件に新しいURLを満たしていれば終了、そうでない場合はステップバッククロールウェブ場合。

    8.3.3ネットワークリソース分析

    ネットワーク世論のデータを分析し、トピックが世論分析の主要な課題であることが判明しました。トピックは、コアイベントまたは活動やイベントや活動に直接関連し、それです。ディスカバリーは、特定のアルゴリズム、自動検出、話題を識別するプロセスを用いて分析した既存の世論データの話題です。研究方法は、一般的に2つのカテゴリにトピック秋に発見された:第一の方法は、適切なトピックのクラスタリングアルゴリズムを見つけることです見つけたり、既存のクラスタリングアルゴリズム変換するために、そして他の方法が話題を改善するための新機能をタップすることです効果検出。
    別の世論分析タスクを感じる人々の意見、その他の主観的な情報に対する態度にあります。

    8.3.4前処理ページ

    データ収集の結果がそうで、ラベル、テキストメッセージ、画像リンク、CSSタグ、JavaScriptタグ、テキストや画像のリンクとのすべての種類を含む、プレーンテキスト、HTMLとしてページを取得することです。
    トピックは密接にニュース記事を関連する実世界のイベントのいくつかのコレクションです。イベントは、特定の時間と場所の特定の特性、及びその後の結果に関連した必要不可欠な前提条件で起こっています。
    フィルタリング情報のフィルタリングは、有用な情報を残し、オフ捕捉不要部分にユーザのWebコンテンツに基づいて設定され、指定された場所に保存されています。

    8.3.4データマイニング

    Webデータマイニング、データベースマイニング技術が進化している、サンプルの性質は、効果的な特徴量を抽出するために包括的な分析を対象とするために必要とされる、Webユーザーからの情報の解析は、特性値に基づいて有効な情報を必要とします。
    情報マイニングは、主に以下の4つの段階で構成されているWeb:
    1)位置決めウェブ情報源
    2)予め選択されたデータと
    マイニング3)アクティブモード
    検証解析4)モデル

    8.3.6アーカイブ管理

    世論のデータ特性によると、一般的に5つのテーブルに分かれている特性データ要件とシステムのデータベース内のデータの分析の内容と構造を分析し、サイト情報テーブルの各文書情報、被写体情報テーブル、調査結果のテーブルや感情の話題のテーブル結果表の分析。

    8.3.7世論統計

    ネットワーク計測の概念は、Webometricsは、情報通信ネットワークの測定や他の測定方法の使用に関連する問題のすべての研究を含んでいます。
    ホット評価が警告しきい値を、対応するアップ世論行い評価とセットの反応を指し、単語頻度統計や感情の分類は、公共の感情や行動の熱いイベントに基づいてネットワーク世論の評価の二つの主要な手段です。

    8.4世論分析アプリケーション:ネットワーク世論の監視システム

    行うには世論の監視ネットワーク:
    1)は、公共管理機能、効果的な制御とネットワークの状態に依存している、と積極的に音情報データベースシステムを構築します。
    2)同時に、ネットワーク監視のホットニュース、ネットワーク上のイベントや文字については、ケースが深いネット研究であってもよいよう。
    3)、コンピュータ技術とネットワーク技術を最大限に活用深い掘削のための情報ネットワーク世論の監視システム、効率的効果的に世論を導くために関与世論の情報ネットワークの安定性の仕事、注意を払うのすべての種類をマスター。

    8.4.2ネットワーク世論の監視システムを構成します

    情報収集モジュール、テキスト抽出モジュール、テキストクラスタリングモジュール、テキスト分類と評判​​分析モジュールモジュール:システムを監視ネットワーク世論は、次のモジュールに分割することができます。

    世論8.4.3ネットワーク監視システムの役割

    ネットワーク世論の監視システムの主な役割含まれています:
    1)世論のタイムリーかつ包括的なコレクション
    世論、の2)分析
    3)モニタリングの結果は、意思決定のための重要な基礎となります

おすすめ

転載: www.cnblogs.com/wty2419/p/12051309.html