좋아 모두의 신뢰성, 그래서 여기에 몇 가지 코드를 가지고 : 그래서출구()와 헤더() 시스템 보안을위한 기능
<?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을 대신 표시해야합니까?
'Location' 헤더는 세계의 모든 * _ 단일 브라우저에서 지원됩니다. 이것은 첫 번째 HTTP 사양의 일부입니다. 그래서 예, 항상 * 작동합니다. '출구'가 안전함에 관해서 ... 당신은 무엇을 의미합니까? 이 시점에서 실행이 중지됩니다 .... 시스템 보안과 관련이 있는지 알 수 없습니까? – Tularis
그래서 exit()가 특정 페이지의 나머지 부분을 보내는 것을 막을 것이라고 생각하고 있습니다. 지금은 출구에 대한 PHP 사양을 찾고있어, 그래서 물건을 잔뜩 취소됩니다. – lexica98
대부분의 (모든?) 브라우저는 여러분의 예제에서와 같이'Location' 헤더의 상대 URI를 지원하지만 HTTP 사양은 절대적이어야한다고 요구합니다. – lafor