• ベストアンサー

掲示板で、テキストフィールドにHTMLタグを書かれると・・・

掲示板で、テキストフィールドにHTMLタグを書かれると、掲示板の形が壊れてしまいます・・・ 誰か、対策方法を教えて頂けませんか?? 今、JSPで作成しています。

質問者が選んだベストアンサー

  • ベストアンサー
  • hidebu-
  • ベストアンサー率53% (45/84)
回答No.4

#2のおっしゃるように予約文字をエスケープ文字に変換するメソッドを作成すればいいと思います。 具体的にいうと以下のメソッドを通すとHTMLタグを打ち込まれてもタグと認識しなくなります /****************************************/ public String strConvertEscape(String _strValue){ StringBuffer strResultValue = new StringBuffer(); for(int i=0;i<_strValue.length();i++){ switch(_strValue.charAt(i)){ case '&': strResultValue.append("&amp;"); break; case '<': strResultValue.append("&lt;"); break; case '>': strResultValue.append("&gt;"); break; default: strResultValue.append(_strValue.charAt(i)); break; } } return strResultValue.toString(); } /****************************************/ 即席でかいたのでコンパイルエラーでたらすいません(笑) がんばって掲示板を完成させてください^^;

その他の回答 (3)

  • kusukusu
  • ベストアンサー率38% (141/363)
回答No.3

タグ何でもOKは非常にまずいです。 サニタイジングしないと、クロスサイトスクリプティング攻撃の踏み台になりますよ。 No1,2の方のやり方で早く修正することをお奨めします。

  • nitscape
  • ベストアンサー率30% (275/909)
回答No.2

POSTされたデータに含まれる「<」を「&lt;」、「>」を「&gt;」に変換してはどうでしょう?

  • timber
  • ベストアンサー率29% (218/739)
回答No.1

テキストフィールドの書き込まれた文字をhtmlに組み込む前にチェックを行い タグ(「<」から「>」まで)を削除するようにすれば問題ないと思いますが。 もちろん書き込み画面に「タグ使用禁止」を明示して。

関連するQ&A