1
/
5

クロスサイトスクリプティングとSQLインジェクションってなに?

こんにちは!人事総務部の西野です。

今回は、ECサイト運営者が知っておきたいセキュリティ対策!ということで
クロスサイトスクリプティング(XSS)とSQLインジェクションについて解説していきます。

ぜひ最後までご覧ください^^

サーバーサイドエンジニア
最先端の街でワクワクしながら働こう!サーバーサイドエンジニアWanted!
■完全自社内開発という強み! RefneはEC-CUBEを利用したECサイトの制作がメインの会社です。 ECサイト開発において国内シェアNo.1の【EC-CUBE】プラチナパートナーや【Shopify】エキスパートパートナーである当社。さらに、話題の動画コンテンツ【Firework】とパートナーシップを締結し、CEOの大塚個人でFirework Starsというアンバサダーにも就任しています。 それらを強みに、大手上場企業から中小企業までエンドユーザーとの直取引が9割以上のRefine。確かな実績のもと、大手企業やアーティストなど大規模な案件を完全自社内で手掛けています。 上場も視野に入れたとても勢いのあるベンチャー企業です。 ≪事業内容≫ ●ECサイトの企画・制作 ●ECシステム開発 ●ECコンサルティング ●D2Cブランド アパレル・食品の企画・開発・運営 ●SNSコンサルティング ●WEBサイトの企画・制作 ●WEBシステム開発・AWSサーバ運用支援 ≪実績≫ ●国内シェアNo.1(※)「EC-CUBE」のプラチナパートナー ●shopify(ショッピファイ)のエキスパートパートナー ●Fireworkの公式アンバサダー ●SNSエキスパート上級を取得 https://www.re-fine.jp/works
株式会社Refine

クロスサイトスクリプティング(XSS)とは?

クロスサイトスクリプティング(XSS)とは、Webアプリケーションの脆弱性を利用して行われるサイバー攻撃の1つです。
IPA(情報処理推進機構)が公開した資料によると、2020年7月~9月に届出された脆弱性のうち、約58%がこのクロスサイトスクリプティングであるとされており、近年国内外でも多く報告されています。
専門的な知識があれば、簡単に実行できてしまう攻撃とされており、ECサイトの運営者は対策が必要です。

クロスサイトスクリプティング攻撃の仕組み

まず攻撃者は、脆弱性のあるWebサイトを見つけ、悪質なサイトへ誘導する罠(脆弱性のあるサイトへ誘導するスクリプトを含んだリンク)を仕掛けます。
ユーザーが悪質なサイトのリンクをクリックし、そこから見たいサイトを訪れることで、仕組まれていた罠が発動して攻撃が始まります。
攻撃の種類には、マルチウェア感染や個人情報漏洩、フィッシング詐欺などといった被害が挙げられています。
このように、サイトをまたいでスクリプトが実行されるので「クロスサイト」という名称になっています。

クロスサイトスクリプティング攻撃の対策

個人情報の漏洩など、甚大な被害を及ぼすクロスサイトスクリプティング。
Webサイト運営者とユーザー、双方でのセキュリティ対策が必要です。

<ユーザー側に求められる対策>

まずは、使用しているブラウザやアプリを常に最新の状態にアップデートしておくことです。古いバージョンのままだと、何らかの脆弱性を抱えている場合があり、セキュリティも万全とは言えません。
他にも、不正なスクリプトを検出してくれる個人ユーザー向けのウイルス対策ソフトなどもあるので、それらを導入して不正なアクセスをブロックしましょう。

<Webサイト運営側に求められる対策>

生年月日の入力フォームのように、特定の範囲の数値しか入力できないようにすることで、スクリプトが入り込む隙をなくすことができます。このように、特定の文字以外の入力を受け付けない設定のことを、バリデーション処理といいます。
また、入力する文字数を制限することで、長いコードの入力も防ぎ、攻撃をある程度抑えることができます。バリデーション処理を行う際は、ブラウザ側で設定を行うとユーザーがその機能を無効化できてしまうので、必ずサーバー側で処理を行う必要があります。

SQLインジェクションとは?

SQLインジェクションとは、アプリケーションの脆弱性を利用して行われるサイバー攻撃の1つです。
そもそも「SQL」とは、データベースを操作するための言語で、データの更新や追加・ユーザー権限の付与などをする際に使用されます。
アプリケーションの脆弱性により、本来の意図ではない不当な「SQL」が作成さることで、データを不正に操作されてしまいます。

SQLインジェクション攻撃の仕組み

まず、攻撃者はWebアプリケーションサーバー内で、入力フォームからSQL文を含む文字列を入力します。そこで入力されたものはサーバーに渡され、脆弱性などを悪用して不正なSQLが実行されることで攻撃が始まります。
攻撃の種類には、データベース内のデータの消去や改ざんなどが挙げられます。

SQLインジェクション攻撃の原因

Webアプロケーション自体が不正アクセスに気付けず、外部から侵入してきたSQL文が実行されてしまうということが、根本的な原因です。
本来であれば、Webアプリケーションに不正なアクセスがあった場合、正しい処理が実行されるます。
しかし脆弱性がある場合、SQL文を誤った命令文として認識することで適切な処理が行われず、データベースの悪質な操作が可能になってしまいます。

SQLインジェクション攻撃の対策

根本的な対策として、安全なWebサイト・Webアプリケーションを開発することが挙げられます。あらかじめ設計や製造段階からセキュリティを考慮し、SQLインジェクションの脆弱性が存在しないサイト等を制作することで対策が可能です。
また、SQLの構文が変更されることが原因なので、ユーザーから想定外の情報が入力されてもそのまま処理せず、正しい処理を実施することが重要となります。

まとめ

クロスサイトスクリプティング(XSS)は、脆弱性のあるサイトを利用し、個人情報漏洩やフィッシング詐欺などを目的としています。
一方、SQLインジェクションは、不正なコードを作成することでデータの消去や改ざんなど、データベースを攻撃することが目的です。
目的は違いますが、いずれにせよECサイト運営者のセキュリティ対策が求められています。
それぞれの特徴をよく理解し、未然に防いでいきましょう。

株式会社Refine's job postings

Weekly ranking

Show other rankings
Like Mao Nishino's Story
Let Mao Nishino's company know you're interested in their content