Throws SPAM Away - Version 2.6.5

Version Description

2014/12/22

OFF bsb.spamlookup.net bsb.spamlookup.net, bsb.empty.us, list.dsbl.org, all.rbl.jp URL

7 3

wordpress.orgID

Download this release

Release Info

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

Code changes from version 2.6.4 to 2.6.5

css/tsa_data_styles.css ADDED
@@ -0,0 +1,141 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @CHARSET "UTF-8";
2
+ /** Throws SPAM Away */
3
+ /** 変更ボタン */
4
+ p.submit .button-primary {
5
+ width: 200px;
6
+ height: 30px;
7
+ margin: 20px auto 50px 20px;
8
+ }
9
+ /** ------ lightbox風 ----- */
10
+ #kotak-dialog {
11
+ position:absolute;
12
+ top:20%;
13
+ left:50%;
14
+ margin:0px 0px 0px -200px;
15
+ width:400px;
16
+ height:auto;
17
+ background-color:#fff;
18
+ -webkit-box-shadow:0px 1px 2px rgba(0,0,0,0.4);
19
+ -moz-box-shadow:0px 1px 2px rgba(0,0,0,0.4);
20
+ box-shadow:0px 1px 2px rgba(0,0,0,0.4);
21
+ z-index:1000;
22
+ display:none;
23
+ }
24
+
25
+ #kotak-dialog *:focus {
26
+ outline:none;
27
+ }
28
+
29
+ #kotak-dialog h3.title {
30
+ background-color:#3B5998;
31
+ padding:10px 15px;
32
+ color:#fff;
33
+ font:normal 16px Arial,Sans-Serif;
34
+ margin:0px 0px 0px 0px;
35
+ position:relative;
36
+ }
37
+
38
+ #kotak-dialog h3.title a {
39
+ position:absolute;
40
+ top:10px;
41
+ right:15px;
42
+ color:#fff;
43
+ text-decoration:none;
44
+ cursor:pointer;
45
+ }
46
+
47
+ #kotak-dialog .isi-dialog {
48
+ margin:15px;
49
+ font:normal 12px Arial,Sans-Serif;
50
+ }
51
+
52
+ #kotak-dialog .button-wrapper {
53
+ padding:10px 15px 0px;
54
+ border-top:1px solid #ddd;
55
+ margin-top:15px;
56
+ }
57
+
58
+ #kotak-dialog .button-wrapper button {
59
+ background-color:#FF0C39;
60
+ border:none;
61
+ font:bold 12px Arial,Sans-Serif;
62
+ color:#fff;
63
+ padding:5px 10px;
64
+ -webkit-border-radius:3px;
65
+ -moz-border-radius:3px;
66
+ border-radius:3px;
67
+ cursor:pointer;
68
+ }
69
+
70
+ #kotak-dialog .button-wrapper button:hover {
71
+ background-color:#aaa;
72
+ }
73
+
74
+ #dialog-overlay {
75
+ position:fixed !important;
76
+ position:absolute;
77
+ z-index:999;
78
+ top:0px;
79
+ right:0px;
80
+ bottom:0px;
81
+ left:0px;
82
+ background-color:#000;
83
+ display:none;
84
+ }
85
+
86
+
87
+ /* Iframe */
88
+ #iframeContainer iframe {
89
+ width:100%;
90
+ height:300px;
91
+ border:none;
92
+ background-color:#ccc;
93
+ overflow:auto;
94
+ }
95
+
96
+ /** スクロール対象テーブルCSS */
97
+ #spam_list {
98
+ background-color: #ffffff;
99
+ border-collapse:;
100
+ font-size: 1em !important;
101
+ }
102
+ /** 全体container */
103
+ #spam_list_container {
104
+ position: relative;
105
+ padding-top: 26px;
106
+ width: 928px; /* 列幅合計+セル間の幅(2px)の合計+20px */
107
+ border: 1px solid #3377b6;
108
+ background-color: #ffffff;
109
+ }
110
+ /** tbody スクロール対象 */
111
+ #spam_list_div {
112
+ overflow: auto;
113
+ height: 600px;
114
+ }
115
+
116
+ #spam_list thead tr {
117
+ position: absolute;
118
+ top: 0;
119
+ left: 0;
120
+ background-color: #ffffff;
121
+ }
122
+ #spam_list thead tr th {
123
+ background-color: #3377b6;
124
+ color: #fff;
125
+ padding: 3px 0px;
126
+ }
127
+ #spam_list tbody tr td {
128
+ background-color: #efefef;
129
+ color: black;
130
+ padding: 3px 6px;
131
+ }
132
+ #spam_list tbody tr.odd td {
133
+ background-color:#F0F0F6;
134
+ }
135
+
136
+ .cols0 { width: 200px; }
137
+ .cols1 { width: 50px; }
138
+ .cols2 { width: 130px; }
139
+ .cols3 { width: 300px; }
140
+ .cols4 { width: 220px; }
141
+
css/tsa_styles.css ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ @CHARSET "UTF-8";
2
+ /**
3
+ Throws SPAM Away
4
+ Option page
5
+ */
6
+
7
+ h2 {
8
+ padding: 10px !important;
9
+ }
10
+
11
+ .wrap h3 {
12
+ background: #fff;
13
+ border-left: 3px solid orange ;
14
+ margin: 0 0 15px 15px;
15
+ padding: 5px 10px;
16
+ }
17
+
18
+ .wrap p {
19
+ margin: 0 0 15px 15px;
20
+ padding: 5px 10px;
21
+ }
22
+
23
+ .wrap table.form-table {
24
+ margin: 0 0 15px 15px;
25
+ padding: 5px 10px;
26
+ border-collapse: separate;
27
+ border-spacing: 5px;
28
+ }
29
+
30
+ .wrap table.form-table tbody tr th {
31
+ background: #fff;
32
+ width: 250px;
33
+ margin: 0 0 15px 15px;
34
+ padding: 5px 10px;
35
+ border: solid 1px #ddd;
36
+ border-radius: 3px;
37
+ box-shadow: 0 1px 3px rgba( 0, 0, 0, 0.1 );
38
+ overflow: hidden;
39
+ }
40
+
hostbyip.php ADDED
@@ -0,0 +1,76 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * <p>ThrowsSpamAway</p> hostbyipページ
4
+ * WordPress's Plugin
5
+ * @author Takeshi Satoh@GTI Inc. 2013
6
+ * @version 2.6.3 2014/06/06
7
+ */
8
+ require_once 'throws_spam_away.class.php';
9
+ require_once dirname( __FILE__ ).'/../../../wp-load.php';
10
+ /**
11
+ * ホスト検索
12
+ */
13
+ $spam_ip = htmlspecialchars($_GET['ip']);
14
+ $newThrowsSpamAway = new ThrowsSpamAway(TRUE);
15
+ $last_spam_comment_result = $newThrowsSpamAway->get_last_spam_comment($spam_ip);
16
+ // 最終投稿日
17
+ $last_comment_date = $last_spam_comment_result->post_date;
18
+ $last_comment_post = get_permalink($last_spam_comment_result->post_id);
19
+ $last_comment_post_title = get_the_title(get_post($last_spam_comment_result->post_id));
20
+ $is_spam_champuru = ( $newThrowsSpamAway->reject_spam_ip( $spam_ip ) ? FALSE : TRUE );
21
+ $spam_author = $last_spam_comment_result->spam_author;
22
+ $spam_comment = esc_attr($last_spam_comment_result->spam_comment);
23
+ ?><!DOCTYPE html>
24
+ <!--[if IE 8]>
25
+ <html xmlns="http://www.w3.org/1999/xhtml" class="ie8 wp-toolbar" lang="ja" prefix="og: http://ogp.me/ns#" >
26
+ <![endif]-->
27
+ <!--[if !(IE 8) ]><!-->
28
+ <html xmlns="http://www.w3.org/1999/xhtml" class="wp-toolbar" lang="ja" >
29
+ <!--<![endif]-->
30
+ <head>
31
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
32
+ <title>Throws SPAM Away | Hostbyip[<?php echo htmlspecialchars($_GET['ip']); ?>]</title>
33
+ <script type="text/javascript">
34
+ window.onblur=function(){
35
+ window.close();
36
+ }
37
+ </script>
38
+ </head>
39
+ <body>
40
+ <div style="textalign: center;">
41
+ <h2 style="background:#333; color:#fff;"><?php echo $spam_ip; ?></h2>
42
+ <?php
43
+ $spam_host = gethostbyaddr(htmlspecialchars($spam_ip));
44
+ if ($spam_host != $spam_ip) {
45
+ ?>
46
+ <h3 style="background: #666;color: #fff;">特定のホスト情報が見つかりました。</h3>
47
+ ↓↓↓<br />
48
+
49
+ <h4><?php echo $spam_host; ?></h4>
50
+ Whois: <a href="http://whois.arin.net/rest/ip/<?php echo $spam_ip; ?>" target="_blank"><?php echo $spam_ip; ?></a>
51
+ <?php
52
+ } else {
53
+ ?>
54
+ <h3 style="background: #666;color: #fff;">このIPアドレスから特定のホスト情報は見つかりませんでした。</h3>
55
+ <?php
56
+ }
57
+ ?>
58
+ <?php if ( $last_spam_comment_result != NULL ) { ?>
59
+ <div style="background: #999;color: #fff;margin:3px 0 0 0;">このIPからの最終投稿日時</div><?php echo $last_comment_date; ?><br />
60
+ <div style="background: #999;color: #fff;margin:3px 0 0 0;">このIPからスパム投稿対象となったページ</div><a href="<?php echo $last_comment_post; ?>" target="_blank"><?php echo $last_comment_post_title; ?></a><br />
61
+ <?php } ?>
62
+ <h4>スパムフィルター:<?php echo ($is_spam_champuru ? "スパムブラックリスト存在IPアドレス" : "未検出" ); ?></h4>
63
+
64
+ <div style="background: #999;color: #fff;margin:3px 0 0 0;">最新コメント内容</div>
65
+ <div ><?php if ( $spam_author != NULL && $spam_comment != NULL ) {
66
+ ?>
67
+ IP: <?php esc_attr_e( $spam_ip ); ?><br />
68
+ 名前:<?php echo esc_attr( $spam_author ); ?><br />
69
+ 内容:<?php esc_attr_e( $spam_comment ); ?><?php
70
+ } ?>
71
+ </div>
72
+
73
+ <div style="text-align:right;"><a href="javascript:void(0);" onclick="window.close();">閉じる</a></div>
74
+ </div>
75
+ </body>
76
+ </html>
images/asc.gif ADDED
Binary file
images/bg.gif ADDED
Binary file
images/desc.gif ADDED
Binary file
images/style.css ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ table.tablesorter thead tr .header {
2
+ background-image: url(bg.gif);
3
+ background-repeat: no-repeat;
4
+ background-position: center right;
5
+ cursor: pointer;
6
+ }
7
+ table.tablesorter thead tr .headerSortUp {
8
+ background-image: url(asc.gif);
9
+ }
10
+ table.tablesorter thead tr .headerSortDown {
11
+ background-image: url(desc.gif);
12
+ }
13
+ table.tablesorter thead tr .headerSortDown, table.tablesorter thead tr .headerSortUp {
14
+ background-color: #8dbdd8;
15
+ }
readme.txt CHANGED
@@ -1,10 +1,10 @@
1
  === Plugin Name ===
2
- Contributors: taman777
3
  Donate link: http://gti.jp/tsa
4
  Tags: comments, spam
5
  Requires at least: 3.1
6
- Tested up to: 3.9.1
7
- Stable tag: 2.6.4
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -56,7 +56,16 @@ IPアドレスの指定「ブロックリスト」「ホワイトリスト」共
56
   [192.168.0.1]と[192.168.1.0 ~ 192.168.1.255]と[69.208.0.0 ~ 69.208.255.255]のIPアドレスを拒否(または優先通過)対象とします。
57
 
58
  ・スパムフィルタによる判定
59
-  「スパムちゃんぷるー(ベータ)」http://spam-champuru.livedoor.com/dnsbl/ を利用してスパム判定することも可能です。
 
 
 
 
 
 
 
 
 
60
   設定にてON/OFF出来ます。
61
 
62
 
@@ -72,6 +81,18 @@ IPアドレスの指定「ブロックリスト」「ホワイトリスト」共
72
  ※コメント投稿時のスパムコメント対応の煩わしさが原因で作ったものですのでスパム判定されたコメントを保持しておりません。
73
 
74
  -- これまでの変更点について
 
 
 
 
 
 
 
 
 
 
 
 
75
  ・バージョン2.6.4
76
   2014/06/23
77
   タイトルの文字列をそのまま流用し「日本語」を使うことでフィルタを回避しようとする方法を排除するため
@@ -214,6 +235,8 @@ IPアドレスの指定「ブロックリスト」「ホワイトリスト」共
214
  FTPなどで /wp-content/plugins/ ディレクトリにアップロードし
215
  「プラグイン」メニューより「Throws SPAM Away」を「有効化」してご利用ください。
216
 
 
 
217
  e.g.
218
 
219
  1. Upload `throws-spam-away` to the `/wp-content/plugins/` directory
@@ -225,6 +248,23 @@ e.g.
225
  == Screenshots ==
226
 
227
  == Changelog ==
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
228
  = 2.6.4 =
229
  ・バージョン2.6.4
230
   2014/06/23
1
  === Plugin Name ===
2
+ Contributors: TAMAN
3
  Donate link: http://gti.jp/tsa
4
  Tags: comments, spam
5
  Requires at least: 3.1
6
+ Tested up to: 4.1
7
+ Stable tag: 2.6.5
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
56
   [192.168.0.1]と[192.168.1.0 ~ 192.168.1.255]と[69.208.0.0 ~ 69.208.255.255]のIPアドレスを拒否(または優先通過)対象とします。
57
 
58
  ・スパムフィルタによる判定
59
+  このプラグインにて「スパムフィルタ」として利用させて頂いておりました「スパムちゃんぷるー(ベータ)」http://spam-champuru.livedoor.com/dnsbl/
60
+  ですが、「2013年5月31日を持ちましてサービスを終了させていただくことになりました。」というアナウンスを受けながらも
61
+  (参考URL:http://blog.livedoor.jp/edge_labs/archives/1791613.html )現在まで利用させて頂いてまいりました。
62
+  ですが、2014年の締めくくりとしてこのままXデーを迎えるわけにもいかないという判断でこのスパムフィルタを組み合わせられるように構築しなおしました。
63
+  選択肢は「bsb.spamlookup.net, bsb.empty.us, list.dsbl.org, all.rbl.jp」から自由に選択出来、プラスご自由に記入出来るように入力欄を設けました。
64
+  これらの「選択肢」「自由記入欄」はリストとしてミックスされフィルタとして利用することになります。
65
+  ※そのため、数が多いとその分、待ち時間・トラフィックが大きくなることはご注意ください。
66
+  ※利用できる間は「dnsbl.spam-champuru.livedoor.com」も設定することは可能です。
67
+  最後に「すぱむちゃんぷるー」を利用させていただきまして大変ありがとうございました。
68
+
69
   設定にてON/OFF出来ます。
70
 
71
 
81
  ※コメント投稿時のスパムコメント対応の煩わしさが原因で作ったものですのでスパム判定されたコメントを保持しておりません。
82
 
83
  -- これまでの変更点について
84
+ ・バージョン2.6.5
85
+  2014/12/22
86
+  スパムフィルタを自身で設定できるように変更しました。
87
+  選択肢「bsb.spamlookup.net, bsb.empty.us, list.dsbl.org, all.rbl.jp」
88
+  及び自由記入欄にてカンマ区切りでサービスのURLを入力できます。
89
+  ※記述に誤りがありますと通信が返ってこないためコメント出来ない可能性がありますのでご注意ください。
90
+
91
+  スパムデータベースの最小保存期間を 7日から 3日に変更しました。
92
+
93
+  プラグイン作成者のwordpress.orgネームが間違えていた(IDにしていた)ためプラグインページにプロフィールリンクが
94
+  表示されていない大変寂しい結果になっておりました。今バージョンより修正いたします。
95
+
96
  ・バージョン2.6.4
97
   2014/06/23
98
   タイトルの文字列をそのまま流用し「日本語」を使うことでフィルタを回避しようとする方法を排除するため
235
  FTPなどで /wp-content/plugins/ ディレクトリにアップロードし
236
  「プラグイン」メニューより「Throws SPAM Away」を「有効化」してご利用ください。
237
 
238
+ アップデートの際は、一度設定画面にアクセスし「変更を保存」ボタンを押していただけますと確実です。
239
+
240
  e.g.
241
 
242
  1. Upload `throws-spam-away` to the `/wp-content/plugins/` directory
248
  == Screenshots ==
249
 
250
  == Changelog ==
251
+ = 2.6.5 =
252
+  2014/12/22
253
+  スパムフィルタを自身で設定できるように変更しました。
254
+  初期設定は「スパムフィルタ:OFF」に変更しました。
255
+  また、使用する際の初期有効値は「bsb.spamlookup.net」のみです。
256
+  選択肢「bsb.spamlookup.net, bsb.empty.us, list.dsbl.org, all.rbl.jp」
257
+  及び自由記入欄にてカンマ区切りでサービスのURLを入力できます。
258
+  ※記述に誤りがありますと通信が返ってこないためコメント出来ない可能性がありますのでご注意ください。
259
+  ※スパムフィルタが変更できることによって現在まで「スパムブラックリスト」でエラーとなっていた投稿に対し
260
+   その時点では有効だったフィルタが閲覧時に入れ替えがあると「スパムフィルター:未検出」となる場合があります。
261
+   ご了承ください。
262
+
263
+  スパムデータベースの最小保存期間を 7日から 3日に変更しました。
264
+
265
+  プラグイン作成者のwordpress.orgネームが間違えていた(IDにしていた)ためプラグインページにプロフィールリンクが
266
+  表示されていない大変寂しい結果になっておりました。今バージョンより修正いたします。
267
+
268
  = 2.6.4 =
269
  ・バージョン2.6.4
270
   2014/06/23
throws_spam_away.class.php CHANGED
@@ -4,7 +4,7 @@
4
  * <p>ThrowsSpamAway</p> Class
5
  * WordPress's Plugin
6
  * @author Takeshi Satoh@GTI Inc. 2014
7
- * @version 2.6.4
8
  */
9
  class ThrowsSpamAway {
10
 
@@ -13,6 +13,21 @@ class ThrowsSpamAway {
13
  var $table_name = NULL;
14
 
15
  public function __construct() {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16
  global $default_spam_data_save;
17
  global $wpdb;
18
  // 接頭辞(wp_)を付けてテーブル名を設定
@@ -122,7 +137,6 @@ class ThrowsSpamAway {
122
  if ( strlen( trim( $caution_msg ) ) > 0 ) {
123
  echo '<p id="throwsSpamAway">'.$caution_msg.'</p>'; // div から p タグへ変更
124
  }
125
- return TRUE;
126
  }
127
 
128
  function comment_form_dummy_param_field() {
@@ -135,7 +149,6 @@ class ThrowsSpamAway {
135
  echo '<p class="tsa_param_field_tsa_2">post date<span class="required">*</span><input type="text" name="tsa_param_field_tsa_3" id="tsa_param_field_tsa_3" size="30" value="'.date( 'Y-m-d H:i:s' ).'" />
136
  </p>';
137
  }
138
- return TRUE;
139
  }
140
 
141
  function comment_post( $id ) {
@@ -191,24 +204,24 @@ class ThrowsSpamAway {
191
  }
192
  $error_msg = '';
193
  switch ( $error_type ) {
194
- case 'must_word' :
195
  $error_msg = get_option( 'tsa_must_key_error_message', $default_must_key_error_msg );
196
  break;
197
- case 'ng_word' :
198
  $error_msg = get_option( 'tsa_ng_key_error_message', $default_ng_key_error_msg );
199
  break;
200
- case 'block_ip' :
201
  $error_msg = get_option( 'tsa_block_ip_address_error_message', $default_block_ip_address_error_msg );
202
  break;
203
- case 'spam_champuru' :
204
  $error_msg = get_option( 'tsa_block_ip_address_error_message', $default_block_ip_address_error_msg );
205
- case 'url_count_over' :
206
  $error_msg = get_option( 'tsa_url_count_over_error_message', $default_url_count_over_error_msg );
207
  break;
208
- case 'spam_limit_over' :
209
  $error_msg = get_option( 'tsa_spam_limit_over_interval_error_message', $default_spam_limit_over_interval_error_msg );
210
  break;
211
- case 'dummy_param_field' : // ダミーフィールドの場合は通常メッセージ
212
  default :
213
  $error_msg = get_option( 'tsa_error_message', $default_error_msg );
214
  }
@@ -258,7 +271,7 @@ class ThrowsSpamAway {
258
  foreach ( $results as $item ) {
259
  if ( trim( $item->comment_author_IP ) == trim( $target_ip ) ) {
260
  // ブロックしたいIP
261
- $error_type = 'block_ip';
262
  return FALSE;
263
  }
264
  }
@@ -274,12 +287,12 @@ class ThrowsSpamAway {
274
  if ( strpos( $ip, '/' ) != FALSE ) {
275
  if ( $this->in_cidr( $target_ip, $ip ) ) {
276
  // ブロックしたいIP
277
- $error_type = 'block_ip';
278
  return FALSE;
279
  }
280
  } elseif ( trim( $ip ) == trim( $target_ip ) ) {
281
  // ブロックしたいIP
282
- $error_type = 'block_ip';
283
  return FALSE;
284
  } else {
285
  // セーフIP
@@ -289,45 +302,101 @@ class ThrowsSpamAway {
289
  return TRUE;
290
  }
291
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
292
  /**
293
- * スパムちゃんぷるー利用ブロック
294
  */
295
  function reject_spam_ip( $ip ) {
296
- global $spam_champuru_host;
 
 
 
 
 
297
  global $error_type;
298
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
299
  $spam_def_ip = '127.0.0.2';
300
- $host = $spam_champuru_host;
301
  $pattern = '/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/';
302
  $check_IP = trim( preg_match( $pattern, $ip ) ? $ip : $_SERVER['REMOTE_ADDR'] );
303
- $spam = false;
304
  if ( preg_match( $pattern, $check_IP ) ) {
305
- $host = implode( '.',array_reverse( split( '\.',$check_IP ) ) ) . '.' . $host;
306
- if ( function_exists( 'dns_get_record' ) ) {
307
- $check_recs = dns_get_record( $host, DNS_A );
308
- if ( isset( $check_recs[0]['ip'] ) ) $spam = ( $check_recs[0]['ip'] === $spam_def_ip );
309
- unset( $check_recs );
310
- } elseif ( function_exists( 'gethostbyname' ) ) {
311
- $checked = ( gethostbyname( $host ) === $spam_def_ip );
312
- } elseif ( class_exists( 'Net_DNS_Resolver' ) ) {
313
- $resolver = new Net_DNS_Resolver();
314
- $response = $resolver->query( $host, 'A' );
315
- if ( $response ) {
316
- foreach ( $response->answer as $rr ) {
317
- if ( $rr->type === 'A' ) {
318
- $spam = ( $rr->address === $spam_def_ip );
319
- break;
320
- }
321
- }
322
  }
323
- unset( $response );
324
- unset( $resolver );
325
- } elseif ( function_exists( 'checkdnsrr' ) ) {
326
- $spam = ( checkdnsrr( $host, 'A' ) === true );
327
  }
328
  }
329
  if ( $spam ) {
330
- $error_type = 'spam_champuru';
331
  return FALSE;
332
  }
333
  return TRUE;
@@ -414,7 +483,7 @@ class ThrowsSpamAway {
414
  $tsa_spam_limit_count = intval( get_option( 'tsa_spam_limit_count', $default_spam_limit_count ) );
415
  if ( $spam_count > $tsa_spam_limit_count ) {
416
  // アウト!
417
- $error_type = 'spam_limit_over';
418
  return FALSE;
419
  }
420
  }
@@ -422,13 +491,13 @@ class ThrowsSpamAway {
422
  $tsa_dummy_param_field_flg = get_option( 'tsa_dummy_param_field_flg', $default_dummy_param_field_flg );
423
  if ( $tsa_dummy_param_field_flg == '1') {
424
  if ( ! empty( $_POST['tsa_param_field_tsa_3'] ) ) { // このフィールドにリクエストパラメータが入る場合はスパム判定
425
- $error_type = 'dummy_param_field';
426
  return FALSE;
427
  }
428
  }
429
  // シングルバイトだけならエラー
430
  if ( $tsa_on_flg != '2' && strlen( bin2hex( $comment ) ) / 2 == mb_strlen( $comment ) ) {
431
- $error_type = 'not_japanese';
432
  return FALSE;
433
  } else {
434
  // 日本語文字列必須含有数
@@ -488,7 +557,7 @@ class ThrowsSpamAway {
488
 
489
  $flg = ( $tsa_japanese_string_min_count < $count_flg );
490
  if ($flg == FALSE) {
491
- $error_type = 'not_japanese';
492
  return FALSE;
493
  }
494
  }
@@ -497,7 +566,7 @@ class ThrowsSpamAway {
497
  $keyword_list = mb_split( ',', $tsa_ng_keywords );
498
  foreach ( $keyword_list as $key ) {
499
  if ( preg_match('/'.trim( $key ).'/u', $author.$comment) ) {
500
- $error_type = 'ng_word';
501
  return FALSE;
502
  }
503
  }
@@ -519,7 +588,7 @@ class ThrowsSpamAway {
519
  if ( $tsa_url_count_check != '2' ) {
520
  if ( substr_count( strtolower( $author.$comment ), 'http') > $tsa_ok_url_count) {
521
  // URL文字列(httpの数)が多いエラー
522
- $error_type = 'url_count_over';
523
  return FALSE;
524
  }
525
  }
@@ -582,6 +651,9 @@ class ThrowsSpamAway {
582
  global $default_ok_url_count;
583
  global $default_spam_champuru_flg;
584
 
 
 
 
585
  global $default_spam_limit_flg;
586
  global $default_spam_limit_minutes;
587
  global $default_spam_limit_count;
@@ -592,6 +664,10 @@ class ThrowsSpamAway {
592
  global $default_spam_display_day_count;
593
  global $default_spam_keep_day_count;
594
 
 
 
 
 
595
  // 設定完了の場合はメッセージ表示
596
  $_saved = FALSE;
597
  if ( esc_attr( $_GET['settings-updated'] ) == 'true' ) {
@@ -722,8 +798,12 @@ function addIpAddresses(newAddressStr) {
722
  </td>
723
  </tr>
724
  <tr valign="top">
725
- <th scope="row">日本語文字列含有数<br />(この文字列に達していない場合無視対象となります。)</th>
726
- <td><input type="text" name="tsa_japanese_string_min_count"
 
 
 
 
727
  value="<?php echo get_option( 'tsa_japanese_string_min_count', $default_japanese_string_min_count ); ?>" /><br />
728
  (初期設定:<?php echo $default_japanese_string_min_count; ?>)
729
  </td>
@@ -873,17 +953,42 @@ function addIpAddresses(newAddressStr) {
873
  <h3 id="ip_opt">投稿IPアドレスによる制御設定</h3>
874
  <table class="form-table">
875
  <tr valign="top">
876
- <th scope="row">SPAMブラックリスト利用</th>
877
  <td><?php
878
  $chk = '';
879
  if ( get_option( 'tsa_spam_champuru_flg', $default_spam_champuru_flg) == '1' ) {
880
  $chk = ' checked="checked"';
881
  }
882
  ?>
883
- <label><input type="checkbox" name="tsa_spam_champuru_flg" value='1' <?php esc_attr_e( $chk ); ?> /><a href="http://spam-champuru.livedoor.com/dnsbl/">スパムちゃんぷるーDNSBL</a>に登録されているIPアドレスからのコメントを拒否する</label><br />
884
  (初期設定:<?php echo ( $default_spam_champuru_flg == '2' ? "しない" : "する" ); ?>)
885
  </td>
886
  </tr>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
887
  <tr valign="top">
888
  <th scope="row">WordPressのコメントで「スパム」にしたIPからの投稿にも採用する</th>
889
  <td><?php
@@ -980,7 +1085,7 @@ function addIpAddresses(newAddressStr) {
980
  <td>
981
  <input
982
  type="text" name="tsa_spam_keep_day_count" size="3"
983
- value="<?php echo get_option( 'tsa_spam_keep_day_count', $default_spam_keep_day_count); ?>" />日分(最低7日)(初期設定: <?php echo $default_spam_keep_day_count; ?>)<br />&nbsp;
984
  <?php
985
  $chk = '';
986
  if ( get_option( 'tsa_spam_data_delete_flg', $default_spam_data_delete_flg) == '1' ) {
@@ -1023,7 +1128,7 @@ function addIpAddresses(newAddressStr) {
1023
 
1024
  <input type="hidden" name="action" value="update" /> <input
1025
  type="hidden" name="page_options"
1026
- value="tsa_on_flg,tsa_japanese_string_min_count,tsa_back_second,tsa_caution_message,tsa_caution_msg_point,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,tsa_url_count_on_flg,tsa_ok_url_count,tsa_url_count_over_error_message,tsa_spam_data_save,tsa_spam_limit_flg,tsa_spam_limit_minutes,tsa_spam_limit_count,tsa_spam_limit_over_interval,tsa_spam_limit_over_interval_error_message,tsa_spam_champuru_flg,tsa_spam_keep_day_count,tsa_spam_data_delete_flg,tsa_white_ip_addresses,tsa_dummy_param_field_flg,tsa_memo" />
1027
  <p class="submit" id="tsa_submit_button">
1028
  <input type="submit" class="button-primary"
1029
  value="<?php _e('Save Changes') ?>" />
@@ -1069,7 +1174,7 @@ function addIpAddresses(newAddressStr) {
1069
  } else {
1070
  if ( get_option( 'tsa_spam_data_save', $default_spam_data_save ) == '1' ) {
1071
  $spam_contents = array();
1072
- $spam_contents['error_type'] = 'spam_trackback';
1073
  $spam_contents['author'] = mb_strcut( strip_tags( $author ), 0, 255 );
1074
  $spam_contents['comment'] = mb_strcut( strip_tags( $comment ), 0, 255 );
1075
 
@@ -1108,6 +1213,7 @@ function addIpAddresses(newAddressStr) {
1108
  */
1109
  function spams_list() {
1110
  global $wpdb;
 
1111
  $_saved = FALSE;
1112
 
1113
  // ブラックIPリスト
@@ -1336,31 +1442,31 @@ function addIpAddresses(newAddressStr) {
1336
  // エラー変換
1337
  $spam_error_type_str = $spam_error_type;
1338
  switch ( $spam_error_type ) {
1339
- case 'not_japanese':
1340
  $spam_error_type_str = '日本語以外';
1341
  break;
1342
- case 'must_word':
1343
  $spam_error_type_str = '必須キーワード無し';
1344
  break;
1345
- case 'ng_word':
1346
  $spam_error_type_str = 'NGキーワード混入';
1347
  break;
1348
- case 'block_ip':
1349
  $spam_error_type_str = 'ブロック対象IPアドレス';
1350
  break;
1351
- case 'spam_champuru':
1352
- $spam_error_type_str = 'すぱむちゃんぷるー';
1353
  break;
1354
- case 'spam_trackback':
1355
  $spam_error_type_str = 'トラックバックスパム';
1356
  break;
1357
- case 'url_count_over':
1358
  $spam_error_type_str = 'URL文字列混入数オーバー';
1359
  break;
1360
- case 'spam_limit_over':
1361
  $spam_error_type_str = '一定時間スパム判定エラー';
1362
  break;
1363
- case 'dummy_param_field':
1364
  $spam_error_type_str = 'ダミー項目エラー';
1365
  break;
1366
  }
4
  * <p>ThrowsSpamAway</p> Class
5
  * WordPress's Plugin
6
  * @author Takeshi Satoh@GTI Inc. 2014
7
+ * @version 2.6.5
8
  */
9
  class ThrowsSpamAway {
10
 
13
  var $table_name = NULL;
14
 
15
  public function __construct() {
16
+
17
+ // エラー記号
18
+ if ( !defined('MUST_WORD') ) {
19
+ define( 'MUST_WORD' ,'must_word' );
20
+ define( 'NG_WORD', 'ng_word' );
21
+ define( 'BLOCK_IP', 'block_ip' );
22
+ define( 'SPAM_BLACKLIST', 'spam_champuru' );
23
+ define( 'URL_COUNT_OVER', 'url_count_over' );
24
+ define( 'SPAM_LIMIT_OVER', 'spam_limit_over' );
25
+ define( 'DUMMY_FIELD', 'dummy_param_field' );
26
+
27
+ define( 'SPAM_TRACKBACK', 'spam_trackback' );
28
+ define( 'NOT_JAPANESE', 'not_japanese');
29
+ }
30
+
31
  global $default_spam_data_save;
32
  global $wpdb;
33
  // 接頭辞(wp_)を付けてテーブル名を設定
137
  if ( strlen( trim( $caution_msg ) ) > 0 ) {
138
  echo '<p id="throwsSpamAway">'.$caution_msg.'</p>'; // div から p タグへ変更
139
  }
 
140
  }
141
 
142
  function comment_form_dummy_param_field() {
149
  echo '<p class="tsa_param_field_tsa_2">post date<span class="required">*</span><input type="text" name="tsa_param_field_tsa_3" id="tsa_param_field_tsa_3" size="30" value="'.date( 'Y-m-d H:i:s' ).'" />
150
  </p>';
151
  }
 
152
  }
153
 
154
  function comment_post( $id ) {
204
  }
205
  $error_msg = '';
206
  switch ( $error_type ) {
207
+ case MUST_WORD :
208
  $error_msg = get_option( 'tsa_must_key_error_message', $default_must_key_error_msg );
209
  break;
210
+ case NG_WORD :
211
  $error_msg = get_option( 'tsa_ng_key_error_message', $default_ng_key_error_msg );
212
  break;
213
+ case BLOCK_IP :
214
  $error_msg = get_option( 'tsa_block_ip_address_error_message', $default_block_ip_address_error_msg );
215
  break;
216
+ case SPAM_BLACKLIST :
217
  $error_msg = get_option( 'tsa_block_ip_address_error_message', $default_block_ip_address_error_msg );
218
+ case URL_COUNT_OVER :
219
  $error_msg = get_option( 'tsa_url_count_over_error_message', $default_url_count_over_error_msg );
220
  break;
221
+ case SPAM_LIMIT_OVER :
222
  $error_msg = get_option( 'tsa_spam_limit_over_interval_error_message', $default_spam_limit_over_interval_error_msg );
223
  break;
224
+ case DUMMY_FIELD : // ダミーフィールドの場合は通常メッセージ
225
  default :
226
  $error_msg = get_option( 'tsa_error_message', $default_error_msg );
227
  }
271
  foreach ( $results as $item ) {
272
  if ( trim( $item->comment_author_IP ) == trim( $target_ip ) ) {
273
  // ブロックしたいIP
274
+ $error_type = BLOCK_IP;
275
  return FALSE;
276
  }
277
  }
287
  if ( strpos( $ip, '/' ) != FALSE ) {
288
  if ( $this->in_cidr( $target_ip, $ip ) ) {
289
  // ブロックしたいIP
290
+ $error_type = BLOCK_IP;
291
  return FALSE;
292
  }
293
  } elseif ( trim( $ip ) == trim( $target_ip ) ) {
294
  // ブロックしたいIP
295
+ $error_type = BLOCK_IP;
296
  return FALSE;
297
  } else {
298
  // セーフIP
302
  return TRUE;
303
  }
304
 
305
+ // /**
306
+ // * スパムちゃんぷるー利用ブロック
307
+ // */
308
+ // function reject_spam_ip( $ip ) {
309
+ // global $spam_champuru_host;
310
+ // global $error_type;
311
+
312
+ // $spam_def_ip = '127.0.0.2';
313
+ // $host = $spam_champuru_host;
314
+ // $pattern = '/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/';
315
+ // $check_IP = trim( preg_match( $pattern, $ip ) ? $ip : $_SERVER['REMOTE_ADDR'] );
316
+ // $spam = false;
317
+ // if ( preg_match( $pattern, $check_IP ) ) {
318
+ // $host = implode( '.',array_reverse( split( '\.',$check_IP ) ) ) . '.' . $host;
319
+ // if ( function_exists( 'dns_get_record' ) ) {
320
+ // $check_recs = dns_get_record( $host, DNS_A );
321
+ // if ( isset( $check_recs[0]['ip'] ) ) $spam = ( $check_recs[0]['ip'] === $spam_def_ip );
322
+ // unset( $check_recs );
323
+ // } elseif ( function_exists( 'gethostbyname' ) ) {
324
+ // $checked = ( gethostbyname( $host ) === $spam_def_ip );
325
+ // } elseif ( class_exists( 'Net_DNS_Resolver' ) ) {
326
+ // $resolver = new Net_DNS_Resolver();
327
+ // $response = $resolver->query( $host, 'A' );
328
+ // if ( $response ) {
329
+ // foreach ( $response->answer as $rr ) {
330
+ // if ( $rr->type === 'A' ) {
331
+ // $spam = ( $rr->address === $spam_def_ip );
332
+ // break;
333
+ // }
334
+ // }
335
+ // }
336
+ // unset( $response );
337
+ // unset( $resolver );
338
+ // } elseif ( function_exists( 'checkdnsrr' ) ) {
339
+ // $spam = ( checkdnsrr( $host, 'A' ) === true );
340
+ // }
341
+ // }
342
+ // if ( $spam ) {
343
+ // $error_type = SPAM_BLACKLIST;
344
+ // return FALSE;
345
+ // }
346
+ // return TRUE;
347
+ // }
348
+
349
  /**
350
+ * スパムちゃんぷるー代替スパムブラックリスト利用ブロック
351
  */
352
  function reject_spam_ip( $ip ) {
353
+
354
+ // スパムブラックリスト [tsa_spam_champuru_hosts] 配列型
355
+ global $default_spam_champuru_hosts;
356
+ // スパムブラックリスト by テキスト [tsa_spam_chmapuru_by_text] 文字列型(カンマ区切り)
357
+ global $default_spam_champuru_by_text;
358
+
359
  global $error_type;
360
 
361
+
362
+ $spam_blacklist_hosts = get_option( 'tsa_spam_champuru_hosts', $default_spam_champuru_hosts );
363
+ $spam_blacklist_by_text = get_option( 'tsa_spam_champuru_by_text', $default_spam_champuru_by_text);
364
+
365
+ $spam_blacklist_by_text_lists = explode( ',', $spam_blacklist_by_text );
366
+ if ( count( $spam_blacklist_by_text_lists ) > 0 ) {
367
+ foreach ( $spam_blacklist_by_text_lists as $item ) {
368
+ $item = trim( $item );
369
+ }
370
+ }
371
+
372
+ global $default_spam_champuru_by_text;
373
+
374
+ $check_list = array_merge($spam_blacklist_hosts, $spam_blacklist_by_text_lists);
375
+
376
  $spam_def_ip = '127.0.0.2';
 
377
  $pattern = '/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/';
378
  $check_IP = trim( preg_match( $pattern, $ip ) ? $ip : $_SERVER['REMOTE_ADDR'] );
379
+ $spam = FALSE;
380
  if ( preg_match( $pattern, $check_IP ) ) {
381
+
382
+ // check
383
+ $i = 0;
384
+ while($i < count($check_list)){
385
+ $check = $ip . $check_list[$i];
386
+ $check = implode( '.',array_reverse( split( '\.',$check_IP ) ) ) . '.' . $check_list[$i];
387
+
388
+ $i ++;
389
+
390
+ $result = gethostbyname($check);
391
+
392
+ if ($result != $check) {
393
+ $spam = TRUE;
394
+ break;
 
 
 
395
  }
 
 
 
 
396
  }
397
  }
398
  if ( $spam ) {
399
+ $error_type = SPAM_BLACKLIST;
400
  return FALSE;
401
  }
402
  return TRUE;
483
  $tsa_spam_limit_count = intval( get_option( 'tsa_spam_limit_count', $default_spam_limit_count ) );
484
  if ( $spam_count > $tsa_spam_limit_count ) {
485
  // アウト!
486
+ $error_type = SPAM_LIMIT_OVER;
487
  return FALSE;
488
  }
489
  }
491
  $tsa_dummy_param_field_flg = get_option( 'tsa_dummy_param_field_flg', $default_dummy_param_field_flg );
492
  if ( $tsa_dummy_param_field_flg == '1') {
493
  if ( ! empty( $_POST['tsa_param_field_tsa_3'] ) ) { // このフィールドにリクエストパラメータが入る場合はスパム判定
494
+ $error_type = DUMMY_FIELD;
495
  return FALSE;
496
  }
497
  }
498
  // シングルバイトだけならエラー
499
  if ( $tsa_on_flg != '2' && strlen( bin2hex( $comment ) ) / 2 == mb_strlen( $comment ) ) {
500
+ $error_type = NOT_JAPANESE;
501
  return FALSE;
502
  } else {
503
  // 日本語文字列必須含有数
557
 
558
  $flg = ( $tsa_japanese_string_min_count < $count_flg );
559
  if ($flg == FALSE) {
560
+ $error_type = NOT_JAPANESE;
561
  return FALSE;
562
  }
563
  }
566
  $keyword_list = mb_split( ',', $tsa_ng_keywords );
567
  foreach ( $keyword_list as $key ) {
568
  if ( preg_match('/'.trim( $key ).'/u', $author.$comment) ) {
569
+ $error_type = NG_WORD;
570
  return FALSE;
571
  }
572
  }
588
  if ( $tsa_url_count_check != '2' ) {
589
  if ( substr_count( strtolower( $author.$comment ), 'http') > $tsa_ok_url_count) {
590
  // URL文字列(httpの数)が多いエラー
591
+ $error_type = URL_COUNT_OVER;
592
  return FALSE;
593
  }
594
  }
651
  global $default_ok_url_count;
652
  global $default_spam_champuru_flg;
653
 
654
+ global $default_spam_champuru_hosts;
655
+ global $default_spam_champuru_by_text;
656
+
657
  global $default_spam_limit_flg;
658
  global $default_spam_limit_minutes;
659
  global $default_spam_limit_count;
664
  global $default_spam_display_day_count;
665
  global $default_spam_keep_day_count;
666
 
667
+ global $lower_spam_keep_day_count;
668
+
669
+ global $spam_champuru_hosts;
670
+
671
  // 設定完了の場合はメッセージ表示
672
  $_saved = FALSE;
673
  if ( esc_attr( $_GET['settings-updated'] ) == 'true' ) {
798
  </td>
799
  </tr>
800
  <tr valign="top">
801
+ <th scope="row">
802
+ 日本語文字列含有数<br />
803
+ (この文字列に達していない場合無視対象となります。)
804
+ </th>
805
+ <td>
806
+ <input type="text" name="tsa_japanese_string_min_count"
807
  value="<?php echo get_option( 'tsa_japanese_string_min_count', $default_japanese_string_min_count ); ?>" /><br />
808
  (初期設定:<?php echo $default_japanese_string_min_count; ?>)
809
  </td>
953
  <h3 id="ip_opt">投稿IPアドレスによる制御設定</h3>
954
  <table class="form-table">
955
  <tr valign="top">
956
+ <th scope="row" rowspan="3">SPAMブラックリスト利用</th>
957
  <td><?php
958
  $chk = '';
959
  if ( get_option( 'tsa_spam_champuru_flg', $default_spam_champuru_flg) == '1' ) {
960
  $chk = ' checked="checked"';
961
  }
962
  ?>
963
+ <label><input type="checkbox" name="tsa_spam_champuru_flg" value='1' <?php esc_attr_e( $chk ); ?> />スパムブラックリストサービスに登録されているIPアドレスからのコメントを拒否する</label><br />
964
  (初期設定:<?php echo ( $default_spam_champuru_flg == '2' ? "しない" : "する" ); ?>)
965
  </td>
966
  </tr>
967
+ <tr>
968
+ <td>
969
+ <h4>下記の2つのリストはマージされて利用します。※多ければ多いほどトラッフィク量が上がりますので注意してください。</h4>
970
+ <strong>【利用するスパムブラックリストサービス】</strong><br />
971
+ <ul>
972
+ <?php
973
+ $spam_hosts = get_option( 'tsa_spam_champuru_hosts', $default_spam_champuru_hosts );
974
+
975
+ foreach ( $spam_champuru_hosts as $check_host ) { ?>
976
+ <li><input type="checkbox" name="tsa_spam_champuru_hosts[]" value="<?php echo $check_host; ?>"<?php
977
+ if ( in_array( $check_host, $spam_hosts ) ) { ?> checked="checked"<?php } ?>><?php echo $check_host; ?></li>
978
+ <?php } ?>
979
+ </ul>
980
+ </td>
981
+ </tr>
982
+
983
+ <tr>
984
+ <td>
985
+ <strong>【利用するスパムブラックリストサービスをテキスト入力(カンマ区切り)】</strong><br />
986
+ <input type="text" name="tsa_spam_champuru_by_text"
987
+ size="80"
988
+ value="<?php echo get_option( 'tsa_spam_champuru_by_text', $default_spam_champuru_by_text );?>" /><br />(初期設定:<?php echo $default_spam_champuru_by_text; ?>)
989
+
990
+ </td>
991
+ </tr>
992
  <tr valign="top">
993
  <th scope="row">WordPressのコメントで「スパム」にしたIPからの投稿にも採用する</th>
994
  <td><?php
1085
  <td>
1086
  <input
1087
  type="text" name="tsa_spam_keep_day_count" size="3"
1088
+ value="<?php echo get_option( 'tsa_spam_keep_day_count', $default_spam_keep_day_count); ?>" />日分(最低<?php echo $lower_spam_keep_day_count; ?>日)(初期設定: <?php echo $default_spam_keep_day_count; ?>)<br />&nbsp;
1089
  <?php
1090
  $chk = '';
1091
  if ( get_option( 'tsa_spam_data_delete_flg', $default_spam_data_delete_flg) == '1' ) {
1128
 
1129
  <input type="hidden" name="action" value="update" /> <input
1130
  type="hidden" name="page_options"
1131
+ value="tsa_on_flg,tsa_japanese_string_min_count,tsa_back_second,tsa_caution_message,tsa_caution_msg_point,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,tsa_url_count_on_flg,tsa_ok_url_count,tsa_url_count_over_error_message,tsa_spam_data_save,tsa_spam_limit_flg,tsa_spam_limit_minutes,tsa_spam_limit_count,tsa_spam_limit_over_interval,tsa_spam_limit_over_interval_error_message,tsa_spam_champuru_flg,tsa_spam_keep_day_count,tsa_spam_data_delete_flg,tsa_white_ip_addresses,tsa_dummy_param_field_flg,tsa_memo,tsa_spam_champuru_by_text,tsa_spam_champuru_hosts" />
1132
  <p class="submit" id="tsa_submit_button">
1133
  <input type="submit" class="button-primary"
1134
  value="<?php _e('Save Changes') ?>" />
1174
  } else {
1175
  if ( get_option( 'tsa_spam_data_save', $default_spam_data_save ) == '1' ) {
1176
  $spam_contents = array();
1177
+ $spam_contents['error_type'] = SPAM_TRACKBACK;
1178
  $spam_contents['author'] = mb_strcut( strip_tags( $author ), 0, 255 );
1179
  $spam_contents['comment'] = mb_strcut( strip_tags( $comment ), 0, 255 );
1180
 
1213
  */
1214
  function spams_list() {
1215
  global $wpdb;
1216
+ global $lower_spam_keep_day_count;
1217
  $_saved = FALSE;
1218
 
1219
  // ブラックIPリスト
1442
  // エラー変換
1443
  $spam_error_type_str = $spam_error_type;
1444
  switch ( $spam_error_type ) {
1445
+ case NOT_JAPANESE:
1446
  $spam_error_type_str = '日本語以外';
1447
  break;
1448
+ case MUST_WORD:
1449
  $spam_error_type_str = '必須キーワード無し';
1450
  break;
1451
+ case NG_WORD:
1452
  $spam_error_type_str = 'NGキーワード混入';
1453
  break;
1454
+ case BLOCK_IP:
1455
  $spam_error_type_str = 'ブロック対象IPアドレス';
1456
  break;
1457
+ case SPAM_BLACKLIST:
1458
+ $spam_error_type_str = 'スパムブラックリスト';
1459
  break;
1460
+ case SPAM_TRACKBACK:
1461
  $spam_error_type_str = 'トラックバックスパム';
1462
  break;
1463
+ case URL_COUNT_OVER:
1464
  $spam_error_type_str = 'URL文字列混入数オーバー';
1465
  break;
1466
+ case SPAM_LIMIT_OVER:
1467
  $spam_error_type_str = '一定時間スパム判定エラー';
1468
  break;
1469
+ case DUMMY_FIELD:
1470
  $spam_error_type_str = 'ダミー項目エラー';
1471
  break;
1472
  }
throws_spam_away.php CHANGED
@@ -4,7 +4,7 @@
4
  Plugin URI: http://gti.jp/tsa/
5
  Description: コメント内に日本語の記述が存在しない場合はあたかも受け付けたように振る舞いながらも捨ててしまうプラグイン
6
  Author: 株式会社ジーティーアイ さとう たけし
7
- Version: 2.6.4
8
  Author URI: http://gti.jp/
9
  License: GPL2
10
  */
@@ -31,7 +31,7 @@ require_once 'throws_spam_away.class.php';
31
  */
32
 
33
  // Throws SPAM Awayバージョン
34
- $tsa_version = '2.6.4';
35
  // スパムデータベースバージョン
36
  $tsa_db_version = 2.6; // 2.6からデータベース変更 [error_type]追加
37
 
@@ -94,12 +94,21 @@ $default_tb_on_flg = '1';
94
  $default_tb_url_flg = '1';
95
 
96
  /** 投稿IPアドレスによる制御設定 */
97
-
98
  // スパムちゃんぷるーホスト
99
- $spam_champuru_host = 'dnsbl.spam-champuru.livedoor.com';
 
 
 
 
 
 
 
100
 
101
  // すぱむちゃんぷるー利用初期設定
102
- $default_spam_champuru_flg = '1'; // "1":する
 
 
103
 
104
  // WordPressのcommentsテーブルで「spam」判定されたことがあるIPアドレスからの投稿を無視するか
105
  $default_ip_block_from_spam_chk_flg = '1'; // "1":する
@@ -116,10 +125,10 @@ $default_spam_data_save = '1';
116
  $default_spam_data_delete_flg = '1';
117
 
118
  // スパムデータ保持期間(日)
119
- $default_spam_keep_day_count = 30;
120
 
121
  // 最低保存期間(日)
122
- $lower_spam_keep_day_count = 7;
123
 
124
  // 機能設定
125
  $default_spam_limit_flg = '1';
@@ -165,6 +174,10 @@ $default_spam_limit_over_interval_error_msg = ''; // そしてその際のエラ
165
  // URL(単純に'http'文字列のチェックのみ)文字列許容数オーバー時に表示される文言(元の記事に戻ってくる時間の間のみ表示)
166
  // [tsa_url_count_over_error_message] 文字列型
167
 
 
 
 
 
168
 
169
 
170
  /** プロセス */
4
  Plugin URI: http://gti.jp/tsa/
5
  Description: コメント内に日本語の記述が存在しない場合はあたかも受け付けたように振る舞いながらも捨ててしまうプラグイン
6
  Author: 株式会社ジーティーアイ さとう たけし
7
+ Version: 2.6.5
8
  Author URI: http://gti.jp/
9
  License: GPL2
10
  */
31
  */
32
 
33
  // Throws SPAM Awayバージョン
34
+ $tsa_version = '2.6.5';
35
  // スパムデータベースバージョン
36
  $tsa_db_version = 2.6; // 2.6からデータベース変更 [error_type]追加
37
 
94
  $default_tb_url_flg = '1';
95
 
96
  /** 投稿IPアドレスによる制御設定 */
97
+ /** ver 2.6.5から */
98
  // スパムちゃんぷるーホスト
99
+ //$spam_champuru_host = 'dnsbl.spam-champuru.livedoor.com';
100
+ // すぱむちゃんぷるー代替リスト化
101
+ $spam_champuru_hosts = array("bsb.spamlookup.net", "bsb.empty.us", "list.dsbl.org", "all.rbl.jp");
102
+
103
+ $default_spam_champuru_hosts = array("bsb.spamlookup.net");
104
+
105
+ // スパムブラックリスト by テキスト
106
+ $default_spam_champuru_by_text = "";
107
 
108
  // すぱむちゃんぷるー利用初期設定
109
+ $default_spam_champuru_flg = '2'; // "2":しない
110
+
111
+ /** /2.6.5 */
112
 
113
  // WordPressのcommentsテーブルで「spam」判定されたことがあるIPアドレスからの投稿を無視するか
114
  $default_ip_block_from_spam_chk_flg = '1'; // "1":する
125
  $default_spam_data_delete_flg = '1';
126
 
127
  // スパムデータ保持期間(日)
128
+ $default_spam_keep_day_count = 15; /** 30 -> 15 */
129
 
130
  // 最低保存期間(日)
131
+ $lower_spam_keep_day_count = 3; /** 7 -> 3 */
132
 
133
  // 機能設定
134
  $default_spam_limit_flg = '1';
174
  // URL(単純に'http'文字列のチェックのみ)文字列許容数オーバー時に表示される文言(元の記事に戻ってくる時間の間のみ表示)
175
  // [tsa_url_count_over_error_message] 文字列型
176
 
177
+ // スパムブラックリスト [tsa_spam_champuru_hosts] 配列型
178
+ // スパムブラックリスト by テキスト [tsa_spam_chmapuru_by_text] 文字列型(カンマ区切り)
179
+
180
+
181
 
182
 
183
  /** プロセス */
uninstall.php ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*
3
+ Throws SPAM Awayプラグインアンインストール
4
+ 2.3 追加
5
+ 2.4 追記
6
+ 2.6 追記
7
+ */
8
+
9
+ if(!defined('ABSPATH') && !defined('WP_UNINSTALL_PLUGIN')) { exit(); }
10
+
11
+ delete_option('tsa_back_content_second'); // ver.1.6以下の方用
12
+ delete_option('tsa_on_flg');
13
+ delete_option('tsa_japanese_string_min_count');
14
+ delete_option('tsa_back_second');
15
+ delete_option('tsa_caution_message');
16
+ delete_option('tsa_error_message');
17
+ delete_option('tsa_ng_keywords');
18
+ delete_option('tsa_ng_key_error_message');
19
+ delete_option('tsa_must_keywords');
20
+ delete_option('tsa_must_key_error_message');
21
+ delete_option('tsa_tb_on_flg');
22
+ delete_option('tsa_tb_url_flg');
23
+ // ver.2.0
24
+ delete_option('tsa_ip_block_from_spam_chk_flg');
25
+ delete_option('tsa_block_ip_addresses');
26
+ delete_option('tsa_block_ip_address_error_message');
27
+ // ver.2.2
28
+ delete_option('tsa_url_count_on_flg');
29
+ delete_option('tsa_ok_url_count');
30
+ delete_option('tsa_url_count_over_error_message');
31
+ // ver.2.3
32
+ delete_option('tsa_meta_version');
33
+ delete_option('tsa_spam_data_save');
34
+ // ver.2.4
35
+ delete_option('tsa_spam_limit_flg');
36
+ delete_option('tsa_spam_limit_minutes');
37
+ delete_option('tsa_spam_limit_count');
38
+ delete_option('tsa_spam_limit_over_interval');
39
+ delete_option('tsa_spam_limit_over_interval_error_message');
40
+ // ver.2.5
41
+ delete_option('tsa_spam_champuru_flg');
42
+ delete_option('tsa_spam_keep_day_count');
43
+ delete_option('tsa_spam_data_delete_flg');
44
+ delete_option('tsa_white_ip_addresses');
45
+ // ver.2.5.1
46
+ delete_option('tsa_caution_msg_point');
47
+ // ver.2.6
48
+ delete_option('tsa_empty_param_field_flg');
49
+ delete_option('tsa_memo');
50
+
51
+ // ver.2.6.5
52
+ delete_option('tsa_spam_champuru_hosts');
53
+ delete_option('tsa_spam_champuru_host'); // 2.6.4まで使用
54
+ delete_option('tsa_spam_chmapuru_by_text');
55
+