쿠키와 세션
웹 서핑에서 사용자가 웹 페이지로 이동하더라도 특정 페이지에서의 정보는 계속 유지되어져야 할 필요가 있다.
예를 들어, A 쇼핑몰에서 담은 품목들은 A 쇼핑몰을 닫고 B쇼핑몰로 이동해도 A 쇼핑몰의 품목들이 모두 어디엔가 저장되어 있어야
나중에 B 쇼핑몰에서의 품목과 한꺼번에 보일 수 있게 된다. 따라서 이전의 정보가 게속 어딘가에 유지되고 있다는 것은,
보안상 쿠키가 위험한 요소가 될 수 있어서 잘 관리해야 한다. 쿠키의 이런 보안상 위험을 줄인 것이 세션이다.
쿠키(Cookies)
한 페이지에서 정보를 입력받고 이 정보를 다른 곳(ex. 서버)으로 옮길 수 있다.
한 페이지의 데이터를(e.g. ~.html 폼) 다른페이지(e.g. ~.php 폼)로 넘겨줄 때, $_GET[...] or $_POST[...]를 사용해 보았다.
이때 데이터를 받는 페이지에서는 $_GET[...] or $_POST[...] 배열을 사용해서 전달되어 온 ... 값을 추출한다
그런데 하나의 웹 사이트에 한두 페이지가 연계된 것이 아닌 수십개의 페이지가 연계 되어 있다면 작업이 굉장히 복잡해진다.
이럴 때, 쿠키를 사용하는데, 쿠키는 특정 사이트에서 사용자의 동작에 필요한 데이터를 해당 사용자의 컴퓨터에 저장해 놓은 것으로 보면 된다
이렇게 특정 사이트에 대한 정보를 호스트에 저장해두면, 해당 사이트의 어떤 페이지에서도 저장한 정보를 이용하여 쉽게 접근 가능하다.
쿠키는 특수한 형태의 변수로 볼 수 있다.
ex. 인터넷 뱅킹 - PC, 핸드폰에 인증서를 서로 옮기는 것.
특정 사이트에 로그인 크레덴셜(ID, Password 합친 용어)을 저장하고, 해당 사이트에 자동 로그인되는 것.
모두 쿠키로 처리되기에 보안에 취약하다.
한 프로그램에서 사용되는 변수는 다른 PHP 프로그램에서 사용될 수 없다.
사용하기 위해선 쿠키를 만들어두면 되는데, setcookie("쿠키_명","쿠키_값",만료_시간); 으로 만들어 주면 된다. (만료시간이 되면 삭제)
Linux 시스템에서는 Named Pipe와 같은 개념이다. 시스템에서 보면 Fork로 볼 수도 있다.
A named pipe is
a one-way or duplex pipe that provides communication between the pipe server and some pipe clients.
fork
In computing, particularly in the context of the Unix operating system and its workalikes,
fork is an operation whereby a process creates a copy of itself.
세션(Session)
쿠키는 사용자의 컴퓨터에 파일형태로 저장되기에 보안에 취약하다.
보안 문제를 해결하기 위해 PHP 4 부터는 세션 변수를 사용한다.
클라이언트가 서버에 접속하면 서버는 각 사용자마다 Session_id라는 아이디를 부여하고,
그 이름으로 폴더를 생성해 각 클라이언트 별 세션 변수 값 (일종의 쿠키) 들을 저장해둔다.
즉, 쿠키 데이터가 클라이언트가 아닌 서버에 저장이 되며 이를 세션 변수라고 한다. (현 재 대부분 세션변수 서버시스템을 사용)
세션 변수를 사용(Create Read Delete)하려면 그 전에 세션을 시작시켜 두어야 한다.
세션을 생성하기 위해
Session_start();
$_SESSION[세션_변수_명] = 값
이렇게 생성하면 된다.
세션(session)을 이용한 로그인 페이지 코드 (0) | 2022.06.07 |
---|---|
PHP Cookie & Session (0) | 2022.06.07 |
PHP 주소록 만들기 (0) | 2022.06.07 |
PHP 게시판 만들기 (0) | 2022.06.07 |
PHP Login(COOKIE) (0) | 2022.06.07 |