15 Февраль 2009  posted by admin

Сначала проведу ликбез по применению .htaccess.
Очень нужное использование файла .htaccess -запрет для прочтения извне файлов(например, конфигов.).

Options -Indexes
deny from all

закрыть доступ для определённых IP, используя .htaccess
Options -Indexes
deny from 127.0.0.1

закрыть доступ для диапазона (127.0.0.*) IP, используя .htaccess
Options -Indexes
deny from 127.0.0.

Переопределение стартовой страницы сайт или папки с помощью .htaccess
DirectoryIndex somefile.php

Теперь мы подошли к главному – ограничение доступа через .htaccess.
Чтобы знать, что ограничивать, нам нужно узнать путь, который мы и запишем в .htaccess .
Для этого можно использовать простейший скрипт:
<_?_php
$path = str_replace (’\\’, ‘/’, getcwd () );
echo $path;
?>
На экране появиться путь, который мы будем использовать в .htaccess.
Теперь нам нужно сгененрировать файл .htpasswd, который имеет многострочный формат вида
логин:пароль
логин2:пароль2
Только пароль не простой, а зашифрованный.
Скрипт генерации зашифрованного пароля для .htpasswd на PHP выглядит так:
$pass = “pass”;
$pass = crypt ($pass,’sol :) ’);
echo $pass;

Для самого закрытия доступа подозрительным личностям, не знающим пароля в .htaccess должно быть следующее:

AuthType basic
AuthName ‘Authorization…’
AuthUserFile ‘путь до passwd_на_сервере/.htpasswd’
Require valid-user

Ага. Путь мы знаем. Пароль тоже. Осталось придумать имя пользователя.
// включай мозг, %username%.
О точно. Имя пользователя – username.

Имем
<_?php
Echo PHP_OS;
function r($r) {

if (substr(PHP_OS, 0, 3) == 'WIN') return $r;
return crypt($r, 'hts_random-'.mt_rand(1,9999));
}
$path = str_replace ('\\', '/', getcwd () );
$path = substr ($path,strpos($path,':')+1 );
$users=array();
$users['000']='000';
$users['sasha']='NoPass';
foreach ($users as $name=>$pass) $users[$name]=r($pass);
$result='';
foreach ($users as $name=>$pass) $result.=$name.':'.$pass."\n";
$result=substr($result, 0, -1);
echo '<pre>'.$result.'</pre>';
file_put_contents($path.'/.htpasswd',$result);
$hta=''.
"AuthType basic
AuthName 'Authorization...'
AuthUserFile '{$path}/.htpasswd'
Require valid-user";
echo '<br>'.nl2br($hta);
file_put_contents($path.'/.htaccess',$hta);
?>


Leave a Reply

CAPTCHA image

 
Хостинг сайта: EOMY.NET