HTML内のJavaScriptが書けない問題と対策
前回、「人力検索はてな」で、
プログラムに関する質問に答えるときに、
スーパーpre記法などを使っても、どうしてもHTMLコメントや
HTML内のJavaScriptが消えてしまう問題について言及しました。
これの原因ですが、はてなの回答の場合、
書き込み内容に直接タグが書けるようになっており
<script language="javascript">〜</script>
をそのまま書けてしまうと、任意のJavaScriptを実行可能になってしまうようで、
そのコードによって他のサイトを攻撃することができる、つまり脆弱性に
があるために消去されているようです。
その解決策としては、要は
「<」と「>」を、
「<」「>」の文字参照で書けばよいのです。
そうすれば、実行可能なスクリプトではなくなるので、
表示が可能になります。
はてなダイアリーの場合は、「>|html|〜||<」
でこの問題は回避できます。
<script language="javascript">; <!-- function myJavaScript(){ //任意のJavaScript alert(1); } --> </script>