Zhihui Huayun: 一般的なウェブセキュリティの脆弱性の共有

Zhihui Huayun: 一般的なウェブセキュリティの脆弱性の共有

インターネット時代では、データと情報が急速に変化しており、それに伴い、ネットワークのセキュリティを危険にさらすさまざまなネットワークの脅威、ウイルス、その他の動作も発生します。ネットワークセキュリティはますます注目を集めています。今回の Huayun Data の「Smart Huayun」コラムでは、一般的な Web セキュリティの脆弱性を分析し、デジタル時代のセキュリティ問題について皆様と議論します。

SQLインジェクション

1. SQL インジェクションとは何ですか?

SQL インジェクションは、Web フォーム送信、入力ドメイン名、またはページ要求のクエリ文字列に SQL コマンドを挿入し、最終的にサーバーを騙して悪意のある SQL コマンドを実行させるプロセスです。具体的には、既存のアプリケーションを悪用して、バックエンド データベース エンジンに (悪意のある) SQL コマンドを挿入して実行する機能です。設計者の意図どおりに SQL 文を実行するのではなく、Web フォームに (悪意のある) SQL 文を入力することで、セキュリティ上の脆弱性がある Web サイト上のデータベースを取得することができます。

2. どのように注入しますか?

例: http://test.com/info?id=1

この URL は、データベース内のテーブルから 1 つのデータを返します。プログラムは次のように記述できます。ID は入力変数です。

  1. *から選択 ユーザー ここで、 id='"+id+" ';

上記のように、クエリ文は次のようになります。

  1. *から選択 ユーザー ここで、 id = '1'

id= 1'または'1'='1の場合、クエリは次のようになります。

  1. *から選択 ユーザー  id = '1'または'1'='1'

3. SQLインジェクションの原因

① 送信されたデータはフィルタリングされていない

②SQL文の組み立て

③ 不適切な型の取り扱い

4. SQLインジェクション防御

(1)文字列の長さの検証

指定された長さの範囲内の変数値のみが受け入れられます。 SQL インジェクション スクリプトは、入力変数の長さを必然的に大幅に増加させます。ユーザー名の長さが 8 文字から 20 文字の間などの長さ制限により、それを超えると無効な値と判断されます。

(2)一重引用符、二重「-」、アンダースコア、パーセント記号などのSQLコメント記号をエスケープする

(3)動的SQLアセンブリを使用せず、データのクエリとアクセスにはパラメータ化されたSQLを使用する

コード例:

  1. 文字列 sql = "select id, no from user where id=?" ;
  2. 準備されたステートメント ps
  3. = conn.prepareStatement(sql);
  4. ps.setInt(1, ID);
  5. ps.executeQuery();

(4)フレームワーク防御:mybatis

① # 記号は受信データを文字列として扱い、自動的に受信データに二重引用符が追加されます。

たとえば、user_id= #{id} の場合

渡された値が 111 の場合、SQL に解析された値は where id = "111" になります。

渡された値が 1'=or '1'='1' の場合、解析された SQL は whereid "1'=or '1'='1'" になります。

②$記号はSQL内で直接受信データを生成します。

たとえば、user_id = '${id}' の場合

渡された値が111の場合、SQLに解析された値は、id ='111'になります。

渡された値が 1'=または '1'='1' の場合、解析されたSQLは where _id ='1'or '1'=1' となります。

結論: # 記号は SQL インジェクションを防ぐことができますが、$ 記号は防ぐことができません。 $ 記号は通常、テーブル名などのデータベース オブジェクトを渡すために使用されます。

クロススレッド

1. XSS とは何ですか?

悪意のある HTML コードを Web ページに挿入します。ユーザーがページを閲覧すると、Web ページに埋め込まれた HTML コードが実行され、脅威を実行するという特別な目的が達成されます。

2. XSS分類

(1)永続的XSS(サーバー側に保存され、脅威データとともに脅威の振る舞いが常に存在する)

(2)非持続的XSS(一度限り、現在のページアクセスにのみ影響)

例: ページ出力にパラメータを渡す

パラメータの書き込み:

  1. index ?value=<script>alert(document.cookie)</script>

ページとJSの記述:

  1. <div id="xss"></div> | $('#xss').html(値);

3. XSSの危険性

任意の JS コードを実行します。最も一般的なアプローチは、COOKIE 認証情報を取得することです。その他の方法としては、悪意のある URL にリダイレクトしたり、CSRF の脆弱性を利用してフォームを作成して送信し、現在のユーザーに投稿、削除、さらには送金などの操作を強制したりすることが挙げられます。

4. XSS保護

(1)ユーザーが入力したコンテンツをフィルタリングする。一般的な方法には、'、"、;、<、> のフィルタリングが含まれます。

(2)ユーザーがデータを送信すると、そのデータはエンコードされます。

(3)ページを出力する際に​​、データがエンコードされる。

CSRF

1. CSRF とは何ですか?

偽造リクエスト、サイト上の通常のユーザー操作を偽装する

2. CSRFの原則

3. CSRFの危険性

脅威の当事者はユーザーの ID を盗み、この ID を使用して電子メールやメッセージを送信したり、商品を購入したり、銀行口座を移動したり、ユーザーが実行できるその他の操作を実行できます。

4. CSRFから身を守る方法

(1)HTTPリファラーフィールドを確認する

この方法は基本的な防御です。現在、Referer は書き換えや偽造が可能であり、絶対に安全ではありません。

(2)HTTPにカスタムパラメータ検証を追加

サーバーはトークンを生成してセッションに保存し、トークンはフロントエンドの隠しフィールドに配置され、リクエスト ヘッダーとともに送信されます。 B は A の Web サイトのフロントエンドにアクセスしないとトークンを取得できず、リクエストを検証できないため、防御の目的は達成されます。

URL リダイレクトの脆弱性

1. URL リダイレクトの脆弱性とは何ですか?

ページはプログラム内でリダイレクトされることがよくあります。ログインシステムでは、ユーザーがログイン後に前のページに戻れるように、URL 内のパラメータに基づいてリダイレクトが実行されることがよくあります。

2. URLの例

例: http://www.aa.com/account/login

?from=http://download.aa.com

リダイレクト先のページが現在のサイトのページであるかどうか、または許可されたページアドレスであるかどうかは判断されません。住所が次のように変更された場合:

http://www/aa.com/account/login

?from=http://www.bb.com/

ユーザーがログインすると、www.bb.com にリダイレクトされます。悪質なウェブサイトであれば、ユーザーは被害者となってしまいます。

3. URLでセッションを渡す危険性

ジャンプ先のページの HTTP リクエスト ヘッダーから URL 内のセッション値を取得するのは簡単です。セッション内の検証情報がユーザー クライアント情報にバインドされていない場合、脅威アクターはそれを直接使用して以前のユーザーの ID になることができます。

4. URLリダイレクトの脆弱性保護

(1)特定できるURL:対応するインデックスファイルを設定し、インデックスを通じて対応する特定のURLを見つけてジャンプする

(2)未確定URL:リダイレクト前にURLが検証に合格することを確認するためのルール検証を追加します。

<<:  Huawei Cloudは世界初のコンテナマルチクラウドおよびハイブリッドクラウドソリューションを発表し、コンテナアプリケーションが簡単にクラウドを横断できるようにしました。

>>:  好むと好まざるとにかかわらず、AIクラウド運用はやってくる

推薦する

クラウドコンピューティング導入の4つの段階

過去 60 年間のテクノロジーの採用をざっと見てみると、1 つのサプライヤー、テクノロジー、またはコ...

割れ窓理論は、企業がオンラインマーケティングを行う際に3つの点に注意するよう警告している。

インターネット経済は強力な力を発揮しています。今年のダブル11プロモーションでは、天猫だけで132億...

Baidu 入札でお金を稼ぐのは簡単すぎます。悪意のあるクリックによる減額は明らかです。

以下の内容には写真と証拠があります。注釈付きの説明文を除いて、写真に他の改変はありません。私は自分の...

エッジコンピューティングのユースケースと例トップ10

今後数年間でエッジ コンピューティングへの移行が増加するでしょう。この記事では、高い価値を提供するこ...

Webmaster.com からの毎日のレポート: タオバオは否定的なレビューの削除を否定、QR コード プラットフォームは年末に開始予定

1. タオバオは、ユーザーが否定的なレビューを削除するためにお金を支払うシステムの存在を否定し、関連...

Baiduの変更によりウェブマスターにさらなるチャンスがもたらされる

SEO やウェブマスターのグループでは、友人たちが自分のウェブサイトが再び Baidu にブロックさ...

sharktech: 米国独立サーバー、60G の高防御、無制限のトラフィック、月額 49 ドル - 1Gbps 帯域幅、月額 279 ドル - 10Gbps 帯域幅

SharkTech は、専用サーバーを最大 44% 割引する春のプロモーション プランを発表しました...

シルクスカーフ:2億元の売上の背後にあるマーケティングの洞察

シルクスカーフは、春、秋、冬の女性の着こなしや保温のための主なアクセサリーとして、実は国内外で100...

「コンテンツが王様、外部リンクが王様」というSEOのコンセプトを実戦に基づいて破壊的に分析

1年前に国内の有名なSEO研修機関のオンライン研修に参加した時のことを思い出します。当時私が勤めてい...

アプリプロモーションの真実: iOS 10.3 が正式にリリースされた後に ASO が避けるべき 5 つの落とし穴!

3月28日、AppleはiOS 10.3の正式版をリリースした。 APPプロモーションに携わる方は、...

香港直接 VPS: juhost、40% 割引、月額 2.99 ドル、1G メモリ/1 コア/20g SSD/1T トラフィック/100M 帯域幅

香港の新しい VPS ブランドである Juhost は、主に香港で中国本土に直接接続された 100M...

百度が決済ブランド「百度ウォレット」を立ち上げ、「検索して買う」ワンストップ決済サービスに注力

新浪科技新聞、4月15日午後、百度は本日記者会見を開き、決済事業ブランド「百度ウォレット」を正式に発...

#BlackFriday# 678CDN: 期間限定で50%オフ、アジア最速CDN(高防御を内蔵)、CC防御戦略のカスタマイズをサポート、新規ユーザーには100Gの高防御防御を提供

11月のゴールデンプロモーション月間に入りました。678cdnは「ブラックフライデー」をお届けします...

第1回「中国モノのインターネットデータインフラベストケース選定」の結果が発表されました

IoT 技術の成熟と普及により、今日の世界はすでに Internet of Everything の...

WeChatパブリックアカウントの運用とプロモーションスキル!

WeChatパブリックプラットフォームの運営を例にとると、プラットフォーム運営は外部レイアウト、コン...