2012-10-30 1 views
6

두 페이지 사이에 변수를 안전하게 전달하는 방법이 필요합니다.PHP로 두 페이지 사이에서 변수를 전달하는 가장 안전한 방법

내가 POST/GET/쿠키/세션 또는 숨겨진 필드를 사용할 수 있다는 것을 알고 있지만, 나는 다음과 같은 방법 중 어느 것도 충분하기 때문에 확보하지 생각 :

가 GET은 URL에서 볼 수 있습니다


쿠키가있다 클라이언트 측이 세션 ID 하이재킹 및 ...

지금 내가 알고 싶은이이 방법보다 더 나은 다른 방법이다 직면 할 수있는 클라이언트
세션에서 변경 될 수 있으며이 아닌 경우 이들의 마녀는 그래서 변수를 안전한 방식으로 전달하는 가장 좋은 방법.

+7

세션. 당신이 그들을 신뢰하지 않는다면 나는 당신이 선택의 여지가 없다고 생각합니다. – Crontab

+1

세션은 PHP (서버 측)/대체 사이트의 친구입니다. html5 웹 저장소 http://www.w3schools.com/html/html5_webstorage.asp – donald123

+2

세션을 참조하십시오. 관심있는 읽기 : http://cleverlogic.net/tutorials/session-hijacking-0. – alexn

답변

10

세션은 사용 가능한 가장 안전한 방법입니다.

세션 ID 재생성은 세션 하이재킹에 도움이되지만 https를 통한 SSL은 실제로 세션 하이재킹을 방지합니다.

동의어 : 세션이 도용되고 클라이언트에 사용자 데이터를 표시하는 경우 데이터를 두 번째 페이지로 가져온 방법과 상관없이 하이재커가 보게됩니다. 서버 측만을 사용하고 있다면 납치범이 그것을 볼 수 없습니다. 세션을 사용하여 페이지 사이 변수 값을 전달

+0

세션 ID를 재생성하면 로그인 후 섹션에서 TLS가 실행될 때만 도청 방지에 도움이됩니다. 재생성 된 ID가 브라우저 위치에서 복사 된 다음 다른 브라우저에서 재생 된 경우 TLS와 관계없이 로그인이 계속 수행된다고 가정합니다 .. 맞습니까? –

3

session_regenerate_id 의해

세션 ID를 재생성 가장 안전한 때마다 (예를 들면 로그인 등) 보안 레벨 변경. 원할 경우 요청마다 세션 ID를 재생성 할 수도 있습니다.

좋은 읽기 GET을 사용하여 아무 문제가 없다

PHP Security Guide: Sessions

0

- ... 당신은 항상 그것의 위험을 최소화하기 위해 매개 변수의 해시 얻을 결합 할 수 있습니다만큼 그들은 제대로 소독대로가 세션의 사용과 함께 훼손되어 합법적임을 보증합니다.

1

세션은 서버 측 변수를 전달하는 및 세션 하이재킹을 방지하기 위해 당신이 PHP 에서 수동에도 session_regenerate_id 기능을 사용할 수는 가장 안전한 방법입니다 이후 : http://php.net/manual/en/function.session-regenerate-id.php

을하지만, 당신이 항상 사용하는 것을 의미하지 않습니다는 세션을 통해 변수를 전달할 수 있습니다. 쿠키는 계속 사용할 수 있지만 쿠키에 저장하기 전에 데이터를 암호화합니다.

관련 문제