JavaScriptの脆弱性(XSS)

XSSとは

XSS(クロスサイトスクリプティング)とは、攻撃者が送り込んだ悪意のあるコードをそのページを閲覧した不特定多数のユーザーに、スクリプトとして実行させる可能性があることを指す。

JavaScriptの例としては、innerHTMLがある。

<form>
  <input id="input" type="text" />
  <button id="button" type="button">Click</button>
</form>
<p id="result"></p>

<script>
  const btn = document.querySelector("#button");
  const input = document.querySelector("#input");
  const result = document.querySelector("#result");

  button.addEventListener('click', () => {
    resule.innerHTML = input.value;
  })
</script>

以下の文字列を入力しボタンをクリックするとalertが表示されてしまう。

<div onclick="alert('攻撃するぞ!!!')">hogehoge</div>

対処方法はinnerHTMLを使用せず、textContentを使用する。

参考サイト