ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
Http Authentification и PHP |

24.04.2007, 22:20
|
|
Постоянный
Регистрация: 14.01.2007
Сообщений: 459
Провел на форуме: 1469995
Репутация:
589
|
|
Http Authentification и PHP
Делаю авторизацию для админки одного портала. Использую для получения пары login/pass Http-Авторизацию.
Если со входом в систему все работает нормально, то с выходом чет не работает:
Для выхода использую ссылку index.php?logout=true, при этом пользователь получает в ответ:
HTTP/1.0 401 Unauthorized
Status: 401 Unauthorized
WWW-Authenticate: Basic realm="Administration area"
После чего у браузера, по идее, желание отправлять аутентификационную информацию должно пропасть...
Но нет... Нажимаю Cancel, вижу страницу с информацией о ошибке аторизации. Подправляю в адресной строке index.php?logout=true на index.php и, о чудо, я опять в админке...
Собственно вопрос: как организовать нормальный выход из системы, не используя дополнительной информации типа кукисов или сессий?
|
|
|

24.04.2007, 22:33
|
|
Участник форума
Регистрация: 25.07.2005
Сообщений: 246
Провел на форуме: 457850
Репутация:
174
|
|
Попробуй слать юзера на index.php пост-формой, в постварах сунь идентификатор логаута через скрытый инпут.
|
|
|

24.04.2007, 23:33
|
|
Постоянный
Регистрация: 23.04.2006
Сообщений: 622
Провел на форуме: 5887054
Репутация:
1292
|
|
При логауте, тебе нужно снова послать запрос на авторизацию, и когда появится окно, не вводя ничего, нажать ОК, а после этого, скрипт должен сообщить об удачной авторизации.
Последний раз редактировалось hidden; 24.04.2007 в 23:37..
|
|
|

25.04.2007, 08:33
|
|
♠ ♦ ♣ ♥
Регистрация: 18.05.2006
Сообщений: 1,828
Провел на форуме: 8042357
Репутация:
3742
|
|
PHP код:
<?php
$username = $PHP_AUTH_USER;
$password = $PHP_AUTH_PW;
cfunction authenticate() {
Header("WWW-authenticate: Basic realm=\"Restrict
(".strftime("%r",time()).")\"");
Header("HTTP/1.0 401 Unauthorized");
echo "You must enter a valid login ID and password to access
this resource\n";
exit;
}
if($logout==1) {
setcookie("login","off");
$PHP_SELF =
str_replace("logout=1","",$PHP_SELF);
header("Location: $PHP_SELF");
exit();
}
if(!isset($username) && !isset($password) ||
$login=="off") {
setcookie("login","on");
authenticate();
} else {
/*
Authtentication code here
*/
if(!$auth) {
authenticate();
}
else setcookie("login","on");
}
?>
Hi <?=$PHP_AUTH_USER?> you are logged in :-)
<a href="<?=$PHP_SELF?>?logout=1">Click here to
logout</a>
__________________
Привет! Меня зовут Джордж, и я хотел бы рассказать вам про реинкарнацию (ц) 2x2
|
|
|

25.04.2007, 11:24
|
|
Постоянный
Регистрация: 14.01.2007
Сообщений: 459
Провел на форуме: 1469995
Репутация:
589
|
|
В итоге сделал обычную авторизацию с использованием сессий (логин и пасс беру через WWW-Authenticate - так хотел заказчик), но вопрос остается открытым:
Возможно ли сделать нормальный выход без помощи дополнительных довесков?
|
|
|

25.04.2007, 18:20
|
|
Участник форума
Регистрация: 25.07.2005
Сообщений: 246
Провел на форуме: 457850
Репутация:
174
|
|
Ну вот я написал вариант без кукисов и сессий - должно работать.
|
|
|
|
 |
Похожие темы
|
| Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
|
Books PHP
|
FRAGNATIC |
PHP |
186 |
21.02.2010 02:41 |
|
Proxy
|
Kozak-Scv |
Анонимность |
2 |
11.02.2007 17:28 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|