이 코드를 사용하는 것이 얼마나 안전한 지 궁금합니다. 특히 $_SERVER['REMOTE_ADDR']
및 $_SERVER['HTTP_USER_AGENT']
저는 이에 대해 조사를 해왔습니다. 내가 할 수있는 한 여기있는 것처럼 변수를 비교하는 것이 안전해야한다고 말할 수있는 한? SQL 쿼리를 실행하거나 페이지에 내용을 표시 할 때 값을 사용할 때만 걱정할 필요가 있습니까?
내가 사용하는 위치에 따라 mysqli_real_escape_string
또는 htmlspecialchars
을 실행해야합니다.
언제 trim
또는 stripslashes
기능을 사용해야합니까?
나는 가장 명백하고 일반적인 방법으로 해킹 당하지 않도록 웹 사이트를 보호하려고합니다. 엄청난 보호가 필요하지는 않지만 최소한 안전하게 보호 받기를 바랍니다!
내가 간과하거나 잘못한 사항이 있습니까? 이것에 대해 설명하는 가이드가 있습니까?
session_start();
if (!isset($_SESSION['logged_in'])) {
$_SESSION['logged_in'] = false;
$_SESSION['ip_address'] = $_SERVER['REMOTE_ADDR'];
$_SESSION['user_agent'] = (isset($_SERVER['HTTP_USER_AGENT'])) ? $_SERVER['HTTP_USER_AGENT'] : '';
} else {
if ($_SESSION['ip_address'] !== $_SERVER['REMOTE_ADDR'] || ($_SESSION['user_agent'] !== $_SERVER['HTTP_USER_AGENT'])) {
session_destroy();
header('Location: view/index.php');
die();
}
}
'$ _SESSION'이 아니라'$ _SERVER'를 의미합니다. – Barmar
'$ _SERVER [ 'REMOTE_ADDR']'는 웹 서버에서 가져온 것이고 연결된 IP가 무엇인지 알려줍니다. '$ _SERVER [ 'HTTP_X']'값은 클라이언트가 보낸 HTTP 헤더에서 가져온 값이며 어떤 식 으로든 조작 할 수 있습니다. 이 값은 신뢰할 수 없어야하며 일반 사용자 입력처럼 처리해야합니다. –
예 oops, 고정 –