<?php if ( !defined( 'ABSPATH' ) ) exit;//PHPの宣言と直接アクセスの拒否

/***** ログインセキュリティ *****/
/* get_option GetOP01_security() */

/* ログインにユーザー名を使用しない */
if(isset( GetOP01_security()['use-login-forced-email'] ) && GetOP01_security()['use-login-forced-email'] == 1 ){
require_once (__DIR__ .'/user-security/login-forced-email/login-forced-email.php');
}

/* ログインヒントを書き換える */
if(isset( GetOP01_security()['change-login-hints'] ) && GetOP01_security()['change-login-hints'] == 1 ){
require_once (__DIR__ .'/user-security/change-login-hint/change-login-hint-functions.php');
}

/* 計算チェック */
if(isset( GetOP01_security()['login-math-check'] ) && GetOP01_security()['login-math-check'] == 1 ){
require_once (__DIR__ .'/user-security/math-check/math-check-functions.php');
}

/* ログインの試行回数制限 */
if(isset( GetOP01_security()['login-attemps'] ) && GetOP01_security()['login-attemps'] == 1 ){
require_once (__DIR__ .'/user-security/limit-login-attenpt/limit-login-attenpt-functions.php');
}

/* 「ログイン状態を保存する」を無効にする */
if(isset( GetOP01_security()['disable-rememberme'] ) && GetOP01_security()['disable-rememberme'] == 1 ){
require_once (__DIR__ .'/user-security/diaable-rememberme/disable-rememberme.php');
}

/* ログインログ */
if(isset( GetOP01_security()['record-login-history'] ) && GetOP01_security()['record-login-history'] == 1 ){
require_once (__DIR__ .'/user-security/login-log/login-log.php');
}

/* 最終ログイン日時 */
if(isset( GetOP01_security()['user-last-login-datetime'] ) && GetOP01_security()['user-last-login-datetime'] == 1 ){
require_once (__DIR__ .'/user-security/last-login-time/last-login-time.php');
}

/* ユーザースラグ変更 */
if(isset( GetOP01_security()['use-change-author-slug'] ) && GetOP01_security()['use-change-author-slug'] == 1 ){
require_once (__DIR__ .'/user-security/change-author-slug/change-author-slug.php');
}

/* 使用できないユーザー名を設定 */
if(isset( GetOP01_security()['banned-registration-username'] ) && GetOP01_security()['banned-registration-username'] == 1 ){
require_once (__DIR__ .'/user-security/restrict-regist-user-name/restrict-regist-user-name-functions.php');
}

/* ユーザー名の最低文字数指定 */
if(isset( GetOP01_security()['minimun-username-length'] ) && GetOP01_security()['minimun-username-length'] == 1 ){
require_once (__DIR__ .'/user-security/restrict-regist-username-length/restrict-regist-username-length-functions.php');
}

/* ログインをサイトメールアドレスへ通知 */
if(isset( GetOP01_security()['is-use-login-notice-for-admin'] ) && GetOP01_security()['is-use-login-notice-for-admin'] == 1 ){
require_once (__DIR__ .'/user-security/login-notice/login-mail-for-admin-functions.php');
}

/* ログインをユーザーへ通知 */
if(isset( GetOP01_security()['is-use-login-notice-for-user'] ) && GetOP01_security()['is-use-login-notice-for-user'] == 1 ){
require_once (__DIR__ .'/user-security/login-notice/login-mail-for-user-functions.php');
}

/*** 特定のIP以外から管理画面へのアクセスを禁止する ***/
require_once (__DIR__ .'/user-security/restrict-admin-access-by-ip/functions.php');

/***** サイトセキュリティ *****/
/* get_option GetOP02_security() */

/* テーマフォルダ内のファイル変更ログ */
if( isset( GetOP02_security()['theme-file-change-log'] ) && GetOP02_security()['theme-file-change-log'] == 1 ){
require_once (__DIR__ .'/site-security/theme-file-change-log/functions.php');
}

/* ファイル変更通知 */
if( isset( GetOP02_security()['theme-plugin-file-change-notice'] ) && GetOP02_security()['theme-plugin-file-change-notice'] == 1 ){
require_once (__DIR__ .'/site-security/file-change-notice/functions.php');
}

/* /?author=IDでのアクセスを404ページへ遷移させる */
if( isset( GetOP02_security()['disable-author-page-id-access'] ) && GetOP02_security()['disable-author-page-id-access'] == 1 ){
require_once (__DIR__ .'/site-security/author-page-id-param-to-404/functions.php');
}

/* XML RPCを無効 */
/*** コード内で無効化でのコード削除をするためここでは読み込むだけ ***/
require_once (__DIR__ .'/site-security/disable-xml-rpc/disable-xml-rpc.php');

/* 必要外のREST APIを無効にする */
if( isset( GetOP02_security()['restrict-rest-api'] ) && GetOP02_security()['restrict-rest-api'] == 1 ){
require_once (__DIR__ .'/site-security/restrict-rest-api/restrict-rest-api.php');
}

/* ソースのCSS/JS読み込みタグからバージョンを削除する */
if( isset( GetOP02_security()['delete-html-wp-version'] ) && GetOP02_security()['delete-html-wp-version'] == 1 ){
require_once (__DIR__ .'/site-security/remove-cssjs-wp-version/remove-cssjs-wp-version-function.php');
}

/* ソースからGeneratorタグを削除 */
if( isset( GetOP02_security()['delete-generator-tag'] ) && GetOP02_security()['delete-generator-tag'] == 1 ){
require_once (__DIR__ .'/site-security/remove-generator/remove-generator-function.php');
}

/* 公式配布されていないプラグイン、2年以上更新のないプラグインへの警告 */
if( isset( GetOP02_security()['plugin-secuity-info'] ) && GetOP02_security()['plugin-secuity-info'] == 1 ){
require_once (__DIR__ .'/site-security/plugin-security-check/functions.php');
}

/***** .htaccessによるセキュリティ対策 *****/
/*** コード内で無効化でのコード削除をするためここでは読み込むだけ ***/
/* 悪意のあるボット・スクリプトをブロックする */
require_once (__DIR__ .'/site-security/deny-bad-bot-access/functions.php');
/* wp-admin/includes/ への直接アクセスをブロック */
require_once (__DIR__ .'/site-security/deny-admin-includes-access/functions.php');
/* wp-includes/--.php への直接アクセスをブロック */
require_once (__DIR__ .'/site-security/deny-wp-includes-files-access/functions.php');
/* 不正なクエリ文字列をブロック */
require_once (__DIR__ .'/site-security/deny-bad-query-strings-access/functions.php');
/* wp-config.phpへの直接アクセスを拒否 */
require_once (__DIR__ .'/site-security/disable-wp-config-direct-access/functions.php');



/* WordPressで直接改ざんされる可能性のあるファイルの監視 */
if( isset( GetOP02_security()['core-file-change-notice'] ) && GetOP02_security()['core-file-change-notice'] == 1 ){
require_once (__DIR__ .'/site-security/core-file-change-check/functions.php');
}

/***** スパム対策 *****/
/* get_option GetOP03_security() */

/* コメントスパム対策 */
if( isset( GetOP03_security()['comment-anti-spam'] ) && GetOP03_security()['comment-anti-spam'] == 1 ){
require_once (__DIR__ .'/spam/comment-anti-spam/comment-anti-spam-functions.php');
}

/* コメントの自動削除 */
if( isset( GetOP03_security()['auto-delete-comments-with-url'] ) && GetOP03_security()['auto-delete-comments-with-url'] == 1 ){
require_once (__DIR__ .'/spam/auto-delete-comments-with-url/functions.php');
}

/* ユーザー登録スパム対策 */
if( isset( GetOP03_security()['user-register-anti-spam'] ) && GetOP03_security()['user-register-anti-spam'] == 1 ){
require_once (__DIR__ .'/spam/user-register-anti-spam/user-register-anti-spam-functions.php');
}

/* ブルートフォースアタック対策 */
if( isset( GetOP03_security()['brute-force-proof'] ) && GetOP03_security()['brute-force-proof'] == 1 ){
require_once (__DIR__ .'/spam/brute-force-proof/brute-force-proof-functions.php');
}

/*** IPアドレスによるアクセスのブロック ***/
if( isset( GetOP03_security()['use-ip-block'] ) && GetOP03_security()['use-ip-block'] == 1 ){
require_once (__DIR__ .'/spam/access-block-by-ip-range/functions.php');
}

/***** 常時SSL通信 *****/
/* get_option GetOP04_security() */

/* 301redirection */
/*** コード内で無効化でのコード削除をするためここでは読み込むだけ ***/
require_once (__DIR__ .'/ssl/force-ssl/force-ssl-functions.php');

/* セキュリティヘッダーの追加 */
if( isset( GetOP04_security()['use-security-header'] ) && GetOP04_security()['use-security-header'] == 1 ){
require_once (__DIR__ .'/ssl/security-header/security-header-functions.php');
}