Throws SPAM Away - Version 1.1

Version Description

NG

Download this release

Release Info

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

Code changes from version 1.0 to 1.1

Files changed (2) hide show
  1. readme.txt +7 -1
  2. throws_spam_away.php +24 -13
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: http://iscw.jp/
4
  Tags: comments, spam
5
  Requires at least: 3.1
6
  Tested up to: 3.2.1
7
- Stable tag: 1.0
8
 
9
  コメント内にマルチバイト文字が一つも存在しない場合あたかも受け付けたように振る舞いながらも無視
10
 
@@ -31,10 +31,16 @@ e.g.
31
 
32
  == Changelog ==
33
 
 
 
 
 
34
  = 1.0 =
35
  新規作成
36
 
37
  == Upgrade Notice ==
 
 
38
 
39
  = 1.0 =
40
  とりあえず作りました!
4
  Tags: comments, spam
5
  Requires at least: 3.1
6
  Tested up to: 3.2.1
7
+ Stable tag: 1.1
8
 
9
  コメント内にマルチバイト文字が一つも存在しない場合あたかも受け付けたように振る舞いながらも無視
10
 
31
 
32
  == Changelog ==
33
 
34
+ = 1.1 =
35
+ マルチバイト文字が存在していても日本語文字列を含まないとNGとするよう
36
+ 正規表現を入れて精査するように修正
37
+
38
  = 1.0 =
39
  新規作成
40
 
41
  == Upgrade Notice ==
42
+ = 1.1 =
43
+ 正規表現を使いロシア語や他のマルチバイト文字列を使用する言語からの攻撃に対応
44
 
45
  = 1.0 =
46
  とりあえず作りました!
throws_spam_away.php CHANGED
@@ -1,12 +1,12 @@
1
  <?php
2
  /*
3
- Plugin Name: Throws SPAM Away
4
- Plugin URI: http://iscw.jp/wp/
5
- Description: コメント内に日本語の記述が一つも存在しない場合はあたかも受け付けたように振る舞いながらも捨ててしまうプラグイン
6
- Author: 株式会社アイ・エス・シー さとう たけし
7
- Version: 1.0
8
- Author URI: http://iscw.jp/
9
- */
10
 
11
  class ThrowsSpamAway {
12
  var $version = '1.0';
@@ -18,29 +18,40 @@ class ThrowsSpamAway {
18
  echo '<div id="throwsSpamAway">';
19
  echo '日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)';
20
  echo '</div>';
21
- return true;
22
  }
23
 
24
  function comment_post($id) {
25
  global $newThrowsSpamAway;
26
  global $user_ID;
27
-
28
  if( $user_ID ) {
29
  return $id;
30
  }
31
-
32
  $comment = $_POST["comment"];
33
  if ($newThrowsSpamAway->validation($comment)) {
34
  return $id;
35
  }
36
  wp_die( __('日本語を含まない記事は投稿できませんよ。<script type="text/javascript">window.setTimeout(location.href = "'.$_SERVER['HTTP_REFERER'].'", 100);</script>', 'throws-spam-away'));
37
  }
38
-
39
- function validation($comment) {
 
 
 
 
 
40
  if (strlen(bin2hex($comment)) / 2 == mb_strlen($comment)) {
41
  return false;
42
  } else {
43
- return true;
 
 
 
 
 
 
44
  }
45
  }
46
  }
1
  <?php
2
  /*
3
+ Plugin Name: Throws SPAM Away
4
+ Plugin URI: http://iscw.jp/wp/
5
+ Description: コメント内に日本語の記述が一つも存在しない場合はあたかも受け付けたように振る舞いながらも捨ててしまうプラグイン
6
+ Author: 株式会社アイ・エス・シー さとう たけし
7
+ Version: 1.1
8
+ Author URI: http://iscw.jp/
9
+ */
10
 
11
  class ThrowsSpamAway {
12
  var $version = '1.0';
18
  echo '<div id="throwsSpamAway">';
19
  echo '日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)';
20
  echo '</div>';
21
+ return true;
22
  }
23
 
24
  function comment_post($id) {
25
  global $newThrowsSpamAway;
26
  global $user_ID;
27
+
28
  if( $user_ID ) {
29
  return $id;
30
  }
31
+
32
  $comment = $_POST["comment"];
33
  if ($newThrowsSpamAway->validation($comment)) {
34
  return $id;
35
  }
36
  wp_die( __('日本語を含まない記事は投稿できませんよ。<script type="text/javascript">window.setTimeout(location.href = "'.$_SERVER['HTTP_REFERER'].'", 100);</script>', 'throws-spam-away'));
37
  }
38
+
39
+ /**
40
+ * 日本語が含まれているかチェックメソッド
41
+ * @param string $comment
42
+ */
43
+ function validation($comment) {
44
+ // まずはシングルバイトだけならエラー
45
  if (strlen(bin2hex($comment)) / 2 == mb_strlen($comment)) {
46
  return false;
47
  } else {
48
+ // マルチバイト文字が含まれている場合は日本語が含まれていればOK
49
+ $flg = false;
50
+ mb_regex_encoding('UTF-8');
51
+ if (preg_match('/[一-龠]+/u', $comment)){ $flg = true; }
52
+ if (preg_match('/[ァ-ヶー]+/u', $comment)){ $flg = true; }
53
+ if (preg_match('/[ぁ-ん]+/u', $comment)){ $flg = true; }
54
+ return $flg;
55
  }
56
  }
57
  }