×
サイバー攻撃について

代表例は次のとおりです。

location.href
location.search
location.hash
document.referrer
window.name
postMessageのevent.data
WebSocketの受信メッセージ
localStorage
sessionStorage
APIレスポンス
Cookie
データベース
HTTPヘッダー

Sourceから取得しただけでは、必ずしもXSSになりません。

その値が危険なSinkへ到達すると問題になります。


Sinkとは

Sinkは、文字列をHTML、JavaScript、URLなどとして解釈する可能性がある処理です。

代表例は次のとおりです。

element.innerHTML = value;
element.outerHTML = value;
element.insertAdjacentHTML("beforeend", value);
document.write(value);
eval(value);
new Function(value);
iframe.srcdoc = value;

次のコードは危険です。