У меня есть скрипт, где люди входят в систему, используя сеансы. Когда они заходят на определенный сайт (например, private.php), скрипт php проверяет, вошел ли пользователь в систему и является ли он пользователем определенного типа.
Если нет, пользователь перенаправляется на индекс. php
if ( isset( $_SESSION['user_id'] ) && in_array(11, $_SESSION['types'])) {
} else {
header("Location: index.php");
}
Кажется, что это нормально работает для обычного пользователя, но я заметил, что когда я использую cron, чтобы позволить серверу запустить private.php в определенное время дня,
header("Location: index.php");
не соблюдается. То есть местоположение не перемещается в index.php, а скрипт продолжает работать.
Я пробовал это:
file_put_contents('log.txt', "before header" . PHP_EOL , FILE_APPEND);
header("Location: index.php");
file_put_contents('log.txt', "after header" . PHP_EOL , FILE_APPEND);
, и были написаны и "до заголовка", и "после заголовка"в log.txt.
Если я хочу, чтобы private.php оставался приватным, является ли моя текущая установка угрозой безопасности? Может ли кто-нибудь получить доступ к веб-сайту и пропустить заголовки? Будет ли добавление умереть ();после функции заголовка улучшить безопасность?