2009-12-29 2 views
0

제 3 자 로그인 메커니즘을 사용하여 사내로 작성된 웹 사이트가 있습니다.최근 버전의 PHP 쿠키 동작이 변경되었습니다.

최근 PCI 요구 사항을 준수해야하며 환경을 많이 변경했습니다. 쿠키를 발견 한 직후에 필자는 PHP 5.3에서 5.2.11로 옮겨가는 것 중 더 어려운 것을 제외하고는 모든 변경 사항을 롤백했습니다.

다음과 같은 현상이 발생합니다. 자체 내부 관리를 위해 사용자 이름과 암호를 쿼리 문자열로 사용하는 로그인 페이지를 작성했습니다. 각 사용자의 관리 페이지에는 해당 사용자로 로그인 할 수있는 '연결'링크가 있습니다. 이 페이지는 관리자의 쿠키를 사용자의 쿠키로 덮어 쓰고, 우리는 그들입니다. 내가 아는 한, 먼저 쿠키를 삭제하지 않고 그냥 덮어 썼습니다. 최근까지 일했습니다. 예, 안전하지는 않지만 내부 용입니다. 용서해주십시오.

이제 링크를 따라 가면 Google의 관리자는 admin으로 있습니다. 고객이되는 유일한 방법은 로그 아웃 한 다음 사용자 이름/암호를 입력하는 것입니다.

다른 주목할 점은 사이트의 각 하위 디렉토리에 쿠키가 설정되어 있다는 것입니다. 사이트의 하위 디렉토리마다 쿠키가 하나만 있다고 생각하기 때문입니다. 그러나 이것이 바뀌지 않았다고 확신하지 못했습니다. 이전에 하위 디렉토리가 있었을 수도 있습니다 ...

그래서 나는 PHP가 5.3에서 쿠키를 처리하는 방식으로 기존의 쿠키를 덮어 쓰지 않기를 바라고 있습니다. 더 이상 사용하지 않거나 사이트와 달리 디렉토리 별 쿠키를 만들 수 있습니다.

아이디어가 있으십니까?

답변

1

this에 따르면 $ _COOKIE 값은 더 이상 $ _REQUEST로 유입되지 않지만 공식 확인을 찾을 수는 없습니다. 그것이 사실이고 응용 프로그램이 $ _REQUEST와 함께 작동하여 관리자 아이디를로드하는 경우 이것이 가능할 수 있습니다. 쿠키는 설정되지만 인증 메커니즘에 절대적으로 영향을 미치지 않습니다. 일반 사용자는 쿠키가 아닌 세션별로 식별되기 때문에 문제가 없습니다.

하지만 브라우저의 동작이 변경되거나 서버 환경이 변경 될 수도 있습니다. 정확히 어디에서 왔는지 먼저 확인해 보는 것이 좋습니다.

구형 브라우저에서도 마찬가지입니까, Firefox 2라고 말합니까?

그렇다면 이전 버전의 PHP로 다시 전환하여 어떤 결과가 발생합니까?

+0

은 그렇게하기 쉽지 않아서 5.2로 다시 돌아 가지 않도록하려고 시도했습니다. 처음에는 브라우저라고 생각했지만 크롬, IE, FF, 다른 컴퓨터에서 다른 사용자가 발생했다는 것을 깨달았습니다 ... 난 그냥 수동 로그인 대 설정하는 쿠키의 깨끗한 비교 않았다 링크를 사용하면 두 개의 누락이 있음을 알 수 있습니다. 제 3 자 로그인 도구이기 때문에 다른 사람의 코드를 찾아야합니다. 감사합니다. – bbutle01