Web系や機械学習を勉強中。医療におけるIT活用に興味があります。いうのは誰もが耳にしたことがある有名な攻撃手法だと思いますが、恥ずかしながらその具体的な手法や対策について私はあまり知りませんでしたので、今回調べてまとめてみました。サイトへ悪意あるスクリプトを埋め込むことによってそのサイトの権限でスクリプトを実行する攻撃です。よって制限されていますが、同一オリジンからのアクセスに偽装することでその制限を回避できるのです。(実際には偽装とはいえないかもしれません。そのデータは確かに同一オリジンから送信されているのですからブラウザ側ではどうしようもありません)インジェクションの方法では、どのようにして他のサイトへスクリプトを埋め込むのでしょうか。要するに、与えた文字列が相手のサーバーからそのまま帰ってくるようにすればいいわけですから、最も典型的なのはフォームへのインジェクションでしょう。スクリプトを埋め込めば、レスポンスにはそのスクリプトが含まれてしまい、同一オリジンとして実行されてしまうからです。通常、フォームに自分で攻撃用のスクリプトを入れることなんてありませんから、あまり問題ないように感じられます。パラメータなどに含めたらどうでしょうか。パラメータに含めますので、適切なエスケープがされていなければ、そこに悪意のあるスクリプトを埋め込むことも可能です。短縮サービスなどを利用すればよりわかりにくくすることが出来るでしょう。XSS)とも呼ばれます。単純なフォームではなく掲示板のような場合はより深刻です。悪意のあるスクリプトが書き込まれれば、永続的にそのサイトに埋め込まれてしまい、訪問者全員に影響が出てしまうからです。何が出来るのかSOP(同一生成元ポリシー)を無視できるということです。これがどれだけ危険かは明らかです。使えばいいです)などなど多岐にわたります。以下のようなことはできません。世界におけるエスケープは、「\」ではなく「&」を使って別な文字列に置き換えます。防ぐためには以下の文字をエスケープするべきです。タグを阻止するためですね。属性値に出力する際の対策です。関わってきませんが、置き換えてあげないとユーザの入力した「&」が表示されなくなるので必要です。記事一覧へコメントフォームは設置していませんので、ご意見・ご感想などはTwitter(@cosnomi)などへお願いします。