Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум о хостинге в Украине _ Раскрутка сайтов _ Способы заблокировать доступ к сайту или его части...

Автор: AcTEpi_X 17.9.2008, 13:45

Прошлое мое знакомство с http://karman.com.ua/forum/topic9786s0.html прошло удачно. Но есть у меня и дургой сайт, на котором я хочу закрыть от посторонних некоторые папки. Знаю что через .htaccess делается это так:
Order Allow,Deny
Allow from all
Deny from xxx.xxx.xxx.xxx

где xxx.xxx.xxx.xxx - это ip-адрес компьютера, которому запрещается доступ. Возможно также указывать доменное имя. В директивах Deny и Allow можно перечислять через пробел ip или доменные имена. Директива Order определяет последовательность применения директив Allow и Deny, т.е. "Order Allow,Deny" сначала разрешит доступ тем, кто упомянут в директиве Allow, затем запретит тем, кто упомянут в Deny. Если стоит задача обеспечить доступ только с определенного компьютера, то следует давать такие директивы в .htaccess:
Order Deny,Allow
Deny from all
Allow from xxx.xxx.xxx.xxx

Также возможно закрыть папки с директадмин и цПанель. Первый вариант не подходит, потомучто сайт на бесплатном хостинге, и нету поддержки файлов htaccess. Второй тоже, есть только данные от FTP.

Автор: Aladdin 17.9.2008, 14:46

В таком хитром случае можно написать ограничения программно. В РНР, например, можно в самом начале скрипта написать такое:

Код
<?php

if(getenv ("REMOTE_ADDR") == "xxx.xxx.xxx.xxx")
{
  echo "Бесконечно любимый пользователь, для вас доступ запрещен :)!";
  exit;
}

php?>


где xxx.xxx.xxx.xxx - это ip-адрес компьютера, которому запрещается доступ.

Автор: Aladdin 17.9.2008, 15:11

На РНР можно еще ограничить доступ по логину и паролю такой вот простенькой програмулиной, которую тоже можно вставить в самом верху скриптов всех:

Код
<?php

if(!$login) $login = $_REQUEST[login];
if(!$pass) $pass = crypt($_REQUEST[pass], "1a"); // http://www.karman.com.ua рекомендует шифровать пароли :)

// Это конечно же берется из базы, но мы типа без базы вручную
$correct_login = "LalaFineThanks"; // Типа наш правильный логин
$correct_pass = "rehjgfnrbyfcytueyt;yjgktoenczddjlt"; // Типа наш правильный пароль
$correct_pass = crypt($correct_pass, "1a"); // И тут тоже шифровка нужна естественно

if($logout == "1") // Типа вылогиниваемся
{
  setcookie("pass", "", -999);
  setcookie("login", "", -999);
  unset($login);
  unset($pass);
}

if($login != $correct_login or $pass != $correct_pass)
{
  if(!$login and !$pass)
  {
    echo "Логин или пароль введены неверно. Подумайте, выпейте молока, съешьте шоколадку, умойтесь, вытрите руки и попробуйте еще раз!";
  }

  echo "<form action=? method=get>";
  echo "Логин: <input type=text name=login size=30> Пароль: <input type=text name=pass size=30> <input type=submit value=\"Вперед и с песнями :)\">";
  echo "</form>";
  exit;
}

setcookie("login", $login, time()*100);
setcookie("pass", $pass, time()*100);

echo "<a href='?logout=1'>Выход = вылогиниться = стереть кукисы</a>";

php?>



Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)