2012-11-01 2 views
1
if($_POST['user'] == 'anita' && $_POST['pw'] == '123') 
{ 
    $_SESSION['username'] = $_POST['user']; 
    echo "Welcome, " . $user; 
    $loggedin = true; 
}else 
{ 
    die('Log in details incorrect.'); 
} 

if(isset($_SESSION['username'])) 
{ 
    // Show website edit menu 
} 

웹 사이트를 만들고 있는데 고객이 사용하기 위해 작은 자기를 추가하려고 생각하고 있었기 때문에 사이트를 직접 업데이트 할 수 있습니다.PHP는 세션 안전입니다.

누군가의 세부 정보를 저장하는 안전한 방법입니까? $ _SESSION [ 'username']이 (가) 사용자가 로그인했는지 확인하도록 설정되어 있는지 확인할 수 있습니까?

+1

세션은 괜찮지 만 세션에서 사용자 이름을 설정했는지 확인하는 것보다 훨씬 좋을 것입니다. 매번 암호를 확인합니다. 또한 비밀번호 변경시 누군가를 로그 아웃 할 수 있습니다. – Brad

+0

대답 녀석을위한 감사합니다, 저것은 나가 알 필요가 있던 thats 전부이다. 왜 누군가가 저를 투표하는지 모르십시오. 나는 이것이 안전한지 확인하고 싶었다. – user1534664

답변

1

음, 그렇습니다. 해커가 서버 파일 쓰기에 액세스해야하거나 클라이언트 코드에서 파일 다시 쓰기로 이어지는 끔찍한 버그를 찾아야하므로 세션을 서버 측에 설정하면 매우 안전합니다.

세션 고정과이를 방지하는 방법에 대해 조사하고 CMS 측에서 SSL을 사용하려고합니다.

2

세션 파일은 일반적으로 서버에만 저장되며 사용자가 직접 액세스 할 수있는 유일한 것은 세션 쿠키입니다. 쿠키는 대개 세션의 ID 만 가지고 있으며 그 밖의 것은 없습니다.

악의적 인 사용자가 코드 이외의 방법으로 세션 저장소 시스템 (파일, 데이터베이스)에 액세스하는 다른 방법이 없다면 세션에 저장된 내용을 변경할 수있는 방법이 없습니다.

0

일반적으로 세션은 안전합니다. 그러나 하이킹에 취약합니다. 세션은 서버에 저장된 세션 ID로 고유하게 식별됩니다. 이것은 귀하의 서버와 컴퓨터 간의 유일한 링크입니다. 누군가이 ID를 얻는다면, 그들은 당신의 세션에 접근 할 수 있습니다.

다리우스

+0

SSL이 작동하는 곳은 어디입니까? ID를 얻는 방법은 무엇입니까? – user1534664