2010-07-28 7 views
0

내 세션 변수를 사용자로 변경/설정/삭제할 수 있는지 궁금합니다.세션 변수 PHP 로그인 영역

PHP에서 로그인 영역을 재검토하고 있습니다. 지금 내가하는 일은 특정 세션 변수가 설정되어 있는지 여부를 확인하는 것입니다. 그러나 누군가가 자신의 세션 변수를 변경할 수 있으면 중단됩니다.

답변

1

사용자가 적극적으로이 데이터를 변경할 수 있도록하는 방법/양식 (우연히 또는 적극적으로)이 없다고 할 때, 아니요. 사용자 이름 등을 변경할 수 없어야합니다.

세션 데이터는 서버에 저장되어 있기 때문에 스스로 설정할 수 있습니다. register_globals가 켜져 있으면 이것이 가능할 수도 있지만 다른 상황이 참이어야합니다.

하지만 사용자가 제공하지 않으면 세션 데이터를 변경할 수 없어야합니다.

+0

+1 register_globals을 불러 오려면. –

+0

register_globals 주석은 실제로 의미가 없습니다. 그 자체만으로는 세션에 아무 것도 넣지 않아서 애플리케이션에 버그가 생길 수 있습니다.이 버그는'register_globals'없이 소개 할 수 있습니다. – Artefacto

+0

Artefacto, "register_globals가 켜져 있으면 이것이 가능할 수도 있지만 다른 상황이 참이어야합니다." 예 register_globals만으로는 악용 가능성이 없지만 항상 변수를 올바르게 정의하거나 확인하지 않는 경우 잠재적으로 사용자가 악용 할 수 있습니다. 그것은 내가 "진실한 다른 상황들"부분에 대해 점점 더 많았습니다. –

0

아니요, 세션 콘텐츠를 완벽하게 제어 할 수 있습니다.

사용자가 할 수있는 모든 작업은 세션 쿠키를 제거하고 주어진 세션과의 관계를 해지하는 것 뿐이며 그 내용을 변경할 수 없습니다.

+0

'모든 사용자가 할 수있는 일은 세션 쿠키를 제거하는 것입니다. '기술적으로 말하면 세션 ID 자체가 엉망이 될 수 있습니다. –

+0

@George 엄청난 재앙이 아닌 (또는 세션 쿠키를 스니핑 한 경우) 똑같은 효과가있는 것입니다. – Artefacto

+0

'또는 세션 쿠키를 스니핑했는지를 명확히해야한다는 점이 매우 중요합니다. 그러므로 내 의견. –

0

사용자는 자신이 노출 한 기능을 제외한 모든 세션 변수를 사용할 수 없습니다. 세션 변수는 서버에 저장되며 사용자에게 자동으로 노출되지 않습니다.

사용자가 할 수있는 유일한 일은 세션 ID를 엉망으로 만드는 것입니다.