クロスサイトスクリプティング対策:HTML内で利用する文字列をエスケープする方法(いろんな言語)

1 min読了の目安(約900字TECH技術記事

クロスサイトスクリプティング対策のためにHTMLにする文字列をエスケープする方法
個人的に使いそうな言語だけ記載しています。

PHP

htmlspecialcharsという関数が用意されてる。

参照:https://www.php.net/manual/ja/function.htmlspecialchars.php

Javascript

下記のようなコードで関数を用意しておくと良い様子。

function escapeHtml(text) {
  var map = {
    '&': '&',
    '<': '&lt;',
    '>': '&gt;',
    '"': '&quot;',
    "'": '&#039;'
  }; 
  return text.replace(/[&<>"']/g, function(m) { return map[m]; });
}

引用:https://stackoverflow.com/questions/1787322/htmlspecialchars-equivalent-in-javascript

Python

cgiというモジュールにescapeという関数が用意されている。

import cgi
cgi.escape('<this & that>')

引用:https://stackoverflow.com/questions/20918146/how-to-do-html-escaping-in-python

Go

学習中なので調べてみました。
htmlパッケージにEscapeStringが用意されている様子

unescaped := `<script>alert(123);</script>`
escaped := html.EscapeString(unescaped)

引用:https://stackoverflow.com/questions/38065765/how-to-escape-the-html-using-golang