Насколько безопасен перенаправление заголовка?Это можно обойти? - PullRequest
9 голосов
/ 23 февраля 2012

Насколько безопасны перенаправления заголовков? Насколько я понимаю, информация заголовка инструктирует браузер, что делать. Следовательно, если местоположение заголовка установлено в каком-либо другом месте, можно ли сделать так, чтобы браузер все еще находился на начальной странице?

if(!$loggedin){
header('Location: someotherpage.php')
}

Если кто-то (кашель) забыл использовать команду выхода после заголовка, может ли кто-нибудь все еще попасть на эту страницу?

Ответы [ 3 ]

8 голосов
/ 23 февраля 2012

Если кто-то (кашель) забыл использовать команду выхода после заголовка, может ли кто-нибудь все еще попасть на эту страницу?

Конечно - вместо land на этой странице (которая у него уже есть), если забыть exit(), это означает, что клиент все еще может видеть любые данные, отправленные после этих строк. Никто не может заставить клиента уйти сразу после получения заголовка Location:. Это действие является полностью добровольным.

0 голосов
/ 23 февраля 2012

Да.На этой странице все еще можно было бы приземлиться, вы не можете форсировать «Местоположение».Также возможно «случайно» загрузить оставшуюся часть страницы, если страница выдает «заголовки уже отправлены».Рекомендуется использовать exit; после отправки header('Location...').

См. Функцию PHP: headers_sent

0 голосов
/ 23 февраля 2012

Да, определенно. Вот почему другой должен следовать (или выход) после перенаправления в случае, если вы хотите избежать показа незаконной информации. Если кто-то использует пользовательский запрос, он может легко просмотреть то, что следует после запроса перенаправления, это довольно стандартная проблема безопасности.

...