トップページ > JavaScriptリファレンス > location.hash

★JavaScriptリファレンス

location.hash …… 現在ページURLのアンカーを取得する
Internet Explorer3Internet Explorer4Internet Explorer5Internet Explorer5-macInternet Explorer6 Netscape3Netscape4Netscape6Netscape7Netscape8

locationオブジェクトのhashプロパティは、現在ページURLのアンカーを取得します。

■使用例

HTMLソース

<script type="text/javascript" language="javascript">
<!--
document.write (location.hash);
// -->
</script>
↓↓↓

ブラウザ上の表示

※このページに「http://www.htmq.com/js/location_hash.shtml#aaa」というURLでアクセスすれば、 この欄には「#aaa」と表示されるはずですが、安全性への配慮のためブラウザ上の表示は省略します。

※以下に、安全性への配慮について説明します。

JavaScriptのlocation.hashは、 使い方次第ではクロスサイトスクリプティング(XSS)脆弱性 を発生させてしまう場合があるので注意が必要です。

例えば、上記使用例のHTMLソースをそのままソース内に記述した場合、 URL末尾の#以下にHTMLタグなどを含んだ文字列を記述されてしまうと、 その文字列がそのままコードとして取得され、自分のウェブページ上で実行されてしまうかもしれません。

具体的には、 「http://www.htmq.com/js/location_hash.shtml#aaa」 というURLでアクセスすると、上記使用例のブラウザ上の表示は「#aaa」となりますが、 「http://www.htmq.com/js/location_hash.shtml#<s>」 というURLでアクセスすると、ブラウザ上の表示は「#」の部分のみとなり、 「<s>」の部分はそのままHTMLタグとして認識されて、ウェブページ内でコードとして実行されます。

つまり、自分自身は悪意あるコードを含むウェブページを制作していなくても、 安全性への配慮の無いままうっかりとlocation.hashを使っているだけで、 自分のウェブページを悪意あるコードの実行環境にされてしまう可能性があるということです。

この問題を回避するには、location.hashで取得した文字列をそのまま利用するのではなく、 < > " ' & などをエスケープしてから利用するなどの対策をしておく必要があります。

▲ページ先頭へ
トップページ > JavaScriptリファレンス > location.hash
PR
MuuMuu Domain!
ドメイン取るならお名前.com
さくらのレンタルサーバ
ロリポップ!レンタルサーバー
HTMLクイックリファレンスについて
© HTMQ