[
自宅サーバーWebRing
┃
前
|ID=54
前後5表示
|
次
┃
乱移動
|
サイト一覧
]
このサイト内
書籍 DVD CD
Google(日本語)
Google(Web全体)
Google(イメージ)
Google(キャッシュ)
Yahoo! JAPAN
goo 英和
goo 和英
goo 国語
goo 新語
サイトマップ
リンク集
ダウンロード
フォーラム
Users Wiki
最新情報
TOP
»
UsersWiki
»
nao-pon
»
blog
» 2006-08-28のソース
|
一覧
検索
最新
ヘルプ
ページへ戻る
履歴
リンク元
印刷
POST SPAM 対策を考える
のソース
UsersWiki
:
nao-pon
/
blog
/
2006-08-28
のソース
差分
を表示
nao-pon/blog/2006-08-28
へ行く。
« Prev
** POST SPAM 対策を考える [#w5112b87] #keyword() RIGHT:&tag(プログラミング); 最近、POST SPAM が%%うざい%%鬱陶しいので、ちょっと対策を考えてみました。 面倒なので、XOOPS全体でPOST時にチェックをかけてみます。 *** HypCommonFunc に関数を追加。 [#h56d27c3] <a>タグの数、BBコードの[URL=]の数、URLの数をカウントします。 汎用関数の get_postspam_avr() で POSTデータ中に含まれる合計を取得できます。 #code(){{{ // POST SPAM Check function PostSpam_Check($post) { static $filters = NULL; if (is_null($filters)) {$filters = HypCommonFunc::PostSpam_filter();} $counts = array(); $counts[0] = $counts[1] = $counts[2] = $counts[3] = 0; foreach($post as $dat) { $tmp = array(); $tmp['a'] = $tmp['bb'] = $tmp['url'] = $tmp['filter'] = 0; if (is_array($dat)) { list($tmp['a'],$tmp['bb'],$tmp['url'],$tmp['filter']) = HypCommonFunc::PostSpam_Check($dat); } else { // <a> タグの個数 $tmp['a'] = count(preg_split("/<a.+?\/a>/i",$dat)) - 1; // [url] タグの個数 $tmp['bb'] = count(preg_split("/\[url=.+?\/url\]/i",$dat)) - 1; // URL の個数 $tmp['url'] = count(preg_split("/(ht|f)tps?:\/\/[^\s]+/i",$dat)) - 1; // フィルター if ($filters) { foreach($filters as $reg => $point) { $counts[3] += (count(preg_split($reg,$dat)) - 1) * $point; //echo $dat."<br>".$reg.": ".$counts[3]."<hr>"; } } } $counts[0] += $tmp['a']; $counts[1] += $tmp['bb']; $counts[2] += $tmp['url']; $counts[3] += $tmp['filter']; } return $counts; } // POST SPAM フィルター function PostSpam_filter($reg="", $point=1) { static $regs = array(); if (empty($reg)) {return $regs;} $regs[$reg] = $point; } // POST SPAM Check 汎用関数 function get_postspam_avr($alink=1,$bb=1,$url=1) { if ($_SERVER['REQUEST_METHOD'] == 'POST') { list($a_p,$bb_p,$url_p,$filter_p) = HypCommonFunc::PostSpam_Check($_POST); return $a_p * $alink + $bb_p * $bb + $url_p * $url + $filter_p; } else { return 0; } } }}} *** XOOPS_ROOT/include/common.php の最後に次の内容を書き加えます。 [#ke28541f] この例では、ゲストは 15ポイント超、ログインユーザーは 30ポイント超で、弾かれます。 #code(){{{ // PostSpam をチェック by nao-pon HypCommonFunc::PostSpam_filter("/((?:ht|f)tps?:\/\/[!~*'();\/?:\@&=+\$,%#\w.-]+).*?<a.+?\\1.+?\/a>.*?\[url=\\1.+?\/url\]/is", 11); if (!is_object($xoopsUser)) { if (HypCommonFunc::get_postspam_avr() > 15) { header("Location: ".XOOPS_URL."/"); exit(); } } else if (!$xoopsUserIsAdmin) { if (HypCommonFunc::get_postspam_avr() > 30) { header("Location: ".XOOPS_URL."/"); exit(); } } }}} ---- しばらく、これで様子を見てみて調子がいいようなら CVS に投入します。 ---- -&areaedit(uid:288,preview:5){おおおおおぉぉぉぉぉぉ!!はじくテキストパターンも簡単に追加できるようになるといいなぁ。でもこのままでも最高!}; -- [[t_miyabi>user/t_miyabi]] &new{2006-08-28 (月) 16:12:15}; -&areaedit(uid:1,preview:5){そうですね。テキストパターンフィルターも必要ですね。ということで上記のコードを修正しました。&br;正規表現のフィルターとその加算ポイントを追加できます。&br;とりあえず追加したフィルターは、&br;HypCommonFunc::PostSpam_filter("/((?:ht|f)tps?:\/\/[!~*'();\/?:\@&=+\$,%#\w.-]+).*?<a.+?\\1.+?\/a>.*?\[url=\\1.+?\/url\]/is", 11);&br;です。}; -- [[nao-pon>user/nao-pon]]&trip("iq8llSWq9g"); &new{2006-08-29 (火) 10:51:32}; #comment(,btn:つっこみ) ----
« Prev
nao-pon/blog/2006-08-28 のバックアップ一覧
nao-pon/blog/2006-08-28 のバックアップソース(No. All)
1: 2006-08-28 (月) 09:11:29
2: 2006-08-29 (火) 01:12:15
3: 2006-08-29 (火) 19:48:36
4: 2006-08-29 (火) 10:51:32
nao-pon
現: 2006-08-29 (火) 10:51:32
nao-pon
ぺージ情報
ぺージ名 :
nao-pon/blog/2006-08-28
ページ別名 :
未設定
ページオーナー :
nao-pon
閲覧可
グループ :
すべての訪問者
ユーザー :
すべての訪問者
編集可
グループ :
なし
ユーザー :
ゲスト
Counter: 393, today: 1, yesterday: 0
メインメニュー
ホーム
価格比較 百貨
UsersWiki
新規ページ作成
最新ページ一覧
全ページ一覧
全コメント一覧
ヘルプ
» 関連ページ
» 記述を見る
» 変更点を見る
» バックアップ一覧
» 添付ファイル一覧
» リンク元一覧
xpwiki
お問い合わせ
ファイルマネージャー
ログイン
ユーザー名:
パスワード:
パスワード紛失
|
新規登録
最近の更新
最新の20件
2023-05-14
nao-pon
/
gmap + gmap_street + gmap_insertmarker
nao-pon
/
googlemaps2
2023-01-20
nao-pon
/
blog
/
ESP8266 を壊してしまいました しかも続けて2回も
2022-09-22
nao-pon
/
blog
/
ESP32 + ESPHome の Bluetooth Proxy で SwitchBot Mater
2022-08-26
nao-pon
/
blog
/
独自ビルドの Tasmota を 12.1.1 へ
2022-08-19
nao-pon
/
blog
/
Zigbee + ZHA のメモ書き
2022-01-17
nao-pon
/
blog
/
HomeAssistant 統合の Tasmota-IRHVAC に貢献
2021-08-03
nao-pon
/
ファイル置き場
/
スペースサワダ
2021-07-01
nao-pon
/
blog
/
HomeAssistant 統合の Tasmota-IRHVAC の不具合修正
2021-06-20
nao-pon
/
blog
/
Tasmota を 9.4.0 から 9.5.0 へアップデート
2021-06-15
nao-pon
/
blog
/
ミンティア[MINTIA] で WiFi 6ボタンスイッチを作った
2021-04-27
PublicBlog
2021-03-17
nao-pon
/
blog
/
SwitchBot 温湿度計を ESP32 でモニタリング
2021-03-13
nao-pon
/
blog
/
東芝エアコンのエントリーモデルもWiFi化
2021-02-23
risoulaser
2021-02-18
nao-pon
/
blog
/
Panasonic (ナショナル) エアコンの 2008 年モデルも WiFi 化
2021-02-15
nao-pon
/
blog
/
Tasmota で HA 端子(JEM-A) 連携
2021-02-07
nao-pon
/
blog
/
Tasmota で三菱エアコンを完全コントロール
2021-01-27
nao-pon
/
blog
/
ラトック RS-WFIREX4 用の HomeAssistant カスタムコンポーネントを作った
2020-12-28
nao-pon
/
blog
/
ESPHome の CCS811 コンポーネントで Baseline 値センサーを追加
オンライン状況
4201 人のユーザが現在オンラインです。 (8 人のユーザが UsersWiki を参照しています。)
登録ユーザ: 0
ゲスト: 4201
もっと...
サイト情報