2010-01-29 3 views
1

Struts 백엔드에 대한 Flex 클라이언트를 구축 중이며 플래시 무비에 I can't use cookies이 있으므로 쿠키를 사용하지 않고 세션 토큰을 전송하는 방법을 찾아야합니다.URL에 세션 토큰을 보내는 보안 문제는 무엇입니까?

메시지 본문이나 URL에 토큰을 넣을 것입니다. 그것을 URL에 넣는 것은 다소 보안상의 이유로 나쁜 평판을 얻습니다. 그러나 세션 하이재킹 인 CSRF와 XSS를 읽었을 때 쿠키보다 왜 나쁜지를 알 수 없었습니다. 특정 도메인에 액세스 할 때마다 투명하게 전송되는 쿠키가없는 것이 더 안전합니까?

기본적으로 내가 볼 수있는 유일한 이유는 요청에 토큰이 표시되고 브라우저 기록, 웹 서버 로그 등을 통해 누출 될 수 있다는 것입니다. 실제로이 취약점이 얼마나 위험하며 위험을 완화 할 수있는 방법이 있습니까? 다른 어떤 위험이있을 수 있습니까?

답변

4

얼마나 나쁜가? 글쎄, 우리 경쟁 업체 중 하나는 내부 (세션 기반 페이지)에서 우리 사이트로의 링크가 있었고 서버 로그에서이를 보았습니다. 빠른 복사 및 붙여 넣기/sess/sess_34984923_34423423/유형 물건과 나는 그 사용자의 전체 액세스 권한을 가진 그들의 시스템에 로그인했습니다 (운 좋게도, 그들은 관리자가 아니었고 아무것도 "슈퍼 안전한"은행/이메일 등 :하지만 여전히).

정확하게 구현하는 방법에 따라 전체 URL (세션 토큰 포함)은 프록시 서버 및 Google (사용자가 Google 툴바를 사용하는 경우)까지도 캐시가 될 수 있습니다.

내가 한 플래시 세션 상호 작용은 플래시 매개 변수 (HTML)의 세션 식별자를 플래시로 보내 다음 서버로 다시 보냅니다. 나는 대부분의 브라우저/플래시 조합이 내가 인증 한 쿠키를 보낸다는 것을 발견했다.

+0

오른쪽,'Referer' 헤더를 잊어 버렸습니다. Flash가 실제로 세션 쿠키를 보내는 방법과시기에 대한 자세한 정보가 있습니까? 나는 일종의 JSESSIONID로 생각했지만, 그렇게하지는 않았다. 또한 "서버로 다시 보냅니다"라는 말은 자동으로 수행되며 요청의 어느 부분에서 수행합니까? –

+0

세션 값을 원래 IP에 바인딩하고 사용자 에이전트 문자열의 해시를 바인딩 할 수 있습니까? 그게 더 안전 할 수도 있지만 여러 사람들이 같은 IP (회사 네트워크, 여러 가정 사용자 등)에서 연결하는 경우 완벽하지 않다 – mrwayne

+0

플래시를 사용할 때 일부 브라우저는 플래시 "사용자 에이전트"를 보았습니다. 그들 자신의 것 대신에 - 그래서 mrwayne은 일하지 않을 것입니다. PHP에서 (사용자 정의 쿠키 이름 사용) 발견되었습니다. 모든 주요 브라우저에서 확인되었습니다. 마지막 단락, Flash에서 서버로 AMF 호출을 통해 다시 보내는 플래시 매개 변수가 있습니다 (AMF 또는 Flash와 서버 간의 다른 통신 시스템을 사용하고 있습니까?). –

1

나는 당신을위한 일화를 가지고있다. 나는 미국에서 잘 알려진 회사의 서류를 작성했다. 그들은 웹 애플리케이션에 의해 생성 된 대치 페이지를 인쇄했는데 어떻게 알 수 있습니까? 페이지의 맨 아래에는 인쇄 관리자가 JSSESSIONID가있는 URL이 포함되어 있습니다.

직원이 나에게 사용자 이름과 암호가있는 것처럼 즉시 로그인 할 수있는 용지 한 장을 나에게 건네주었습니다. DOAH!

0

Session Hijacking이라는 매우 심각한 보안 항목을 읽으십시오. 악의적 인 공격자가 자신의 세션 ID를 가졌다 고해서 가장 할 수 있습니다.

관련 문제