2011-03-26 4 views
2

첫 로그인 시스템을 구축했습니다. 사용자가 사용자 이름과 암호를 입력하면 사용자 이름과 ID로 세션 ID가 제공됩니다.세션 ID 확보

이 사용자 이름과 ID는 표시되는 페이지를 사용자 정의하는 데 사용됩니다.

모든 사용자 이름과 ID는 기본적으로 공개 정보이지만 세션 ID는 로그인 할 때 시스템에 의해서만 만들어집니다.

질문 :

어떤 내용이 기본적으로 공개하지만 당신은 로그인해야 세션 ID를 구할 수있는 곳은 여기 세션 ID를 사용하는 보안 위험은 무엇입니까?

누군가 다른 사람의 공개 ID와 사용자 이름에서 세션 ID를 위조 할 수 있습니까? 이 일을 쉽게 할 수 있습니까?

더 일반적인 것이 안전한가요?

+0

Google은 세션 도용 및 세션 고정을 방지합니다. – zerkms

답변

2

PHP의 자체 세션 기능이 매우 뛰어납니다. 세션 정보는 사용자에게 저장되지 않고 서버에 저장되며 세션 ID는 암호와 비슷합니다. 당신이 세션과 보안에 대해 알고 싶다면

내가보기 엔 당신은 당신이 그것을 해킹 할 수있는 서버 및 사용자에 대해 충분히 알고있는 경우 기본적으로 세션이 충분히 안전하지만, this video of a speaker at defcon 18.

를 권 해드립니다,하지만 길고 어려운 프로세스를 통과하고 대부분의 시스템은 세션을 해킹 할 정도로 정보를 제공하지 않습니다.

+0

+1, (sid를 추측하여) 세션 하이재킹을 막을 수있는 충분한 방법이 있지만 시간을 거의 낭비하게 만듭니다. – zerkms

0

세션 ID는 사용자 이름과 암호를 사용하여 초기 사용자 인증 후 사용자를 인증하는 데 사용되므로 새 인증 키인 세션 ID이므로 보호해야합니다.

대부분의 경우 가능한 세션 ID의 범위가 이미 알려져 있지만 (PHP는 hash function에 따라 128 비트, 160 비트 또는 기타를 사용함) 합리적인 시간 내에 전체 범위를 악용 할 수는 없으므로 Session Hijacking 또는 Session Fixation과 같은 세션에 더 많은 적응 공격을하십시오. 그리고 잘 알려진 protection measurements against these attacks on sessionsdeveloping guidelines이 있습니다.