質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

Q&A

解決済

1回答

9908閲覧

HTMLタグインジェクションとXSSの具体的対応方法は同じ?

super1234

総合スコア52

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

0グッド

0クリップ

投稿2017/07/05 01:18

LINUXサーバにてjavaのspring利用sql server接続のウェブアプリにて、HTMLタグインジェクションとXSS(クロスサイトスクリプティング)の脆弱性の対応をする際に、要はjavascriptのscriptタグなどが実行されないようにするために「」や<>や記号などをエスケープ処理すればいいだけの話と認識しているのですがいいものなのでしょうか。

特殊文字(!!"#$%&'()}{|*+<>?_などなどがあればそれを正規表現で存在確認してあればエラーにするか、HTMLエンコード処理などすればふたつの脆弱性は防げるということで間違えないでしょうか。

それともHTMLタグインジェクションとXSSは症状や攻撃される個所は違いますが(いじられる場所)対応は同じと考えてよろしいでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

HTMLタグインジェクション

まず、「HTMLタグインジェクション」でGoogle検索してみて下さい。

「HTMLタグインジェクション」ではなく、「HTMLインジェクション」である事が分かります。

HTMLインジェクションとXSS

先述のGoogle検索で下記ページがHITし、次のように書かれています。

ここで、よく耳にする**クロスサイトスクリプティング(以下XSS)**という言葉との関連について確認しておきたい。XSSとは、HTMLインジェクション脆弱性を利用した攻撃手法の一形態である。攻撃者に用意されたスクリプトが、攻撃者のサイトを踏んだユーザーから目的のサイトへ送られるために、スクリプトがサイトをまたがって(クロスして)実行されるという意味でその名が付いている。しかし、スクリプトがサイトをまたがるかどうかは、この脆弱性の性質とは直接関係がない。また、スクリプトがサイトをまたがない形のスクリプトインジェクションや、スクリプトを使わないフレームインジェクションなどは、XSSの定義からは外れてしまう。よって、ここではこの種の脆弱性を総称して、HTMLインジェクションという呼び方をする(図2)。

というわけで、HTMLインジェクションとXSSは別概念です。
HTMLインジェクションの方が広義といえます(下記に訂正文有)。

(2017/07/05 11:41追記)
CWE-79ではインジェクションする言語に Flash, ActiveX を含んでいました。「HTMLインジェクションがXSSの広義」は誤りでしたので訂正致します。

※繰り返しになりますが、「分からない単語でWeb検索する」は調査の基本なので、覚えておくと良いと思います。

対策

IPAが資料を用意しています。
次のページの [エコーバック対策] > [スクリプト注入] を参照して下さい。

Re: super1234 さん

投稿2017/07/05 02:26

編集2017/07/05 04:35
think49

総合スコア18156

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

super1234

2017/07/05 04:15

ご指摘頂き感謝します。過程を示さなかったので申し訳ないです。個人サイトの脆弱性検査でHTMLタグインジェクションの危険度があるとだけ言われ、自身で調べたところ確かにGoogle検索ではタグという文字が抜けているものが多数ひっかかりました。そこでもしかしたら専門的な用語でこちらteratailの方に聞けば回答が得られるかもと思い質問した次第です。その機関に有料になってしまいますが、もう少し調べてわからなかったら聞いてみようと思います。ありがとうございました。もう少しだけこちら完結せずにそのままにさせて下さい。
think49

2017/07/05 04:40

> 個人サイトの脆弱性検査でHTMLタグインジェクションの危険度があるとだけ言われ、自身で調べたところ確かにGoogle検索ではタグという文字が抜けているものが多数ひっかかりました。 そこで理解した内容を咀嚼して、質問を更に一歩深い部分に進めると良かったと思います。 「難しそうだから詳しい人に聞いた方が良い」と感じたのかもしれませんが、回答を貰っても自分で調べないと本当の意味では理解できないと思います。 また、目的が自サイトの脆弱性対策でその個人サイトで指摘された内容を元にしているのであれば、当該個人サイトのURLを開示すると良かったと思います。 その「個人サイト」が何をもってHTMLインジェクションと判断しているのか、はその個人サイトを読んでみなければ分かりません。 個人的には、脆弱性対策としては個人サイトを参照するよりもIPAを参照した方が確実だとは思います。 親記事にIPAのサイトについて追記しました。
super1234

2017/07/05 04:52

サイト非常に参考になりました。確かにそうですね。もう少し掘り下げてみます。具体的質問またもしありましたらご助言頂けると幸いです。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問