Защитите страницу с благодарностью от не авторизованных пользователей - PullRequest
1 голос
/ 20 августа 2009

Когда человек регистрируется на моем сайте или входит в систему, он отправляется на адрес «thanks.php».

Страница проверяет, вошли ли вы в систему или нет, и если да, сообщает, что вы можете сделать, а если нет, дает ссылку на страницу register.php.

Однако любой может создать свой собственный файл cookie и обмануть скрипт таким образом.

Как мне защититься от этого?

Одна вещь, о которой я подумал, это проверка наличия $_SESSION['session_id'] в базе данных. Насколько я знаю, вы не можете сгенерировать это самостоятельно, и даже если бы вы могли, вам понадобится доступ к базе данных, чтобы выяснить это.

Я не слишком уверен, однако, есть ли у кого-нибудь какие-либо советы или опыт по поводу такого рода страниц с благодарностями?

Ответы [ 2 ]

5 голосов
/ 20 августа 2009

Вы не можете сгенерировать данные сеанса или базы данных, не имея доступа к серверу. Таким образом, безопасный способ сделать это - установить файл cookie SESSION с некоторой переменной и проверить это.

session_start();
$_SESSION['logged_in'] = true;


session_start();
if(!isset($_SESSION['logged_in']))
{
    header("Location: youarentsupposetobehere.com");
}
2 голосов
/ 20 августа 2009

Что ж, да, когда люди входят в систему, вы НЕ должны устанавливать cookie, который говорит loggedin=true или что-то подобное.

Вместо этого вы должны установить $_SESSION['loggedin'] = TRUE PHP обычно заботится о защите файлов cookie, которые автоматически управляют этим сеансом

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...