2010-06-12 4 views
0

나는 약간 혼란 스럽다. 나는 내 자신의 세션 시스템으로 내 사이트를 구축하고 있었지만, PHP의 자체 세션 시스템이 얼마나 안전한지 잘 모르겠습니다. 내 세션 시스템에는 일반적으로 사용자 ID와 생성하기위한 사용자 이름이나 암호가 포함되지 않은 매우 까다로운 해시가 있습니다. 사용자 데이터베이스에 해시를 저장하고 모든 페이지로드시 사용자 세션을 확인하는 쿠키로 저장합니다. 그래서 내 질문은 PHP 세션을 신뢰하거나 내 자신을 계속 사용할 수 있습니까?PHP 사용자 세션

+0

데이터를 저장하기 위해'$ _SESSION'을 사용하고 있습니까? 아니면 자신이 쿠키를 사용하고 있습니까? – TheDeadMedic

+0

내 자신의 쿠키. – TMKCodes

+0

그럼 인증 시스템에 대해 묻고있는 것입니다. – Gumbo

답변

1

PHP는 고유 세션 아이디를 쿠키에 저장하고 세션의 모든 값은 서버의 자체 텍스트 파일입니다. 세션을 훔치려면 세션 ID를 얻어야합니다. 즉, 피해자의 컴퓨터에서 세션 쿠키를 훔쳐야합니다. PHP 자신의 시스템은 최소한 주택 건설 시스템만큼 안전합니다

차이점은 무차별 대입에 의해 활성 세션을 찾는 것이 얼마나 어려울 수 있습니다. 이것은 해시 알고리즘과 난수 생성기에 달려 있습니다.

다른 해싱 알고리즘을 사용하려면 configure PHP을 사용하거나 PHP를 제대로 신뢰할 수 없다면 PHP의 세션 시스템에 own algorithm to create the session ids을 사용할 수도 있습니다. 내가 PHP는 자신의 세션 시스템을 보호하는 방법을 모르겠어요

+0

감사합니다. 그래서 제가 사용하는 것이 중요하지 않습니다. 차이점은 mysql과 php 파일에 저장하는 것 같다. – TMKCodes

+1

"세션을 훔치려면 세션 ID를 가져야합니다."- 세션 고정에 대해 읽으십시오. – symcbean

0

쿠키에 데이터를 저장하는 것과 PHP 세션을 사용하는 것이 매우 다릅니다. 쿠키는 클라이언트 측에 데이터를 저장합니다. 장점이 있습니다 세션 데이터를 저장하는 서버 측 :

  • 사용자는 브라우저가 데이터를 보낼 필요가 없다는
  • 사용자는 그것을
  • 을 수정할 수 없습니다 볼 수 없습니다 모든 요청과 함께 서버에 보내십시오.

보통 PHP 세션은 세션 키를 쿠키로 저장하지만 (실제로 할 필요는 없지만) 실제로 관심이있는 데이터는 사용자에게 보내지지 않습니다. 서버에 저장하고 세션 키를 사용하여 조회 함

+0

이제 세션 키가 쿠키로 저장되지 않은 경우 어떻게 서버가 사용자인지 알 수 있을까요? 기본적으로 내 시스템에서 사용자가 세션 쿠키를 수정하면 그는 단지 로그 아웃됩니다. 사용자가 실제로 세션 키를 생성하는 방법을 알 수 없으므로 사용자가 세션 키를 확인하면 문제가되지 않습니다. 또한 내 시스템은 세션 키를 서버에 저장하여 쿠키를 확인합니다. – TMKCodes

+0

@Temek 클라이언트는 서버에 세션 키를 어떻게 든 말해야합니다. 단지 쿠키에 저장할 필요가 없습니다. 다른 주요 방법은 [GET 매개 변수] (http://us2.php.net/manual/en/session.idpassing.php)입니다. –

+0

아 맞습니다. 바보 야. 나는 당신이 클라이언트가 세션 데이터를 가질 필요가 없다는 것을 말하고 있다고 생각했다. :) 혼란을 드려 죄송합니다. – TMKCodes

0

입니다 그리고 세계의 나머지는 당신의가 얼마나 안전하지 확실하다. 많은 사람들이 PHP의 세션 핸들러를 살펴 보았지만 구현시 어떤 결함도 발견하지 못했습니다. 또한 잘 정의되고 통합되었지만 사용자 정의 핸들러의 개념을 지원합니다.

표준 세션 코드를 사용하는 것이 좋지만 직접 처리기 기능을 작성하는 것이 좋습니다.