위대한 질문입니다. 사람들이 세션 고정을 방지하기 위해 세션 ID를 변경하는 것에 관해 이야기 할 때, 그들은 일반적으로 sessionId가 세션을 인수하기에 충분한 것으로 알고있는 Java 프레임 워크에서 발생하는 취약점을 염두에 둡니다.
그러나 ASP.NET은 다른 짐승입니다. ASP.NET에는 sessionId와 ASPXAUTH 쿠키가 있습니다. 당신이 구글 주변에 있다면, 당신은 여전히 세션 고정 가능성이 있다는 부당한 주장을 발견 할 것이지만, 아무도 그걸 어떻게 이용하는지 보여주지 못하기 때문에 나는 확신하지 못한다. 그것이 악용 될 수 있다는 증거를 찾은 가장 가까운 것은 this blog입니다. 이는 적어도 말하기에 통찰력이 있습니다. 블로그는 ASP.NET에서 빈약 한 구현을 식별합니다. 프레임 워크는 sessionId와 ASPXAUTH가 동일한 사용자와 연결되어 있는지 확인하지 않습니다 (개발자가 명시 적으로이 체크를 추가하지 않는 한). 하지만 악용 될 수 있습니까? 개발자가 세션 고정보다 악용 가능성이있는 잘못된 작업을 수행 한 경우 악용 될 수있는 경우를 생각할 수도 있지만 그렇지 않으면 의심 스럽습니다.
자세한 조사가 필요한 주제입니다. 나는 나의 대답이 너의 필요에 너무 늦게 오는 것을 알지만, 어쨌든 나는 따라 할 것이라고 생각했다. 결론 : 로그인 후 sessionId를 변경해도 추가 보호 기능이 제공되지 않는 것 같습니다. 당신의 pentesters가 다르게 생각한다면, 나는 그들에게 나에게 그것을 설명하도록 초대 할 것입니다.
분산 캐시 공급자 또는 StateServer 또는 SQL Server와 같은 OutProc 저장소로 세션을 내보내고 나중에 ID를 변경하고 세션을 복원 한 다음 새 ID로 세션을 연결하지 마십시오. 그러면 ID가 변경되고 사용자 –
@KevinRyan : 로컬 컴퓨터 (inProc 저장소)에서 먼저 수행하려고했던 작업입니다. 그러나 세션 ID를 변경하면 session_end 이벤트가 발생합니다. – Milla