저는 웹 개발에 익숙하지 않으며 CSRF, XSS 및 세션 하이재킹에 대해 읽었습니다. 제안 된 솔루션 중 하나는 단순히 nonce
을 사용하여 요청의 유효성을 검사하는 것입니다. PHP로 세션 하이재킹을 막기 위해이 스크립트를 작성했습니다. 세션 ID를 재생성하는 것과 정신적으로 비슷하다고 생각합니다. 즉 식별자마다 또는 그 조합 (세션 ID와 넌스)이 요청마다 변경됩니다.세션 하이재킹 예방을 적절히 구현하십시오.
if(!isset($_SESSION["user"]["nonce"]) ||
$_SESSION["user"]["nonce"] == $_COOKIE["SITE_nonce"])
{
$nonce = md5(uniqid());
$_SESSION["user"]["nonce"] = $nonce
setcookie("SITE_nonce", $nonce, 0, "/path");
}
else
die("Invalid Request");
충분합니까? SSL을 감당할 수 있는지 정말 모르겠다. 세션 하이 잭스에 대한 좋은 해결책이 될 것이라는 것을 알고 있지만이 접근법에 대한 통찰력이 필요하다. 내가 놓친 게 있니?
감사합니다. 나는 몇몇 페이지에서 탈지하기 시작했고, 나의 구현이 Page Tokens에 적합하다는 것을 알았다! 쿠키가 너무 많으면 해시와 관련된 두 번째 단락에서 의미하는 바를 이해하지 못합니다 (이전에는 쿠키가 아니라 일부만 사용했습니다). –
@Rolando Cruz 내가하는 일은 md5 (IP, 사용자 이름 및 암호 단계)이며 특정 사용자의 "해시"필드 아래에 저장합니다. 그래서 누군가가 돌아올 때 (쿠키로) 그 해시를 비교하고 일치하지 않으면 비교합니다. 나는 그 때 그것을 기록하고, 그들을 쫓아 내고 가능하게 몇 분 동안 그들을 밖으로 지킨다. – Luke
아. 내가 참조. 나는 사용자가 사이트를 처음 방문하는 것과 관련이 있다고 생각했습니다. 이 경우에는 'HTTP_USER_AGENT'의 값을 해시에 추가 할 것입니다. 감사! –