2012-11-08 3 views
1

가능한 복제를 세션 하이재킹을 방지하기 위해 :
Preventing session hijackingPHP 모범 사례는 인증에

나는 PHP 웹 응용 프로그램 내 로그인 및 인증 시스템을 코딩에 대한 모범 사례를 찾고 있어요

세션 도용을 방지합니다. 로그인 페이지 세트의 세션 : 모든 페이지와 확실 세션이 존재하는지 점검 활동, 세션에 저장된 IP 주소에서 다음

$_SESSION['email_address'] = $_POST['email_address']; 
$_SESSION['ip_address'] = $_SERVER['REMOTE_ADDR']; 

는 [ 'REMOTE_ADDR'] $ _SERVER의 IP 주소와 일치합니다.

if(isset($_SESSION['email_address']) && isset($_SESSION['ip_address']) && $_SESSION['ip_address'] == $_SERVER['REMOTE_ADDR']) { 
    //valid auth 
} 

온라인으로 읽는다면 어떤 사람들은 단순히 IP 주소를 확인하는 것이 충분하지 않다고 말합니다. 그 밖의 무엇이 필요합니까? 또한, session_regenerate_id()을 사용하는 것에 대한 이야기가 있습니다. 그게 내 코드에 어떤 영향을 줍니까? 모든 페이지에 session_regenerate_id()으로 전화합니까?

감사합니다.

+0

이 페이지의 오른쪽에있는 관련 칼럼을보십시오. – itachi

+0

읽기 : [세션 도용 방지] (http://stackoverflow.com/a/12234563/53114) – Gumbo

답변

0

자신 만의 로그인 시스템을 코딩하는 경우 모든 보안 문제에 매우 능숙하고이 사이트와 같은 온라인 사용자가 제공 한 질문에 의존하지 않기를 바랍니다. $ _SESSION은 자동으로 모든 공유 서버의 보안 위험 요소입니다. $ _SESSION은 시스템에서 실행중인 모든 PHP 프로세스에서 사용할 수 있습니다. 클라이언트 중 하나가 공유 서버에서 소프트웨어를 실행하는 경우이를 계획해야합니다.

또한 보안 허점을 만드는 실수를 코드 작성하기가 매우 쉽습니다. Yii 또는 이미 강력한 인증 메커니즘을 제공하는 일부 프레임 워크를 사용하는 것이 좋습니다. 예를 들어 Yii는 시작하기 위해 몇 가지 로그인 및 보안 플러그인을 제공하기 위해 종기를 if 수있게하려는 경우 얻을 수있는 기본 기능에 관한 것입니다.