PHP로 웹사이트를 개발할 때, 간혹 주소창에 표시되는 URL 뒤에 PHPSESSID 라는 값이 따라다니면서 표시되는 경우가 있습니다.
http://www.OOO.com/main.php?PHPSESSID=839878d87a8097090d988
PHPSESSID 는 사용자가 웹서버에 접속할 때, 접속하는 세션마다 SESSION ID 가 발급되게 되는데 그 값을 저장하고 있는 변수가 PHPSESSID 입니다. 만약, 페이지 전환시에 PHPSESSID 가 일치하면 동일한 세션에 의한 접속이라고 판단하게되며, 만약 PHPSESSID 가 없으면 웹서버는 새로운 SESSION ID 를 발급하게 됩니다.
PHPSESSID 는 쿠키에 저장되거나 GET방식으로 계속 넘기는 방식으로 전달되게 됩니다. 하지만, SESSION ID가 URL 상에서 노출이 되게되면, 아무래도 보안상의 문제가 발생할 수 있기 때문에 이를 막아주는 것이 좋습니다
위에서 보듯이 ini_set 함수를 이용하여 이를 방지할 수가 있습니다. ini_set 함수는 php.ini 파일에 설정된 항목을 바꿀 수 있는 함수입니다. 다만, 서버세팅에 따라 권한이 부여되지 않을 수가 있기 때문에 오류가 발생할 수 있습니다.
그래서 ini_set 함수 앞에 @ 를 붙인것입니다. 함수앞에 @ 가 붙어있으면, 해당 함수 실행중에 오류가 발생해도 에러메시지를 표시하지 않게 됩니다.
session.use_trans_sid 값을 0으로 세팅하는것과 동시에 url_rewriter.tags 값도 세팅해 주는것이 좋습니다. url_rewriter.tags 는 PHP가 해석되어 html을 출력할 때, 각 태그의 속성에 세션아이디를 넣을 수 있게 해주는 옵션인데요 이 또한 보안상 위험할 수 있기대문에 막아주는 것이 좋습니다.
호스팅업체에 따라, php버전에 따라 세팅이 달라질 수 있기 때문에 각 상황에 맞게 사용하시기 바랍니다.
blocked by CORS policy Access-Control-Allow-Origin 서로다른 도메인에서 ajax 크로스도메인 호출문제 해결하기 (3) | 2019.12.09 |
---|---|
php 디렉토리 파일 리스트, 서브디렉토리 까지 뿌려주기 ..... php폴더 파일리스트,서브폴더리스트 (0) | 2019.10.11 |
php디버깅, php에러출력 ... error_reporting 함수 / php error / php오류 (2) | 2019.09.18 |
url직접입력 방지, 주소직접입력 방지 ... PHP define() defined() 함수이용한 보안 (0) | 2019.09.16 |
PHP 문자열 공백제거하기, trim() ltrim() rtrim() 함수, 문자공백 또는 특정문자 제외하기 (2) | 2019.08.13 |
댓글 영역