Пароль на страницу вашего сайта

Файловые, p2p и прочие серверы

Re: Пароль на страницу вашего сайта

Сообщение On-line » 06 ноя 2008, 22:34

Rostov114 писал(а):
On-line писал(а):И топсервер. 8)

Млять Apache ведь стоит...

Стоит 8) Путь не такой :D
Аватара пользователя
On-line
Активный участник
 
Сообщения: 1083
Зарегистрирован: 31 окт 2008, 23:54
Домен: http://vbalashove.ru

Re: Пароль на страницу вашего сайта

Сообщение On-line » 27 фев 2009, 21:55

Короче вопрос, может кто знает...
Нужно, чтобы доступ к сайту был по паролю.

Я сделал так:
В файле .htaccess написал:
Код: Выделить всёРазвернуть
DirectoryIndex phpruauth.php
<Files config.inc>
order allow,deny
deny from all
</Files>

Далее создал файл config.inc со следующем содержимом:
Код: Выделить всёРазвернуть
<?
$SERVER = 'domain.vfose.ru';
$LOGIN = "admin";
$PASSWORD = "pass";
$ERROR = "<CENTER><BR><FONT COLOR=RED><B>Неверный логин или пароль.<BR>ДОСТУП  ЗАКРЫТ!";
$MAIL = "admin@mail.ru";
?>

Ну и конечно создал файл phpruauth.php со следующем содержимом:
Код: Выделить всёРазвернуть
<?
session_name("ADMIN_SESS");
session_start();
session_register("access","no_access");
?>

<HTML>
<HEAD>
<TITLE>Администрирование</TITLE>
<LINK href="phpru.css" type=text/css rel=stylesheet>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
</HEAD>
<CENTER>
<?

include ('config.inc');

$ip = getenv("REMOTE_ADDR");
$br = getenv("HTTP_USER_AGENT");
$ref = getenv("HTTP_REFERER");

/* проверяем с родного-ли хоста пришли данные */
$host = getenv("SERVER_NAME");
   if (!ereg("$SERVER",$host))
      {
         if (isset($access))
            $access++;
         else
            $access = 1;
         if (($access == 1) or ($access == 10))
         { SendEmail($ip,$br,$ref,$access); }
         echo "<BR><BR><CENTER><B><P><FONT COLOR=RED>Доступ закрыт!<BR>Вход только через <A HREF='".$SERVER."'>".$SERVER.'</A></BODY></HTML>';
         exit;
      }
/* выход, уничтожение сессии и переменных*/
if (isset($out))
   {
      session_destroy();
      session_unset();
      unset($out);
?>
<script language="JavaScript">window.location="http://<?=$SERVER?>"</script>
<?
      exit;
   }

session_register("sess_login","sess_pass");

if (isset($admin))
{
   $sess_login = md5(trim($login));
   $sess_pass = md5(trim($password));
   ValidPass($sess_login,$sess_pass);
}
else
{
   if (isset($no_access))
         {
            $no_access++;
            if ($no_access == 4)
               SendEmail($ip, $br, $ref, $access);
            if ($no_access < 4)
               ShowAdmin();
         }
   else
         {
            $no_access = 1;
            ShowAdmin();
         }
}

/* -------------------------------------------------------------------------------- */

function ShowAdmin()
{
   
?>
<CENTER><BR>
<FORM METHOD=POST>
<P><B>Вход для администратора:</B><BR><BR>
Логин <INPUT TYPE='TEXT' SIZE=11 MAXLENGTH=12 NAME='login'>
&nbsp;Пароль <INPUT TYPE='PASSWORD' SIZE=11 MAXLENGTH=12 NAME='password'> &nbsp;
<INPUT TYPE='submit' NAME='admin' VALUE='Ok' class=but 
style="width:24px;cursor:hand;" onmouseover="this.style.backgroundColor='LIGHTYELLOW';" onmouseout="this.style.backgroundColor='transparent';">
</FORM><BR>
</BODY>
</HTML>
<?
}

/* -------------------------------------------------------------------------------- */

function ValidPass($sess_login,$sess_pass)
{
   
   if (($sess_login === md5(trim($GLOBALS["LOGIN"]))) && ($sess_pass === md5(trim($GLOBALS["PASSWORD"]))))
      {
         ShowArea();
         return array ($sess_login,$sess_pass);
      }
   else
      {
         error($GLOBALS["ERROR"]);
         return;
      }
}

/* -------------------------------------------------------------------------------- */

function ShowArea()
{
   ?>

<A HREF='?out'>Выход</A>
<BR>Тут инфа<BR>
   <?
}

/* -------------------------------------------------------------------------------- */

function SendEmail($ip,$br,$ref,$access)
{
   $Headers = "Content-Type: text/plain; charset=windows-1251\nFrom: nobody\n";
   $Headers .= "X-Sender: <robot@".$GLOBALS["SERVER"].">\n";
   $Headers .= "X-Mailer: PHP4\n";
   $Headers .= "X-Priority: 1\n";
   $Headers .= "Content-Type: text/plain; charset=windows-1251\n";
   if ($access == 1)
      $how_mach = " предпринята попытка ";
   else
      $how_mach = " неоднократные попытки ";
   $Message = date("d.m.Yг. в G:i:s").$how_mach."несанкционированного доступа со стороннего сервера:\nip - ".$ip."\nбраузер - ".$br."\nreferer - ".$ref;
   @mail($GLOBALS["MAIL"],
   'Серьезные проблемы!',
   $Message,
   $Headers);
}

/* -------------------------------------------------------------------------------- */

function error($ERROR)
{
   echo $ERROR;
}

?>
</BODY>
</HTML>

Все работает, но если в браузере написать например: http://domain.vfose.ru/help.html то спокойно открывается файл help.html
Как мне сделать, чтобы был запаролен весь сайт http://domain.vfose.ru/ ???
Аватара пользователя
On-line
Активный участник
 
Сообщения: 1083
Зарегистрирован: 31 окт 2008, 23:54
Домен: http://vbalashove.ru

Re: Пароль на страницу вашего сайта

Сообщение Костик » 27 фев 2009, 22:11

On-line сделал как то все сложно, достаточно в корень папки где лежат страницы положить .htaccess с авторизацией и всё
FreeBSD 9.2 and Fedora 18 user
Аватара пользователя
Костик
Активный участник
 
Сообщения: 1944
Зарегистрирован: 03 сен 2007, 02:15

Re: Пароль на страницу вашего сайта

Сообщение Rostov114 » 27 фев 2009, 22:20

Костик писал(а):On-line сделал как то все сложно, достаточно в корень папки где лежат страницы положить .htaccess с авторизацией и всё

Во-во..бред какой то...
Некоммерческий проект «HSDN»
Аватара пользователя
Rostov114
Автор
 
Сообщения: 3198
Зарегистрирован: 18 окт 2007, 02:21

Re: Пароль на страницу вашего сайта

Сообщение Conteo » 27 фев 2009, 22:57

Про бейсик-авторизацию костег писал тут (имхо самый простой и удобный способ)
Если нужно ограничить доступ непосредственно к определенной странице, то где то я тут уже постил эту штуку...
Изображение
Пользователи федоры - как тараканы. Слабые духом и нервами давно вымерли, а оставшихся в живых уже ничем не взять.
Аватара пользователя
Conteo
Активный участник
 
Сообщения: 1813
Зарегистрирован: 14 мар 2008, 13:21
Откуда: Саратов, Заводской район
Домен: http://conteo.vfose.ru

Пред.

Вернуться в Прочие серверы и сетевые технологии

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 23

cron