Microsoft Word - php09.doc

Similar documents
Microsoft PowerPoint 세션.ppt

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

게시판 스팸 실시간 차단 시스템

SBR-100S User Manual

Microsoft PowerPoint - chap06-2pointer.ppt

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

뇌를 자극하는 JSP & Servlet 슬라이드

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

Windows 8에서 BioStar 1 설치하기

The Pocket Guide to TCP/IP Sockets: C Version

Research & Technique Apache Tomcat RCE 취약점 (CVE ) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE 취약점은 W

PowerPoint 프레젠테이션

*2008년1월호진짜

Microsoft PowerPoint 웹 연동 기술.pptx

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

WS12. Security

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

Microsoft Word - src.doc

Secure Programming Lecture1 : Introduction

PowerPoint Template

The Pocket Guide to TCP/IP Sockets: C Version

PowerPoint Template

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

Microsoft PowerPoint - web-part03-ch20-XMLHttpRequest기본.pptx

Data Provisioning Services for mobile clients

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

CLIEL LAB :: [ASP.NET] 세션 (Session) HTTP는비연결프로토콜입니다. 클라이언트 ( 정확하게는웹브라우저 ) 가서버에특정처리를요청하고나면서버에서그에맞는응답을해주는것으로끝납니다. 연결이계속해서유지되어야하는 FTP와는다른것입니

RHEV 2.2 인증서 만료 확인 및 갱신

JAVA Bean & Session - Cookie

제 목

BEA_WebLogic.hwp

Microsoft Word - PLC제어응용-2차시.doc

11장 포인터

XSS Attack - Real-World XSS Attacks, Chaining XSS and Other Attacks, Payloads for XSS Attacks

Microsoft Word - SKINFOSEC-CHR-026- Mass SQL Injection 탐지 우회분석 보고서.doc

[로플랫]표준상품소개서_(1.042)

목차 백업 계정 서비스 이용 안내...3 * 권장 백업 정책...3 * 넷하드(100G 백업) 계정 서버로 백업하는 2가지 방법...3 * 백업서버 이용시 주의사항...3 WINDOWS 서버 사용자를 위한 백업서비스 이용 방법 네트워크 드라이브에 접속하여

설명 Description 상세정보 네이버에서운영하는서비스중하나인쥬니어네이버 ( 이하쥬니버 ) 에서는쥬니버서비스와 관련하여도움을주기위한 [ 그림 1] 과같은플래시애플리케이션이서비스되고있다.[2] [ 그림 1] 쥬니어네이버에서서비스중인쥬니버도우미플래시애플리케이션 해당플래

금오공대 컴퓨터공학전공 강의자료

SIGIL 완벽입문

0. 들어가기 전

버퍼오버플로우-왕기초편 10. 메모리를 Hex dump 뜨기 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습

JSP 의내장객체 response 객체 - response 객체는 JSP 페이지의실행결과를웹프라우저로돌려줄때사용되는객체이다. - 이객체는주로켄텐츠타입이나문자셋등의데이터의부가정보 ( 헤더정보 ) 나쿠키 ( 다음에설명 ) 등을지정할수있다. - 이객체를사용해서출력의방향을다른

PowerPoint Presentation

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

설계란 무엇인가?

리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2.

PowerPoint 프레젠테이션

MySQL-.. 1

금오공대 컴퓨터공학전공 강의자료

Cookie Spoofing.hwp

System Recovery 사용자 매뉴얼

PowerPoint Presentation

PowerPoint Presentation

로거 자료실

untitled

특징 찾아보기 열쇠 없이 문을 열 수 있어요! 비밀번호 및 RF카드로도 문을 열 수 있습니다. 또한 비밀번호가 외부인에게 알려질 위험에 대비, 통제번호까지 입력해 둘 수 있어 더욱 안심하고 사용할 수 있습니다. 나만의 비밀번호 및 RF카드를 가질 수 있어요! 다수의 가

Microsoft PowerPoint - web-part01-ch10-문서객체모델.pptx

슬라이드 1

Python으로 쿠키런 운영하기_ver최종.key

PowerPoint 프레젠테이션

2009년 상반기 사업계획

Microsoft PowerPoint UNIX Shell.pptx

Microsoft PowerPoint - ch07 - 포인터 pm0415

4S 1차년도 평가 발표자료

F O C U S 5 인터넷사이트쿠키 (Cookie) 의주요이슈및취약점분석 FOCUS 김윤현 *, 이태승 ** 인터넷서비스의편리성, 효율성증대를위하여사용되는쿠키에대하여살펴보고, 쿠키관련 국내외법률, 보안위협등을통해올바른쿠키사용방법에대하여논의하기로한다. Ⅰ. 서론 Ⅱ.

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

adfasdfasfdasfasfadf

2장 변수와 프로시저 작성하기

윤성우의 열혈 TCP/IP 소켓 프로그래밊

5장. JSP와 Servlet 프로그래밍을 위한 기본 문법(완성-0421).hwp

Microsoft Word - release note-VRRP_Korean.doc

행자부 G4C

취약점분석보고서 Simple Web Server 2.2 rc2 Remote Buffer Overflow Exploit RedAlert Team 안상환

대량문자API연동 (with directsend)

Microsoft PowerPoint - chap06-1Array.ppt

사용설명서를 읽기 전에 안드로이드(Android)용 아이디스 모바일은 네트워크 연결을 통해 안드로이드 플랫폼 기반의 모바일 기기에서 장치 (DVR, NVR, 네트워크 비디오 서버, 네트워크 카메라) 에 접속하여 원격으로 영상을 감시할 수 있는 프로그램입니다. 장치의 사

Microsoft PowerPoint UNIX Shell.ppt

작성자 : 김성박\(삼성 SDS 멀티캠퍼스 전임강사\)

PathEye 공식 블로그 다운로드 받으세요!! 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다.

chap 5: Trees

Microsoft PowerPoint - C++ 5 .pptx

목차 1. 개요 배경 파일정보 상세분석 SMB 취약점공격흐름 특징적인행위 대응

버퍼오버플로우-왕기초편 3.c언어에서버퍼사용하기 버퍼는 임시기억공간 이라는포괄적인개념이기때문에여러곳에존재할수있습니다. 즉, CPU 에도버퍼가존재할수있으며, 하드디스크에도존재할수있고, CD- ROM 이나프린터에도존재할수있습니다. 그리고앞의예제에서보신바와같이일반프로그램에도

Microsoft Word - Windows_Server_Hmail_설치법

17장 클래스와 메소드

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

Office 365 사용자 가이드

하는 gd의예를들면, /usr/ports/graphics/php52-gd 에서설치해줄수있고, xml 처리를담당하는 xml 확장모듈은 /usr/ports/textproc/php52-xml 에서설치가능하다. 어느디렉토리에서제공되는지를알려면포트시스템의루트 (/usr/port

<4D F736F F F696E74202D E20B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D62E >

쉽게 풀어쓴 C 프로그래밍

2) 활동하기 활동개요 활동과정 [ 예제 10-1]main.xml 1 <LinearLayout xmlns:android=" 2 xmlns:tools="

Microsoft PowerPoint - e pptx

PowerPoint 프레젠테이션

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

SSL Strip Attack JAC (SemiDntmd) 이우승 semidntmd.tistory.com

Transcription:

9 단원 PHP 고급문법 1. 쿠키이해하기 2. 세션이해하기 1/7

1. 쿠키이해하기 1) 쿠키 PHP는 HTTP 쿠키를투명하게지원합니다. 쿠키는원격브라우저에데이터를저장하여다시온사용자를트래킹하거나식별하는메카니즘입니다. 쿠키는회원인증과도관련하여사용되는문법입니다. 여러분이로그인을했다라는정보를담을때많이사용됩니다. 즉, 사용자의상태나접속정보저장합니다. 여러분은쿠키라고하면과자를떠올릴수가있는데, 여기서는과자의의미가없습니다. 쿠키라함은클라이언트의정보를저장할때많이사용되는문법이며, 서버에서관여는하지만정보가서버에저장되는것이아니라클라이언트의컴퓨터에저장이되어지는것을의미합니다. 쿠키를이용하면사용자마다다른정보를가질수있습니다. 쿠키는운영체제마다다를수있겠지만, 일반적은 window2000 professional은 C: Documents and Settings Administrator Cookies 라는폴더안에그내용이저장됩니다. 이곳에는여러분이사이트에접속시일반적으로여러분이로그인할때사용한계정이름으로쿠키가저장됩니다. 그리고웹사이트를서핑하다보면여러사이트들에서쿠키를사용함을알수있습니다. 사이트 url로되는쿠키를보실수있습니다. 쿠키가저장되는파일을텍스트파일입니다. 쿠키는클라이언트컴퓨터에정보가저장되기때문에누구에게나정보노출이가능합니다. 그러므로보안상쿠키에저장되면안됩니다, 쿠키에담을때는비밀번호나나주민번호같은것은저장시키면안됩니다 setcookie() 함수를사용하여쿠키를설정할수있습니다. 쿠키는 HTTP 헤더의일부분이기에, setcookie() 는브라우저에어떠한출력이이루어지기전에호출되어야합니다. header() 가가지고있는것과동일한제약입니다. 출력버퍼링함수를사용하여쿠키설정이나헤더전송을결정할때까지스크립트출력을지연할수있습니다. 클라이언트로부터전송된어떠한쿠키데이터라도 GET과 POST 방식의데이터와마찬가지로, register_globals와 variables_order 환경설정변수에의존하여자동적으로 PHP 변수로변환됩니다. 하나의쿠키이름에여러변수를지정하고싶을때는, 단순히쿠키이름에 [] 를추가하면됩니다. 2/7

PHP 4.1.0과이후에는, 어떠한쿠키라도클라이언트로부터전송받았을때, $_COOKIE 자동전역배열이항상설정됩니다. 이전버전의 PHP 에서는 $HTTP_COOKIE_VARS 라는환경변수를사용하였습니다. 이변수를사용하기위해서는 track_vars 환경설정변수가 On으로설정되어있어야합니다. track_vars는 GET, POST, COOKIE 등으로전달된변수값을각각의 $HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_COOKIE_VARS 배열변수로자동저장여부를설정합니다. PHP 4.0.3 이후버전에서는 track_vars가항상 On으로설정되어있습니다. 브라우저버그에대한정보를포함한더자세한내용은 setcookie() 함수를참조하시면됩니다. 그리고, 쿠키는 HTTP 헤더의부분이기때문에쿠키설정및해제명령은 HTML문서앞에반드시사용하시면됩니다. PHP 는쿠키를설정위해 SetCookie( ) 함수를사용하는방법입니다. 2. 세션 1) Session 의의미와구현원리 3/7

PHP 3.0 에서는 4.0으로올라오면서가장눈이띈변화라면세션을사용할수있다라는것입니다.. 세션의의미를말씀드린다면어떤유저가어떤특정사이트를접속하여머물러있는시간이라고말할수있습니다. 좀더어렵게설명을한다면, 웹서버는서로다른유저들로부터서버내에있는페이지를요청이들어올경우에각유저들의컴퓨터에유일무이한식별키를쿠키의형태로발급하여해당유저가사용자의정보즉, 사용자의로그인이나기타입력된정보를서버내에저장하여유저가다시접속하였을때유저에게발급한식별키를이용하여서버쪽에저장해놓은정보 ( 세션값 ) 를가져옴으로써유저를구별하는원리로구현된다고볼수있습니다. 2) Session 다루기 1 세션저장방법 우선 PHP 에서세션데이타를서버상에저장하는방법에대해서설명을하면, 첫번째, 사용자의데이터를환경설정파일 (PHP.ini) 에서지정한디렉토리에파일로저장하는방식으로가장기본적인방법이라고할수있습니다. 자예를들어유저의시스템에저장한식별키가 "0cd9cdv1vdf4fd4" 이라면서버내지정한디렉토리에는 "sess_0cd9cdv1vdf4fd4" 라는이름을갖는파일로생성하게됩니다. 그러므로식별키가 "0cd9cdv1vdf4fd4" 인유저가사이트에접속했을때서버에서는이식별키에해당하는파일을열어해당사용자의정보를가져오게되는방법입니다. 두번째, 서버의파일이아닌서버의메모리에저장하는방식으로파일로저장하는방법보다, 높은성능을기대할수있습니다. 특징으로접속한유저의시스템에식별키를발급할때 32개의문자열로이루어진세션아이디를생성한다는점입니다. 이값은유저의시스템에저장되며유저가서버에접속했을때브라우저를통해서버에자동전송되므로서버쪽에서웹사이트에접속해있는유저를서로구별할수있는근거가될수있습니다. 세번째, 사용자가직접세션을다루는방식을정의하는방법으로보통이방법을이용하여세션데이터를파일이나메모리, 혹은데이타베이스에저장하여관리하는방법입니다. 이렇게생성한세션아이디값은보통쿠키방식을통해사용자의시스템에저장한다는점입니다. 그러나만약에유저의브라우저가쿠키를허용하지않도록설정되어있다면, 이방식은아무런의미가없겠습니다. 따라서이때에는쿠키가아닌다른방식으로웹서버에사용자의식별키를전달할수있는방법을사용해야하며이럴경우보통은웹페이지요청시에세션아이디값을 get이나 post방식을통해함께전달해주는방식을사용합니다. 2 세션생성, 등록, 삭제및종료하기 세션을시작하는방법은간단하다.. 4/7

<? session_start()?> 이렇게세션함수를호출하면유저의시스템에이전에발급된유효세션이있는지확인하게되고, 검사결과이전값이없다면, 새로세션아이디를생성하고이전에발급한아이디가있고, 유효하다면, 서버에저장한데이터를그대로사용하게되는것입니다. 이때세션아이디는기본적으로 PHPSESSID라는이름을갖는변수에저장됩니다. 예를들어세션아이디값이 "3dff4fdg4h43" 이라면쿠키변수 $HTTP_COOKIE_VARS["PHPSESSID"] 에이세션아이디값이저장되는것입니다. 자이제값을등록시켜봅시다. <? session_start() session_register("name"); $name="kimchikuk";?> 세션등록은 session_register라는함수를사용합니다. 이렇게등록된세션파일안에는 name s:4:"kimchikuk"; 이라는내용이들어가게됩니다. 즉, name이라는변수로세션을등록하였습니다. 세션변수삭제방법또한간단합니다. <? session_start() session_unregister("name");?> 마지막으로세션를종료하려면 session_destory(); 라는함수를쓰면됩니다. 세션을종료한다는의미는현재의세션과관련된모든데이터를삭제한다는의미입니다. 즉이함수를호출한사용자의세션에등록되어있는모든데이터를완전히삭제한다는뜻입니다. 웹서버측에서본다면로그아웃을하지않고브라우저를닫았을때와같이사용자의세션이언제끝났는지 5/7

그시점을알수없는경우가있습니다. 그래서웹서버가사용자의세션을무효화시킬지를결정하는방법을알려드리겠습니다. php의세션설정항목중에 session.gc_maxlifetime 항목의값을수정해주는방법입니다. 보통은 1440초즉 24분으로되어있는데이걸줄여주는방법이있습니다. session.gc_probiblty는 session.gc_divisor와관련된가비지콜렉션을의시작을설정하는옵션입니다. 더이상의미없는세션데이터를삭제하는실행주기를설정하는항목으로기본값은 1로되어있지만, 1이라함은 1% 를의미합니다. 즉, 사용자가브라우저를닫는건서버에서잡아낼수없습니다. 대신 gc 설정으로, 일정시간이지난파일들을삭제가가능합니다. 새로운세션을시작할때 gc_maxlife로설정된시간동안접근이없는세션을 gc_probability/gc_divisor 확률로삭제한다는의미입니다. session.gc_divisor의 default가 100이므로, session.gc_probiblty 가 1이면 1/100 즉 1% 의확률로가비지콜렉션이실행된다는의미입니다. 3) Session 처리함수소개함수 - session_start - session_register - session_unregister - session_unset - session_destroy - session_is_registered - session_save_path - session_name - session_id - session_module_name - session_get_cookie_params - session_set_cookie_params - session_encode - session_decode - session_cache_limiter - session_set_save_handler 기능세션을생성하는함수현재연결된세션에데이터를저장할변수를등록하는함수현재연결된세션에서특정변수를삭제시키는함수현재연결된세션에등록되어있는모든변수의값을삭제하는함수현재의세션을종료시키는함수세션변수가현재의세션에등록되어있는지를조사하는함수세션데이터파일저장되어있는경로를반환하거나지정한디렉토리로변경하는함수현재의세션이름를반환, 지정한이름으로변경하는함수현재의세션아이디를반환하거나지정한값으로변경하는함수세션데이터다루는저장방식에관한정보를반환시키는함수세션쿠키와관련된정보를배열의형태로반환시키는함수세션쿠키를발급할때필요한인자를설정하는함수현재의세션에저장되어있는데이터를인코딩하여인코딩된문자열를반환하는함수입니다. 함수의인자로전달한세션데이터를디코딩해주는함수현재 cache limiter 항목의값으로설정되어있는이름을반환하거나이이름을지정한이름으로변경하는함수세션을다룰수있는사용자정의함수를구현 6/7

4) Session 예제 간단한세션을열고닫는예제파일을통해서세션이동작하는것을테스트해보겠습니다. 7/7