나는 HTTPS를 사용하지만 누군가 다른 사람이 실제로 최근에 사용하는 세션 ID로 자신의 쿠키를 만드는 악의 위험을 최소화하고자합니다.PHP 세션 하이재킹 - HTTPS로 충분합니까? 지문 제안?
세션 변수에 만료 시간이 있으므로 세션이 최근에 사용되지 않았 으면 무효화됩니다. 따라서 피해자가 활성 상태이거나 최근 로그 아웃하지 않고 사이트를 떠날 때 기회가있는 것으로 나타났습니다.
나는 엄청난 양의 트래픽을 기대하지 않으며 세션 ID를 생성하는 표준 PHP 방법을 사용합니다. 나는 누군가의 "위험"이 실제로 누군가의 세션을 가로 챌 때 성공하거나 심지어 시도한다고 믿는다.
원격 사용자를 어떻게 든 식별하려면 없이없이 $_SERVER['REMOTE_ADDR']
을 사용하는 것이 좋습니다. 내 생각에 공격자가 유효한 세션 ID 인 과 실제 사용자의 다른 속성 인 가장을 가장해야합니다.
사용자가 로그인 할 때 인증서를 사용하고 싶지 않습니다. 할머니와 같은 다른 비 기술적 인 사람들을 위해 모든 표준 웹 브라우저에서 작동하고 싶습니다.
그래서 내가 원했던 것은 다음과 같습니다. 사용할 수있는 HTTPS 세션의 "속성"이 있습니까? 유용할까요? 그렇다면 어떻게 찾을 수 있습니까? phpinfo()
은 HTTPS와 관련이 없습니다. (그것은 httpd
때문에 그것을 노출하지 않습니다가요?)
난 그냥 + HTTP_ACCEPT
HTTP_USER_AGENT
의 연결을 사용해야 + HTTP_ACCEPT_LANGUAGE
+ HTTP_ACCEPT_ENCODING
+ HTTP_ACCEPT_CHARSET
또는이 사용자 사이의 독특한 충분히로 가정 비슷한?
모든 답변에 매우 만족합니다. (하지만 StackOverflow에 대한 다른 질문에 대한 소개만으로 대답하기 전에 질문을 읽어보십시오.) 감사합니다!
코딩을 시작하기 전에 모든 조사를 수행해야합니다. 세션 보안은 잘 알려진 문제이며, 다른 누군가가 잘 생각하고 테스트 한 솔루션을 가지고 있다면 먼저이를 사용하는 것이 좋습니다. –
@Dana the Sane : 상대방의 코드가 당신보다 나은지 어떻게 알 수 있습니까? – symcbean
@Dana the Sane : 나는 동의합니다. 그게 바로 제가 여기서 묻는 이유입니다. – MattBianco