- ベストアンサー
掲示板へのいたずら書き込み防止
掲示板を運営しています。 以下のような書き込み 4O49uW ilklnpcutjrh, [url=http://nuukzuul.com/]npuyeu[/url], [link=http://xtpvyyu.com/]xtcqvu[/link], http://qxzlmooo.com/ をされます。 防止のために以下のようなスクリプトをつけました。 if (preg_match('/^(http|HTTP|ftp)(s|S)?:\/\/+[A-Za-z0-9]+\.[A-Za-z0-9]/',$data["msg"])) { throw(new Exception("適切な投稿をお願いします")); } httpがついていれば防止できるはずなのですが。 具体的にどう対処するのがよろしいでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
前に別件で答えた内容と同じものになりますが、俺は 以下のようにしています。 文字コードはUTF8で統一してる前提です。 if (!preg_match("/[^\x01-\x7E]/" , mb_convert_encoding($Body , "SJIS" , "UTF8"))) { /* 無効 */ } 全角文字が入っていなければ無効にするだけです。 ただ、ぶっちゃけ どこかから拾ってきたコードで、自分でもよく分かってはいません。 ですので、リンクとか入っていなくても無効になってしまいますし、 逆に「おぼろげっしゃー」とか無意味な日本語でも書き込みは出来てしまいます。 ・参考 http://hodade.adam.ne.jp/seiki/page.php?s_zenkaku
その他の回答 (1)
- sknbsknb2
- ベストアンサー率38% (1158/3030)
私の場合、 (1)jpドメイン以外をはじく。 (2)プロクシ通している場合ははじく。 (3)名前解決できない場合ははじく。 (4)URL欄に書き込みがある場合ははじく。 とすることで、自動スパム書き込みはほぼなくなりました。 人間が書き込んでいる場合は相手も柔軟に対応してくるので、決定打はなく、気がついたら消すという対処が最も簡単だと思います。 あと、私も"http://"が本文に入っていたらはじくようにしていましたが、相手は"ttp://~"とかの記述をしてくるようになったので、"ttp://","tp://","p://","://","//"をすべてはじくようにしたら、エロサイトの宣伝のはずなのにどこにもURLが書いてないという変な書き込みがされるようになりました。(^_^;