人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPで入力フォームのテキストエリアを使用して
フリーで入力させるのですが
その際に、HTMLのタグなどで
<B>タグや<A>タグだけを許可して
それ以外は、許可せず処理をしたいのですが
どのように行えばいいでしょうか??

タグは無い場合はそのまま投稿できるようしたいです。

javascriptでも出来るのであれば教えて下さい。


●質問者: hopefully
●カテゴリ:就職・転職 ウェブ制作
✍キーワード:HTML JavaScript PHP エリア タグ
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● tezcello
●60ポイント

HTML, PHP のタグを取り除くという関数 strip_tags() というものがあります。

http://jp.php.net/manual/ja/function.strip-tags.php


ですが、不完全なタグが与えられた場合、予定外の動作をする可能性がある(不完全なタグを与えたせいなので当然と言えば当然ですが)ので、注意が必要と注記があります。


はてな表記のような仕組みにするという手もあります。

◎質問者からの返答

これはいいですね。

さらにHTMLタグの構文チェックはPHPで出来るのでしょうか?

aタグで始まっているればaタグで閉じてないとエラーにするとか。


2 ● ymlab
●10ポイント

まず、セキュリティの対策をしましょう。

タグだけ許可する方法[XSS対策]

http://phpspot.org/blog/archives/2007/03/htmlxssphphtml.html

その後は、正規表現を使うなどでよいのではないでしょうか。

それが嫌なら、

ksesというライブラリを使う手もあります。

http://sourceforge.net/projects/kses

私のWeblogで、恐縮ですが、

http://d.hatena.ne.jp/ymlab/searchdiary?word=%c6%c3%c4%ea%a4%ce%...

のソースを参考にしてみてください。


って、今コメントをみたら、セキュリティについて言及がありましたね。^^;

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ