質問: 掲示板へのいたずら書き込み防止 掲示板を運営しています。 以下のような書き込み 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がついていれば防止できるはずなのですが。 具体的にどう対処するのがよろしいでしょうか?
回答: 前に別件で答えた内容と同じものになりますが、俺は 以下のようにしています。 文字コードはutf8で統一してる前提です。 if (!preg_match("/[^\x01-\x7e]/" , mb_convert_encoding($body , "sjis" , "utf8"))) { /* 無効 */ } 全角文字が入っていなければ無効にするだけです。 ただ、ぶっちゃけ どこかから拾ってきたコードで、自分でもよく分かってはいません。 ですので、リンクとか入っていなくても無効になってしまいますし、 逆に「おぼろげっしゃー」とか無意味な日本語でも書き込みは出来てしまいます。 ・参考 http://hodade.adam.ne.jp/seiki/page.php?s_zenkaku