好了,所以我这里有一些代码:可靠性都退出()和头()系统安全功能
<?php session_start();
if (!isset($_SESSION['blah'])) {
header('Location: foo.php'); exit();
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset = 'utf-8' />
<title>Check Login</title>
</head>
<body>
// members only content here
</body>
</html>
所以,我发现了一个万无一失的办法解决使用任一标题或退出声明用于重定向(通过根据if-else语句的值回显特定文档),但使用标题比在heredoc中回显整个网页要干净得多。 (我也知道我应该使用HTTPS来获得额外的安全性)。
我有两个问题。
浏览器支持
Location
标头的范围有多广?我知道我不能通过阅读类似的问题来独立使用它,但我不介意知道。另外,使用php的
exit()
函数对于维护系统安全性有多可靠?它是否总能正常工作,或者只是在安全真正重要时才回应HEREDOC?
位置标头由全世界每一个单一浏览器支持。它是第一个HTTP规范的一部分。所以是的,它*总是*的作品。至于'退出'是安全的......你是什么意思?它在那时停止执行......我不明白可能与系统安全有关的事情? – Tularis
所以我猜测退出()阻止服务器发送特定页面的其余部分,这将是万无一失的。我现在正在查看PHP规范以便退出,这样可以清除一堆东西。 – lexica98
请注意,尽管大多数(所有?)浏览器都支持'Location'头中的相对URI,但HTTP规范要求它是绝对的。 – lafor