apacheなどのWEBサーバーを運用さしているときにプライベートのサーバーだと外部からのアクセスがあるとあまり宜しくない時がある。
その時は
order deny,allow
deny from all
で全部を拒否さして
allow from xxx.xxx.xxx.xxx
などで個別にアクセス出来るようにすると非常に安全になる。
でもIPが定まらないときすごくめんどくさい。
どうしようかなと思ったら.htaccessにPHPから追加出来ることがわかった。
これだと特定のディレクトリのURLにアクセスすることで、Apache全体にアクセス許可を与える事になってセキュリティがアップする。
簡単に言うと
http://yoursite.com/
にアクセス
403エラーForbidden あなたがアクセスしたページはインターネット上に存在はするが閲覧することが許可されていません。
↓
http://yoursite.com/allowaccess.php
にアクセス
200 アクセス許可を与えました!
↓
http://yoursite.com/
にアクセス
200 成功 ようこそ!
となる
これを応用してWordpressのログイン画面のwp-login.phpだけのアクセスを制限さしたり出来る。
特定のファイルだけアクセス制限したい場合は
すでにある.htaccessに
<Files wp-login.php>
Order deny,allow
Deny from all
</Files>
を最後に追加しましょう。
ディレクトリ全部の場合は
order deny,allow
deny from all
だけでいいです。でもその場合違うサブディレクトリを新しく作ってそこの.htaccessで
allow from all
をしてあげてね
アクセス権限を与えるやり方
ホームディレクトリの
.htaccess
# BEGIN WordPress &amp;lt;IfModule mod_rewrite.c&amp;gt; RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] &amp;lt;/IfModule&amp;gt; # END WordPress &amp;lt;Files wp-login.php&amp;gt; Order deny,allow Deny from all allow from 101.140.66.155 &amp;lt;/Files&amp;gt;
と同じディレクトリに新規でファイルを作成
allowaccess.php
&amp;lt;?php $file = dirname(__FILE__) . "/.htaccess"; // 一つ上のディレクトリなら /../.htaccess です。 $remainLastLetter = 8; // 最後に&amp;lt;/Files&amp;gt;などある場合は8を入力して文字を保護をしてください。 if (! file_exists($file)) { exit(".htaccessファイルが存在しないかアクセスできません。"); } $ip = $_SERVER["REMOTE_ADDR"]; $addAllowIP = "allow from " . $ip; $originalHtaccess = file_get_contents($file); if (strpos($originalHtaccess, $addAllowIP) !== false) { exit("すでにIPが登録されています。"); } $lastLetters = ""; if ($remainLastLetter &amp;gt; 0) $lastLetters = substr($originalHtaccess, - $remainLastLetter); $startLetters = substr($originalHtaccess, 0, strlen($originalHtaccess) - $remainLastLetter); $newHtaccess = $startLetters . $addAllowIP . "\n" . $lastLetters; if (file_put_contents($file, $newHtaccess)) { echo $ip . "のアクセス許可を与えました"; } else { exit(".htaccessファイルの書き込みに失敗しました。アクセス権を確認してください。"); }
上をコピーして貼り付けてください。
自作なので汚くてすいません。
$remainLastLetterと$file は適宜変更してください。
これでhttp://yoursite.com/allowaccess.phpにアクセスするだけでアクセス権を得られてセキュリティがアップします!
※↑のPHPファイルと.htaccessファイルがおかしいのでサーバーにアップロードしました。
→こちらからダウンロード