dポイントプレゼントキャンペーン実施中!

掲示板を運営しています。

以下のような書き込み
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がついていれば防止できるはずなのですが。

具体的にどう対処するのがよろしいでしょうか?

A 回答 (2件)

前に別件で答えた内容と同じものになりますが、俺は 以下のようにしています。


文字コードはUTF8で統一してる前提です。

if (!preg_match("/[^\x01-\x7E]/" , mb_convert_encoding($Body , "SJIS" , "UTF8"))) { /* 無効 */ }

全角文字が入っていなければ無効にするだけです。
ただ、ぶっちゃけ どこかから拾ってきたコードで、自分でもよく分かってはいません。
ですので、リンクとか入っていなくても無効になってしまいますし、
逆に「おぼろげっしゃー」とか無意味な日本語でも書き込みは出来てしまいます。

・参考
http://hodade.adam.ne.jp/seiki/page.php?s_zenkaku
    • good
    • 0

私の場合、


(1)jpドメイン以外をはじく。
(2)プロクシ通している場合ははじく。
(3)名前解決できない場合ははじく。
(4)URL欄に書き込みがある場合ははじく。
とすることで、自動スパム書き込みはほぼなくなりました。

人間が書き込んでいる場合は相手も柔軟に対応してくるので、決定打はなく、気がついたら消すという対処が最も簡単だと思います。

あと、私も"http://"が本文に入っていたらはじくようにしていましたが、相手は"ttp://~"とかの記述をしてくるようになったので、"ttp://","tp://","p://","://","//"をすべてはじくようにしたら、エロサイトの宣伝のはずなのにどこにもURLが書いてないという変な書き込みがされるようになりました。(^_^;
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!