2012-04-17 2 views
0

클라이언트에서 JS가 있고 서버에 PHP가 있고 서버에서 열린 세션이 있고 "PHP 스크립트에서"라는 고유 한 ID로 각 사용자를 식별하는 응용 프로그램을 작성하고 있습니다. DB에서 그리고 $_SESSION["uID"]에 저장했다. 세션이 식별 문제를 처리하고 각 사용자 요청이 자체 세션에 의해 수신되므로 사용자 세션이 충돌 할 것이므로 처음에는 이것이 자바 스크립트에서 PHP로 사용자 데이터를 보내는 동안 충분하다고 생각했습니다. 다른 .. 내가 맞습니까? 아니면 다른 기술을 사용해야합니까?
js에서 php로 사용자 아이디를 보내야합니까? 또는 그것은 PHP에서 선언하는 것으로 충분합니까?
세션 ID 등을 사용해야합니까?js에서 PHP로 사용자 데이터 보내기

+0

기본적으로 PHP는 세션 ID를 쿠키에 저장합니다. 각 요청과 함께 쿠키가 서버로 다시 전송됩니다. –

+0

첫 번째 변형은 괜찮습니다. userID는'$ _SESSION [ "uID"]'에 저장할 수있다. 사용자를 식별하려면 JS에서 PHP로 userID를 전달해야합니다. 각 사용자는 자신의'$ _SESSION' 슈퍼 전역 배열을 가질 수 있습니다. –

답변

2

사용자 ID를 js로 보내면 애플리케이션이 안전하지 않을 수 있습니다. 누군가는 누구나 될 수 있습니다. 쿠키가 세션을 설정하면 PHP 세션에서 해당 세션을 사용하기에 충분합니다. js가 세션 ID를 브라우저에서 자동으로 보내면 세션 ID를 보낼 필요가 없습니다.

0

세션을 읽는 데 시간을 할애해야합니다.

테스트했을 때 무슨 일이 있었습니까?

일반적으로 세션 ID는 쿠키를 통해 전송됩니다. 쿠키는 xmlhttp 요청으로 서버에 보내야합니다. 쿠키는 HTTP 요청을 통해 브라우저에 설정됩니다.

다른 방법을 통해 세션 ID를 보내고 자바 스크립트를 통해 세션 쿠키를 설정할 수 있습니다. 그러나 기본 설명을 이해할 때까지는 설명이 이해가되지 않습니다.

1

PHP 스크립트의 시작 부분에서 session_start()가 호출되면 확실히 $ _SESSION [ "uID"]에 액세스 할 수 있습니다. 사용자에게 고유 한 uID를 제공 한 경우 PHP 내부에서만 사용해야합니다. 또한 uid를 사용하여 js에서 php로 전화를 걸면 javascript가 쉽게 간섭되고 "잘못된"uID가 전달 될 수 있기 때문에 큰 보안 허점이 있습니다. 그래서 네, 당신이 말했던대로 내 평결을 지킬 것이다 : 그렇습니다 그것은 PHP에서 선언하는 것만으로 충분하다. :)

0

PHP는 클라이언트가 모든 요청에 ​​대해 보내지는 쿠키로 세션 ID를 저장하고있다. 그러나 사용자가 쿠키를 보관하지 않으면 세션이 취소됩니다. 더욱이 보안되지 않은 위치에서 사용자가 로그온하면 공격자가 세션 ID를 얻을 수 있으며 시스템에서 해당 피해자를 잘못 식별합니다.

사실 클라이언트를 식별하는 절대적인 방법은 없습니다. 대부분의 경우 세션 ID가 충분하지만 추가 보안 계층이 필요한 경우 IP 확인 및 세션과 함께 계정을 사용하십시오.