|
| |
|
|
| |
для: DDK
(15.05.2006 в 18:18)
| | |
<?
function check_auth() {
global $PHP_AUTH_USER,$PHP_AUTH_PW,$admincp_users;
$md5pass=md5(mysql_escape_string(trim($PHP_AUTH_PW)));
if(!isset($PHP_AUTH_USER)) {
header("WWW-Authenticate: Basic realm=\"CMS\"");
header("HTTP/1.0 401 Unauthorized");
echo "Неверный пароль и/или логин.\n";
exit;
} else {
$PHP_AUTH_USER = mysql_escape_string(trim($PHP_AUTH_USER));
$md5pass = $md5pass;
$query="SELECT * FROM $admincp_users WHERE username='$PHP_AUTH_USER' AND password='$md5pass'";
$result=mysql_query($query);
$number=mysql_num_rows($result);
if($number!=1) {
header("WWW-Authenticate: Basic realm=\"CMSl\"");
header("HTTP/1.0 401 Unauthorized");
echo "<center><br><br><font color='#FF0000'>Неверный пароль и/или логин !</font></center>";
exit;
} else {
$usr=mysql_fetch_array($result);
$PHP_AUTH_USER = $usr['username'];
if($checkcnt == 0) {
unset($PHP_AUTH_USER);
unset($PHP_AUTH_PW);
header("HTTP/1.0 403 Access Forbidden");
exit;
}
} #end if
return;
}
} #end function
check_auth();
?>
|
А что за переменная $checkcnt == 0 в последнем условии if, я не понял | |
| |
|
|
| |
|
|
| |
для: Jura
(15.05.2006 в 18:32)
| | | Спаибо всем откликнувшимся | |
| |
|
|
| |
|
|
| |
для: ec_stasis
(15.05.2006 в 15:32)
| | | >А что за бейсик метод?
Он представлен в скрипте http://www.softtime.ru/info/authorization.php - HTTP Basic Authentification. | |
| |
|
|
| |
|
|
| |
для: Balamut182
(15.05.2006 в 13:16)
| | | Чем больше способов защиты тем сложнее ее обойти. Ни куки, ни сессии, и темболее базовый метод авторизации не совершенны. а в совокупности они дают довольно серьезную защиту с различными методами шифрации естественно. | |
| |
|
|
| |
|
|
| |
для: [InLine]Scorpion
(15.05.2006 в 17:42)
| | | Нет, не совсем. Вот пример:
<?
function check_auth() {
global $PHP_AUTH_USER,$PHP_AUTH_PW,$admincp_users;
$md5pass=md5(mysql_escape_string(trim($PHP_AUTH_PW)));
if(!isset($PHP_AUTH_USER)) {
header("WWW-Authenticate: Basic realm=\"CMS\"");
header("HTTP/1.0 401 Unauthorized");
echo "Неверный пароль и/или логин.\n";
exit;
} else {
$PHP_AUTH_USER = mysql_escape_string(trim($PHP_AUTH_USER));
$md5pass = $md5pass;
$query="SELECT * FROM $admincp_users WHERE username='$PHP_AUTH_USER' AND password='$md5pass'";
$result=mysql_query($query);
$number=mysql_num_rows($result);
if($number!=1) {
header("WWW-Authenticate: Basic realm=\"CMSl\"");
header("HTTP/1.0 401 Unauthorized");
echo "<center><br><br><font color='#FF0000'>Неверный пароль и/или логин !</font></center>";
exit;
} else {
$usr=mysql_fetch_array($result);
$PHP_AUTH_USER = $usr['username'];
if($checkcnt == 0) {
unset($PHP_AUTH_USER);
unset($PHP_AUTH_PW);
header("HTTP/1.0 403 Access Forbidden");
exit;
}
} #end if
return;
}
} #end function
check_auth();
?>
|
| |
| |
|
|
| |
автор: Ireruss (15.05.2006 в 18:15) |
|
| |
для: ec_stasis
(15.05.2006 в 15:32)
| | | Обычно, под базовой регистрацией понимают использование базовых средств протокола http, imho.
РНР-функцией header() посылается заголовок с кодом (405, если не ошибаюсь), браузер должен выдать форму ввода пользователь/пароль и отослать введенные данные в ответ на запрос сервера. | |
| |
|
|
| |
|
|
| |
для: [InLine]Scorpion
(15.05.2006 в 17:42)
| | | и что этот способ из себя представляет? | |
| |
|
|
| |
|
|
| |
для: ec_stasis
(15.05.2006 в 15:32)
| | | Видимо .htaccess имелся ввиду | |
| |
|
|
| |
|
|
| |
для: cheops
(15.05.2006 в 15:09)
| | | А что за бейсик метод? | |
| |
|
|
| |
|
|
| |
для: Balamut182
(15.05.2006 в 13:16)
| | | Лучше использоваться для хранения данных MySQL, а авторизацию строить либо на сессиях, либо basic-методом. | |
| |
|
|
|