【WEB】WordPressのセキュリティインストール

※Web関連のプログラム等を作成の備忘録的なものになります。

※Wordpressのバージョンを最新にする、セキュリティ対策のプラグインを導入する、などのインストール後の作業も必要になります。

※今回紹介する内容をすべて設定したからと言って100%安全になるわけではありません。

 


1.テーブルの接頭辞に「wp_」を使用しない

2.ユーザ名に「admin」や「root」などを使用しない

3.「wp-config.php」の保存場所移動/アクセス権の変更「400」

●ルートにWordpressを設置する場合は一つ上に移動させる

●ルートでない場合は表示領域(htdocsやwwwなど)の一つ上まで移動させる

※Wordpressのバージョンアップなどで書き換えられる場合があるので注意する

■「wp-load.php」を修正

###############################################################

# 改修例(2つ上に移動させる場合/1つ上に移動させる場合はデフォルトで設定されているため変更なし):下記を追加

###############################################################

} elseif ( @file_exists( dirname( dirname( ABSPATH ) ) . ‘/wp-config.php’ ) ) {

require_once( dirname( dirname( ABSPATH ) ) . ‘/wp-config.php’ );

###############################################################

■「.htaccess」を修正

###############################################################

# 改修例(何らかの要因で移動ができない場合):下記を追加

###############################################################

<files wp-config.php>

order allow,deny

deny from all

</files>

###############################################################

4.「wp-content」ディレクトリの移動とディレクトリ名称を変更

■「wp-config.php」を修正

###############################################################

# 修正例(wordpress-up-contentは適当なフォルダ名に変更してください)

# デフォルトの「/* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */」の下の行辺りに追加

###############################################################

define( ‘WP_CONTENT_DIR’, ‘/xxxxxxxx/htdocs/wordpress-up-content’ );

define( ‘WP_CONTENT_URL’, ‘http://xxxxxxxx/wordpress-up-content’);

###############################################################

5.「plugins」のディレクトリ名称を変更

■「wp-config.php」を修正

###############################################################

# 修正例(add_insは適当なフォルダ名に変更してください)

# 4の修正例の下の行辺り

###############################################################

define( ‘WP_PLUGIN_DIR’, ‘/xxxxxxxx/htdocs/wordpress-up-content/add_ins’ );

define( ‘PLUGINDIR’, ‘/xxxxxxxx/htdocs/wordpress-up-content/add_ins’ );

define( ‘WP_PLUGIN_URL’, ‘http://xxxxxxxx/wordpress-up-content/add_ins’);

###############################################################

6.アップロードディレクトリの変更

■「wp-config.php」を修正

###############################################################

# 修正例(up_mediaは適当なフォルダ名に変更してください)

# 5の修正例の下の行辺り

###############################################################

define( ‘UPLOADS’, ‘up_media’ );

###############################################################

7.ログインアドレスを変更

■ログイン用ファイル「****.php」を作成(ファイル名はなんでもよい)

###############################################################

# ANYWHERE_LOGINの値はなんでもよい

# 配置がwordpressのルートディレクトリでの例

###############################################################

<?php

define( ‘ANYWHERE_LOGIN’, sha1( ‘Cs&9vuL67,@|UoR5}|=?mm>o$:R+x1TqX|Z8q t@={YeU+3z.8&1pUT[JNZ-W-c;’ ) );

require_once ‘./wp-login.php’;

?>

###############################################################

■functions.phpを変更

###############################################################

#「wp-content/themes/{テーマ名}/functions.php」の一番下の行に追加

# ANYWHERE_LOGIN_PAGEはログイン用ファイル名(サンプルではwordpress-login.php)

# ANYWHERE_LOGINはログイン用ファイルで入力した文字列(サンプルではCs&9vuL67,@|UoR5}|=?mm>o$:R+x1TqX|Z8q t@={YeU+3z.8&1pUT[JNZ-W-c;)

###############################################################

/**
* ログインページの変更
*/
define( ‘ANYWHERE_LOGIN_PAGE’, ‘wordpress-login.php’ );
add_action( ‘login_init’, ‘anywhere_login_init’ );
add_filter( ‘site_url’, ‘anywhere_login_site_url’, 10, 4 );
add_filter( ‘wp_redirect’, ‘anywhere_login_wp_redirect’, 10, 2 );
if ( ! function_exists( ‘anywhere_login_init’ ) ) {
function anywhere_login_init() {
if ( !defined( ‘ANYWHERE_LOGIN’ ) || sha1( ‘Cs&9vuL67,@|UoR5}|=?mm>o$:R+x1TqX|Z8q t@={YeU+3z.8&1pUT[JNZ-W-c;’ ) != ANYWHERE_LOGIN ) {
status_header( 403 );
exit;
}
}
}
if ( ! function_exists( ‘anywhere_login_site_url’ ) ) {
function anywhere_login_site_url( $url, $path, $orig_scheme, $blog_id ) {
if ( ( $path == ‘wp-login.php’ || preg_match( ‘/wp-login\.php\?action=\w+/’, $path ) ) &&
( is_user_logged_in() || strpos( $_SERVER[‘REQUEST_URI’], ANYWHERE_LOGIN_PAGE ) !== false ) )
$url = str_replace( ‘wp-login.php’, ANYWHERE_LOGIN_PAGE, $url );
return $url;
}
}
if ( ! function_exists( ‘anywhere_login_wp_redirect’ ) ) {
function anywhere_login_wp_redirect( $location, $status ) {
if ( strpos( $_SERVER[‘REQUEST_URI’], ANYWHERE_LOGIN_PAGE ) !== false )
$location = str_replace( ‘wp-login.php’, ANYWHERE_LOGIN_PAGE, $location );
return $location;
}
}
###############################################################

 


 

この設定で、本来見せない方がよい場所をデフォルトの設定から変更することで、多少は分かり辛い作りにすることができます。

※この設定はいくつかのサイトを参考にしております。

 

Share

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Optionally add an image (JPEG only)