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

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

新規登録して質問してみよう
ただいま回答率
85.35%
セキュリティー

このタグは、コンピューターシステムの安全性やデータの機密性に関連したトピックの為に使われます。

JavaScript

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

XSS

XSS【クロスサイトスクリプティング】は、 ソフトウェアのセキュリティホールの一つで、Webサイトに脆弱性が あることからその脆弱性を利用し攻撃する手法です。 主に、入力フォームなどから悪意あるスクリプトを挿入し 該当ページを閲覧したブラウザ上でそのスクリプトを実行します。

Q&A

解決済

2回答

1845閲覧

CodePenなどのオンラインエディタにおけるXSS対策

tsuyo_244

総合スコア219

セキュリティー

このタグは、コンピューターシステムの安全性やデータの機密性に関連したトピックの為に使われます。

JavaScript

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

XSS

XSS【クロスサイトスクリプティング】は、 ソフトウェアのセキュリティホールの一つで、Webサイトに脆弱性が あることからその脆弱性を利用し攻撃する手法です。 主に、入力フォームなどから悪意あるスクリプトを挿入し 該当ページを閲覧したブラウザ上でそのスクリプトを実行します。

0グッド

0クリップ

投稿2020/09/17 04:07

CodePenのようなユーザが入力したソースコードをブラウザ上で実行できるサービスがありますが、そのようなサイトでのXSS対策について知りたいです。

一般的にはユーザからの入力内容はサーバ側でサニタイズ処理を行って、悪意のあるスクリプトの記述などが実行されないようにされているかと思うのですが、上記のようにユーザの入力したスクリプトをそのままブラウザで実行するようなサービスではどのように対策をしているのでしょうか?

例えばCodePenのあるユーザが悪意のあるスクリプト(JavaScript)を記載したページを他ユーザが閲覧した時に、そのスクリプトが実行されてしまうというリスクはないものなのでしょうか?

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

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

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

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

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

m.ts10806

2020/09/17 04:26

同じような質問を過去に見たことがあるような気がします。おそらく今年の話。探してみてください。
tsuyo_244

2020/09/17 06:07

ありがとうございます!探してみたのですがこちらでm.ts10806さん回答されてますね。 https://teratail.com/questions/287331 確かにscriptやstyleタグをはじくようにすることでHTMLの入力にはある程度は防止できるのかなと思いました。
guest

回答2

0

例えばCodePenのあるユーザが悪意のあるスクリプト(JavaScript)を記載したページを他ユーザが閲覧した時に、そのスクリプトが実行されてしまうというリスクはないものなのでしょうか?

はい、あります。

投稿2020/09/17 05:17

maisumakun

総合スコア146018

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

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

tsuyo_244

2020/09/17 06:10

なるほど...これは結構衝撃的でした。。 ちょっと利用は控えたほうがよいのかもしれませんね。。
kyoya0819

2020/09/17 06:19

逆に、これらを下手に無効化すると不便なのでしょうがないです。 「利用は控えた方が良い」というのは、理由にはよりますが、そこまで神経質になる必要はないと思います。
guest

0

ベストアンサー

対策はいくつかあります。

  1. 単に許容する

 「そういうものだ」ということで何もしないということですね。

  1. JavaScriptなどは取り除く

 JavaScript等を取り除くライブラリを用いて「安全に」します。しかし、元々JavaScriptを記述したい場合には使えません
3. ユーザーごとにサブドメインを分ける
XSSはオリジン単位で影響を受けるので、ホスト名かポート番号をユーザー毎に変えれば、XSSの影響は他に波及しなくなります。ポート番号で分けるのはリソース的な負担が大きいので、ユーザー毎にサブドメインを変えることによって、影響が互いにでないようにします。この方法は広く用いられています。

投稿2020/09/17 08:55

ockeghem

総合スコア11705

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

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

tsuyo_244

2020/09/17 11:27

なるほど、ホスト名やポート番号で対応するやり方もあるのですね。 勉強になりました!ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問