Закрываем паролем папку на веб-сервере

Иногда возникает потребность запаролить папку на веб-сервере, сама по себе задача тривиальная, но бывает к сайту есть только ftp-доступ, полный путь к папке неизвестен, да вообще-то и знать его не хочется, но есть желание сделать это как-нибудь по-быстрее.

Для этой цели сделан скрипт, его достаточно закинуть по ftp в нужную папку, предварительно установив требуемые значения переменных $user и $password, выполнить и удалить. Обязательное условие - наличие прав на запись в выбранную директорию.

<?

$user = 'user';
$password = 'mypass';

$dir = getcwd();

if( ! is_writeable( $dir ) )
{
print 'directory is not writeable.';
exit;
}

$hta = $dir . '/.htaccess';
$htp = $dir . '/.htpasswd';

$fh = @fopen( $htp, 'a' );

if( ! $fh )
{
print '.htpasswd open error.';
exit ;
}

fwrite( $fh, $user . ':' . crypt( $password ) . "\n" );

fclose( $fh );

$fh = @fopen( $hta, 'a' );

if( ! $fh )
{
print '.htaccess open error.';
exit;
}

$s = "AuthType Basic\n" .
"AuthName Private\n" .
"AuthUserFile $htp\n" .
"Require valid-user\n";

fwrite( $fh, $s );

fclose( $fh );
?>

Если запись в папку нежелательна, то вот такой скрипт сгенерит содержимое файлов:


<pre>
<?
$user = '1';
$password = '1';

$dir = getcwd();

$htp = $dir . '/.htpasswd';

print "-- .htpasswd\n";
print $user . ':' . crypt( $password ) . "\n\n";

$s = "AuthType Basic\n" .
"AuthName Private\n" .
"AuthUserFile $htp\n" .
"Require valid-user\n";

print "-- .htaccess\n";
print $s;
?>
</pre>

Tags: ,

забобрить сохранить в memori

Leave a Reply

You must be logged in to post a comment.