ЖУР.КОМ: крупнейший каталог электронных журналов компьютерной тематики
Защити свой WWW-сервер
Докучаев Дмитрий aka Forb
Спецвыпуск Xakep, номер #041, стр. 041-088-6
#!/usr/bin/perl
print "passphrase\n";
где passphrase является паролем для запуска. Теперь Апач будет запускаться без помощи администратора.
Двойная защита
Если ты хочешь ограничить доступ к документу не только парольным, но и сетевым методом (по IP-адресу), используй директивы Allow и Deny. Таким образом, прибавив в конец .htaccess строки:
Order allow, deny
Allow from 192.168.0.1
Deny from all
ты добьешься того, что к документу получит доступ лишь клиент с адресом 192.168.0.1 и знающий пароль.
Практические навыки: PHP
Рассмотрим функцию скрипта на языке PHP, которая проверяет валидность переданных логина и пароля. Истинный аккаунт хранится в базе данных mySQL.
function auth($login,$password)
{
$link = mysql_connect("localhost", "root", "") or die ("Could not connect");
mysql_select_db ("Auth") or die ("Could not select database"); // Соединяемся с БД
$authorized=0;
if(isset($login)) { // Если существует переменная $login
$result = mysql_query("select * from admins where name='$login' and
passwd='$password'"); // Делаем запрос
if (mysql_numrows($result)) {
$authorized=1; // Если получаем достоверный ответ – авторизация прошла
}
}
if ($authorized == 0) {
echo "Access denied!"; // В противном случае – пароль неверный
exit;
}
}
Практические навыки: Perl
Рассмотрим скрипт на языке Perl, который проверяет валидность переданных логина и пароля. Истинный аккаунт хранится в базе данных mySQL.
use DBI;
$mysql=DBI->connect("DBI:mysql:Auth:localhost",root,"passwd") || die "connect()"; # Соединимся с БД
$answer = $mysql->prepare("select * from admins where name='$login' and
passwd='$password'"); # Делаем запрос
$mysql->disconnect;
unless ($answer) {
exit print "Access denied\n"; # Если ответ не получен – завершаем работу скрипта
}