Throws SPAM Away - Version 2.1

Version Description

IP192.168.1.0/24IP 192.168.0.1,192.168.1.0/24,69.208.0.0/16 [192.168.0.1][192.168.1.0 192.168.1.255][69.208.0.0 69.208.255.255]IP

Download this release

Release Info

Developer tsato
Plugin Icon wp plugin Throws SPAM Away
Version 2.1
Comparing to
See all releases

Code changes from version 2.0 to 2.1

Files changed (2) hide show
  1. readme.txt +21 -16
  2. throws_spam_away.php +33 -6
readme.txt CHANGED
@@ -3,8 +3,8 @@ Contributors: taman777
3
  Donate link: http://gti.jp/
4
  Tags: comments, spam
5
  Requires at least: 3.1
6
- Tested up to: 3.4.2
7
- Stable tag: 2.0
8
 
9
  コメントに日本語が使用されていないものや任意のIPアドレスからの投稿を無視するプラグイン
10
 
@@ -23,20 +23,24 @@ Stable tag: 2.0
23
  日本語が一切入っていないコメントでも「NGキーワード」だけ設定したい場合を想定し
24
  日本語が入っていないと許可しない設定を「オン・オフ」出来るようになっています。
25
  以前にスパムとしてチェックした投稿のIPアドレス及び、任意のIPアドレスでの制御も出来るようになっています。
 
 
 
26
 
 
27
 
28
- バージョン1.5では「トラックバック」に対しても同様の規制を入れられるようになりました。
29
- トラックバック記事の内容に日本語を含まないものを無視します。
30
- 加えて、トラックバック記事内にこちらのサイトのURLが含まれない場合、日本語が含まれていても無視するかどうかの設定も出来るようにしました。
31
 
32
- バージョン1.6にてNGキーワードとは逆にコレが入っていないとダメという「必須キーワード」の設定が出来るようにしました。
33
- 日本語を入れれば良いため通ってしまいやすい「中国語」への配慮です。「が」や「の」や「は」など、日本語文章が成り立つ上で必ず使用するであろう「ひらがな」を入れることで効力が発揮されると思います。
 
34
 
35
- バージョン1.7で、元の画面に戻ってくる際の挙動を修正しました。
36
- エラー画面表示の時間を「0」に設定していた場合はエラー画面を一切介さずリダイレクトするようにしました。
37
- 0以上の場合の挙動は以前と変わらずJavaScriptで時間になったら戻ってきます。
38
 
39
- バージョン2.0で、WordPressのcommentsテーブルを検索し「spam」扱いとなったコメントのIPを収集しそのIPからの投稿を無視出来る機能と任意のIPアドレスからの投稿を無視出来る機能をつけました。
 
 
40
 
41
 
42
  制作:佐藤 毅(さとう たけし) <a href="http://gti.jp/" target="_blank">博多 南福岡 ホームページ制作</a> 株式会社ジーティーアイ代表
@@ -57,15 +61,16 @@ e.g.
57
  2. Activate the plugin through the 'Plugins' menu in WordPress
58
 
59
  == Frequently Asked Questions ==
60
-
61
- = A question that someone might have =
62
-
63
- = What about foo bar? =
64
-
65
 
66
  == Screenshots ==
67
 
68
  == Changelog ==
 
 
 
 
 
69
  = 2.0 =
70
  下記の機能を追加しました。
71
  ・コメント投稿者のIPアドレスが以前スパム扱いとなったものと同じIPアドレスからの投稿であれば無視するようにする機能
3
  Donate link: http://gti.jp/
4
  Tags: comments, spam
5
  Requires at least: 3.1
6
+ Tested up to: 3.5.1
7
+ Stable tag: 2.1
8
 
9
  コメントに日本語が使用されていないものや任意のIPアドレスからの投稿を無視するプラグイン
10
 
23
  日本語が一切入っていないコメントでも「NGキーワード」だけ設定したい場合を想定し
24
  日本語が入っていないと許可しない設定を「オン・オフ」出来るようになっています。
25
  以前にスパムとしてチェックした投稿のIPアドレス及び、任意のIPアドレスでの制御も出来るようになっています。
26
+ IPアドレスの指定は「,(半角カンマ)」区切りで複数入力できますが、「192.168.1.0/24」のようにIPアドレスの範囲指定も可能です。
27
+ ※例:192.168.0.1,192.168.1.0/24,69.208.0.0/16 と指定した場合
28
+  [192.168.0.1]と[192.168.1.0 ~ 192.168.1.255]と[69.208.0.0 ~ 69.208.255.255]のIPアドレスを拒否対象とします。
29
 
30
+ ・バージョン2.1でIPアドレスの範囲指定を可能にしました。
31
 
32
+ ・バージョン2.0で、WordPressのcommentsテーブルを検索し「spam」扱いとなったコメントのIPを収集しそのIPからの投稿を無視出来る機能と任意のIPアドレスからの投稿を無視出来る機能をつけました。
 
 
33
 
34
+ ・バージョン1.7で、元の画面に戻ってくる際の挙動を修正しました。
35
+  エラー画面表示の時間を「0」に設定していた場合はエラー画面を一切介さずリダイレクトするようにしました。
36
+  0以上の場合の挙動は以前と変わらずJavaScriptで時間になったら戻ってきます。
37
 
38
+ ・バージョン1.6にてNGキーワードとは逆にコレが入っていないとダメという「必須キーワード」の設定が出来るようにしました。
39
+  日本語を入れれば良いため通ってしまいやすい「中国語」への配慮です。「が」や「の」や「は」など、日本語文章が成り立つ上で必ず使用するであろう「ひらがな」を入れることで効力が発揮されると思います。
 
40
 
41
+ ・バージョン1.5では「トラックバック」に対しても同様の規制を入れられるようになりました。
42
+  トラックバック記事の内容に日本語を含まないものを無視します。
43
+  加えて、トラックバック記事内にこちらのサイトのURLが含まれない場合、日本語が含まれていても無視するかどうかの設定も出来るようにしました。
44
 
45
 
46
  制作:佐藤 毅(さとう たけし) <a href="http://gti.jp/" target="_blank">博多 南福岡 ホームページ制作</a> 株式会社ジーティーアイ代表
61
  2. Activate the plugin through the 'Plugins' menu in WordPress
62
 
63
  == Frequently Asked Questions ==
64
+ 質問やご要望はSupportまたは弊社お問い合わせ(http://gti.jp/)へお願いします!
 
 
 
 
65
 
66
  == Screenshots ==
67
 
68
  == Changelog ==
69
+ = 2.1 =
70
+ IPアドレスの指定に「192.168.1.0/24」のようにIPアドレス範囲指定出来るようにしました。
71
+ ※例:192.168.0.1,192.168.1.0/24,69.208.0.0/16 と指定した場合
72
+  [192.168.0.1]と[192.168.1.0 ~ 192.168.1.255]と[69.208.0.0 ~ 69.208.255.255]のIPアドレスを拒否対象とします。
73
+
74
  = 2.0 =
75
  下記の機能を追加しました。
76
  ・コメント投稿者のIPアドレスが以前スパム扱いとなったものと同じIPアドレスからの投稿であれば無視するようにする機能
throws_spam_away.php CHANGED
@@ -4,7 +4,7 @@
4
  Plugin URI: http://gti.jp/tsa/
5
  Description: コメント内に日本語の記述が存在しない場合はあたかも受け付けたように振る舞いながらも捨ててしまうプラグイン
6
  Author: 株式会社ジーティーアイ さとう たけし
7
- Version: 2.0
8
  Author URI: http://gti.jp/
9
  */
10
 
@@ -63,7 +63,7 @@ add_action('pre_comment_on_post', array(&$newThrowsSpamAway, "comment_post"), 1)
63
  */
64
  class ThrowsSpamAway {
65
  // version
66
- var $version = '2.0';
67
 
68
  public function __construct() {
69
  add_action( 'admin_menu', array( $this, 'admin_menu' ) );
@@ -114,6 +114,7 @@ class ThrowsSpamAway {
114
  case "block_ip" :
115
  $error_msg = (get_option('tsa_block_ip_address_error_message') != NULL ?
116
  get_option('tsa_block_ip_address_error_message') : $default_block_ip_address_error_msg);
 
117
  default :
118
  $error_msg = (get_option('tsa_error_message') != NULL ?
119
  get_option('tsa_error_message') : $default_error_msg);
@@ -125,7 +126,7 @@ class ThrowsSpamAway {
125
  header("Location:".$_SERVER['HTTP_REFERER']);
126
  die;
127
  } else {
128
- wp_die( __(($error_msg != NULL? $error_msg : $default_error_msg)."<script type=\"text/javascript\">window.setTimeout(location.href='".$_SERVER['HTTP_REFERER']."', ".$back_time.");</script>", 'throws-spam-away'));
129
  }
130
  }
131
 
@@ -156,7 +157,14 @@ class ThrowsSpamAway {
156
  if ($block_ip_addresses != NULL && $block_ip_addresses != "") {
157
  $ip_list = mb_split(",", $block_ip_addresses);
158
  foreach ($ip_list as $ip) {
159
- if (trim($ip) == trim($target_ip)) {
 
 
 
 
 
 
 
160
  // ブロックしたいIP
161
  $error_type = "block_ip";
162
  return FALSE;
@@ -168,6 +176,25 @@ class ThrowsSpamAway {
168
  return TRUE;
169
  }
170
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
171
  /**
172
  * 日本語が含まれているかチェックメソッド
173
  * @param string $comment
@@ -374,12 +401,12 @@ class ThrowsSpamAway {
374
  </tr>
375
  <tr valign="top">
376
  <th scope="row">ブロック対象のIPアドレスからの投稿時に表示される文言<br />(元の記事に戻ってくる時間の間のみ表示)</th>
377
- <td><input type="text" name="tsa_block_ip_address_error_msg" size="100"
378
  value="<?php echo get_option('tsa_block_ip_address_error_message');?>" /><br />(初期設定:<?php echo $default_block_ip_address_error_msg; ?>)</td>
379
  </table>
380
  <input type="hidden" name="action" value="update" /> <input
381
  type="hidden" name="page_options"
382
- value="tsa_on_flg,tsa_japanese_string_min_count,tsa_back_second,tsa_caution_message,tsa_error_message,tsa_ng_keywords,tsa_ng_key_error_message,tsa_must_keywords,tsa_must_key_error_message,tsa_tb_on_flg,tsa_tb_url_flg,tsa_block_ip_addresses,tsa_ip_block_from_spam_chk_flg,tsa_block_ip_address_error_msg" />
383
  <p class="submit">
384
  <input type="submit" class="button-primary"
385
  value="<?php _e('Save Changes') ?>" />
4
  Plugin URI: http://gti.jp/tsa/
5
  Description: コメント内に日本語の記述が存在しない場合はあたかも受け付けたように振る舞いながらも捨ててしまうプラグイン
6
  Author: 株式会社ジーティーアイ さとう たけし
7
+ Version: 2.1
8
  Author URI: http://gti.jp/
9
  */
10
 
63
  */
64
  class ThrowsSpamAway {
65
  // version
66
+ var $version = '2.1';
67
 
68
  public function __construct() {
69
  add_action( 'admin_menu', array( $this, 'admin_menu' ) );
114
  case "block_ip" :
115
  $error_msg = (get_option('tsa_block_ip_address_error_message') != NULL ?
116
  get_option('tsa_block_ip_address_error_message') : $default_block_ip_address_error_msg);
117
+ break;
118
  default :
119
  $error_msg = (get_option('tsa_error_message') != NULL ?
120
  get_option('tsa_error_message') : $default_error_msg);
126
  header("Location:".$_SERVER['HTTP_REFERER']);
127
  die;
128
  } else {
129
+ wp_die( __(($error_msg != NULL? $error_msg : "")."<script type=\"text/javascript\">window.setTimeout(location.href='".$_SERVER['HTTP_REFERER']."', ".$back_time.");</script>", 'throws-spam-away'));
130
  }
131
  }
132
 
157
  if ($block_ip_addresses != NULL && $block_ip_addresses != "") {
158
  $ip_list = mb_split(",", $block_ip_addresses);
159
  foreach ($ip_list as $ip) {
160
+ // 指定IPが範囲指定の場合 例:192.168.1.0/24
161
+ if ( strpos( $ip, "/" ) != FALSE ) {
162
+ if ( $this->inCIDR( $target_ip, $ip ) ) {
163
+ // ブロックしたいIP
164
+ $error_type = "block_ip";
165
+ return FALSE;
166
+ }
167
+ } elseif (trim($ip) == trim($target_ip)) {
168
  // ブロックしたいIP
169
  $error_type = "block_ip";
170
  return FALSE;
176
  return TRUE;
177
  }
178
 
179
+ /**
180
+ * CIDRチェック
181
+ * @param string $ip
182
+ * @param string $cidr
183
+ * @return boolean
184
+ */
185
+ function inCIDR($ip, $cidr) {
186
+ list($network, $mask_bit_len) = explode('/', $cidr);
187
+ if ( !is_nan($mask_bit_len) && $mask_bit_len <= 32) {
188
+ $host = 32 - $mask_bit_len;
189
+ $net = ip2long($network) >> $host << $host; // 11000000101010000000000000000000
190
+ $ip_net = ip2long($ip) >> $host << $host; // 11000000101010000000000000000000
191
+ return $net === $ip_net;
192
+ } else {
193
+ // 形式が不正ならば無視するためFALSE
194
+ return FALSE;
195
+ }
196
+ }
197
+
198
  /**
199
  * 日本語が含まれているかチェックメソッド
200
  * @param string $comment
401
  </tr>
402
  <tr valign="top">
403
  <th scope="row">ブロック対象のIPアドレスからの投稿時に表示される文言<br />(元の記事に戻ってくる時間の間のみ表示)</th>
404
+ <td><input type="text" name="tsa_block_ip_address_error_message" size="100"
405
  value="<?php echo get_option('tsa_block_ip_address_error_message');?>" /><br />(初期設定:<?php echo $default_block_ip_address_error_msg; ?>)</td>
406
  </table>
407
  <input type="hidden" name="action" value="update" /> <input
408
  type="hidden" name="page_options"
409
+ value="tsa_on_flg,tsa_japanese_string_min_count,tsa_back_second,tsa_caution_message,tsa_error_message,tsa_ng_keywords,tsa_ng_key_error_message,tsa_must_keywords,tsa_must_key_error_message,tsa_tb_on_flg,tsa_tb_url_flg,tsa_block_ip_addresses,tsa_ip_block_from_spam_chk_flg,tsa_block_ip_address_error_message" />
410
  <p class="submit">
411
  <input type="submit" class="button-primary"
412
  value="<?php _e('Save Changes') ?>" />