будет ли заголовок PHP () & exit () безопасным завершением сценария перед перенаправлением?

Является ли следующий безопасный способ защиты только области пользователя?

if(!isset($_SESSION['username'])){redirect(SITE_ROOT . 'st_pages/login/');} 

с помощью:

 function redirect($url) { header('Location: ' . $url); exit('<a href="' . $url . '">Redirecting you to: ' . $url . '</a>'); } 

да, это безопасно

хотя header () ничего не прекращает, но exit () действительно завершает скрипт. это единственная цель этой функции

Часть перенаправления может быть выполнена таким образом и должна быть безопасной.

Интересный вопрос заключается в том, насколько безопасно просто проверять имя пользователя в сеансе. Это зависит от того, что делают предыдущие строки скрипта.

Второй интересный вопрос, конечно же, в том, насколько критический несанкционированный доступ к этой области будет и сколько работы вы хотите инвестировать в безопасность.

Обычно я использую:

 <?php die(header("Location: page.php")); ?> 

Независимо от того, лучше ли это делать, я не утверждаю! Кроме того, как сказал b_i_d, я лично не буду проверять сеанс, проверяя имя пользователя, поскольку он не полностью безопасен … нельзя ли редактировать сеансы? Обычно я бы сохранил имя пользователя и пароль (конечно, MD5, конечно), а затем запустил это для базы данных, чтобы узнать, существует ли запись с этими подробностями.