XSS (Cross Site Scripting) 略称はCSSになりますがCSS(スタイルシート)と名称が一緒の ためにXSSと表記されています。 いわゆるWebページに悪意のあるコードを埋め込むことの総称です。
普通はサーバーサイドでRubyやPHPなどの言語でHTML(CSSやJSなど)の出力が、 外部から制御できるセキュリティーホールがあることが問題です。
XSSはフロントエンドでも対策が必要なことが多く、 信頼のないサービスなどから読み込むJSONやXMLなどをAjaxで取得する場合にもちろん注意が必要です。
特にjQueryを利用していても防げる問題ではないので、問題になる箇所分かりづらく発見しづらい事が特徴です。
<h2>画像ギャラリー</h2>
<div class="test"></div>
<script>
// 悪意のあるコード
var evil = '320/240" onload="$(\'h2\').text(\'乗っ取り成功\');';
// 画像サイズを任意に指定するつもりのコードが悪意のあるコードによって埋め込まれる
$(".test").append('<img src="http://placekitten.com/g/' + evil + '" alt="">');
</script>
上記の場合には、画像サイズを指定する変数 evil
数値の後の " ダブルクォートを置くことで、
スクリプトの埋め込みが可能にります。
<img src="http://placekitten.com/g/320/240" alt="">
が img要素に onload が埋め込まれたHTMLに改変されてしまいました。
<img src="http://placekitten.com/g/320/240" onload="$('h2').text('乗っ取り成功');" alt="">
このようなXSSは、仮に見つかった場合にはクッキーの情報が盗まれるなどの被害が発生します。
気をつけよう。XSS。