WordPressのセキュリティ対策(クロスサイトスクリプティング)

2013/10/01

オープンソースになっているWEB関係のプログラムはセキュリティ上の問題点も
発覚しやすく、早く見つけたものによって攻撃されやすい。
大体は多く出回っているCMSをターゲットにされているので、WordPressやMovaTypeが多い。

WordPressも当サイトにおいて、ディレクトリ『wp-admin』にBASIC認証のパスワードを置いて
防護している。基本的に管理関係が動くphpファイルがディレクトリ『wp-admin』下に置かれているからです。

.htaccessに下記の通り書いて、ディレクトリ『wp-admin』に設置すればOKです。
.htpasswdは別途作成して安全なディレクトリに設置してください。
直接アクセスできない所が理想なので、できればWEB公開ディレクトリより上位ディレクトリに設置しユーザーがアクセスできないようにするのが理想です。

【.htaccess】
[html]order allow,deny
allow from all
Authname "For Members"
Authtype Basic
AuthUserFile /どこかのディレクトリ/.htpasswd
require valid-user[/html]

ただ、1つ問題はこれだとクロスサイトスクリプティングを使った、
コメント投稿を防げないんですよね。(コメント投稿不可にしてても届きます。)
SPAMを防ぐ為に、コメント自体は認証制にしているので、一応実害は出ていないのですが。

最近、アクセスログを見ていると・・・
/wp-login.php?registration=disabled
/wp-login.php?action=register
/wp-login.php?registration=disabled
/wp-login.php

っと、攻撃してきているログを見かけます。
基本的にクロスサイトスクリプティングを使った、
WordPressの新規ユーザー追加とログインパスワードを
忘れたユーザーにパスワードを送るのを狙った攻撃みたいです。

基本的にディレクトリ『wp-admin』にパスワードをかけておけば
これは防げているはずなのですが、気持ちが悪いのでディレクトリ『wp-admin』の
.htaccessを書き換えました。
下記で記載しているのは、有名なSPAMを送ってきたりするドメイン名やIPアドレスです。
ドメインとIPアドレスでアクセス不可にしています。
deny from 【アクセス拒否したいドメイン・IPアドレス】
ここのdeny fromを増やしていけば数は増やせます。

【例:deny from】
deny from aaa.co
このように記載すると、実際には *aaa.co* となり
プログラムをしないひとにはわからないとは思いますが、
*がどんな文字でも何文字でもOKという意味で、
結果、ドメイン名の中にaaa.coがあればはじいてくれます。
そのドメインから来たPCをすべてはじく時に便利です。

【.htaccess】
[html]order allow,deny
allow from all
deny from kimsufi.com
deny from vpn999.co
deny from 163data.com.cn
deny from ioflood.com
deny from 5.135.178.124
deny from 120.36.227.26
deny from 173.0.52.18
deny from 173.0.57.21
deny from 176.31.182.17
deny from 184.154.97.3
deny from 184.154.111.102
deny from 199.180.134.118
deny from 199.30.53.250
deny from 218.6.70.198
Authname "For Members"
Authtype Basic
AuthUserFile /どこかのディレクトリ/.htpasswd
require valid-user[/html]

Column

Posted by web-atelier.jp