'Session'에 해당되는 글 6건

  1. 2008/06/25 PHP 세션 - 세션 , 보안
  2. 2008/06/25 PHP 세션 - 예
  3. 2008/06/25 PHP 세션 - 기정의 정수
  4. 2008/06/25 PHP 세션 - 인스톨 / 설정
  5. 2008/06/25 PHP 세션 - 소개
  6. 2008/06/25 PHP 세션

PHP 세션 - 세션 , 보안

PHP/매뉴얼 번역 2008/06/25 12:44
PHP 세션 - 세션 , 보안

세션 모듈은 세션에 저장한 정보를 볼 수 있는 것은 세션을 작성한 유저만 가능하도록 하는것은 불가능하다. 세션의 안전성을 적극적으로 지키기위해서는 세션과 연결된 값에 추가적을 작업을 하여야 한다.

세션에 넣을 데이터의 중요성을 평가하여  필요한 보호책을 생각하여야 한다.  이 대책은 보통 어떤 희생이 필요하기에 사용자의 편리성을 떨어트리기도 한다. 예를 들어 단순한 소셜엔지니어링으로부터 유저를 지키기 위해서는  session.use_only_cookies 을 유효화 해야 한다. 이 경우 유저측에서 쿠키가 항상 유효화되어 있어야하며 무효화되어 있는경우 세션을 사용할 수 없다. 

세션 ID 가 다른 사람에게 알려질 방법에는 몇가지가 있다.  다른 사람에게 넘겨진 세션 ID 로 제 3 자가 특정 ID 와 관련된 모든 리소스에 억세스할 수 있게 된다. 세션 ID 가 URL 로 전송되는 경우 외부사이트에 링크를 달고 있는 경우 외부 사이트의 referrer 로그에 세션 ID 를 담고 있는 URL 이 보존될 가능성이 있다. 두번째로 맘먹고 공격하려는 공격자가 네트워크의 트래픽을 모니터하고 있을 가능성이 있다. 세션 ID가 암호화되어 있지않는경우 세션 ID 는 네트워크상에서 일반 텍스트로 보내진다.  해결책은 서버상에 SSL 을 구축하여 유저에게 SSL 를 반드시 사용하도록한다. 


원문링크 : http://jp.php.net/manual/en/session.security.php

목차로
[PHP/매뉴얼 번역] - PHP 세션

'PHP > 매뉴얼 번역' 카테고리의 다른 글

PHP 매뉴얼 번역 작업  (2) 2009/06/21
PHP parse_url 함수  (0) 2008/06/27
PHP pathinfo 함수  (0) 2008/06/27
PHP header 함수  (0) 2008/06/27
PHP 세션 - 세션 , 보안  (0) 2008/06/25
PHP 세션 - 예  (0) 2008/06/25
PHP 세션 - 기정의 정수  (0) 2008/06/25
PHP 세션 - 인스톨 / 설정  (0) 2008/06/25
PHP 세션 - 소개  (0) 2008/06/25
PHP 세션  (0) 2008/06/25
PHP 문자열 지정방법 ( Heredoc )  (0) 2008/06/20
tags : php, Session, 세션
Trackback 0 : Comment 0

PHP 세션 - 예

PHP/매뉴얼 번역 2008/06/25 12:44
PHP 세션 - 예

세션ID 전달

세션 ID 를 통지하기 위해서는 다음의 두가지 방법이 있다. 

  • Cookies
  • URL 파라미터

session 모듈은 위 두가지방법을 지원한다.  Cookie 가 최적이지만 (클라이언트가 쿠키를 사용할 수 없는 경우가 있기에 ) 신뢰성이 없어 쿠키에만 의존할 수 없다.  2번째의 방법은 세션ID 를 직접 URL 에 포함시키는것이다. 

PHP 에는 자동적으로 링크를 바꾸는 기능이 있다. PHP 4.2.0  이후를 사용하고 있지 않는 경우  PHP 구축시에 이 기능을 유효화 시켜야 한다.  UNIX 환경에서는  --enable-trans-sid를 configure 에 지정할것.
이 옵션과 실행시의 옵션 session.use_trans_sid 가 유효한 경우 상대 URI 은 자동적으로 세션 ID 를 포함하게 된다. 

주의 : arg_separator.output php.ini  디렉티브에 따라 파라미터 구분자 를 커스터마이즈 할 수 있다. XHTML을 제대로 따르기위해서는 여기에 & 를 지정할 것

또는 세션이 시작된 경우 정의된 정수 SID 를 사용할 수도 있다.  클라이언트가 적당한 세션 쿠키를 송신하지 않은 경우 이 정수는 session_name=session_id 의 형식이 된다.  송신된 경우에는  빈 문자열이된다. 따라서 무조건적으로 URL 에 넣을 수 있다. 


다음 예는 변수의 등록방법 및 SID 를 이용하여 다른 페이지로의 링크를 하는 방법

<?php

session_start
();

if (empty(
$_SESSION['count'
])) {
 
$_SESSION['count'] = 1
;
} else {
 
$_SESSION['count'
]++;
}
?>

<p>
Hello visitor, you have seen this page <?php echo $_SESSION['count']; ?> times.
</p>

<p>
To continue, <a href="nextpage.php?<?php echo htmlspecialchars(SID); ?>">click
here</a>.
</p>


XSS 와 관련된 공격을 막기위해 SID 를 출력할때  htmlspecialchars()를 사용한다.

PHP를 컴파일할때  --enable-trans-sid 를 사용한 경우 위 예처럼 SID 를 출력할 필요가 없다. 

주의 : 상대URL 이 아닌 URL 은 외부사이트를 가리킨다고 가정하여 SID 가 추가되지 않는다.  SID 를 외부 서버로 넘겨주는것이 보안상 리스크가 생기기 때문이다. 


커스텀 세션 핸들러

세션 정보를 데이터베이스에 보존하거나 다른 보존방법을 구현하기위해서는 커스터마이즈된 보존 함수를 작성하여  session_set_save_handler() 를 사용해야 한다.


주의 : PHP 4.1.0 이후 $_SESSION $_POST , $_GET , $_REQUEST   처럼 글로벌 변수로 사용가능해졌다. $HTTP_SESSION_VARS 와 달리  $_SESSION 은 항상 글로벌이다.  global$_SESSION 에게는 필요 없음.  $_SESSION 을 사용하기 전에  session_start() 를 사용하여 세션을 개시하여야 한다는 사실에 주의할 것.
 
$_SESSION 의 키는 PHP 의 통상 변수명과 마찬가지로 제한이 있다. 즉 숫자로 시작할 수 없으며 문자 또는 언더스코어로 시작해야한다. 

register_globals 가 무효인 경우 글로벌 배열 $_SESSION  의 멤버만 세션 변수로서 등록된다. 리스토어된 세션 변수는 배열 $_SESSION 에서만 사용할 수 있다. 

보안과 코드의 가독성을 위하여  $_SESSION (또는  PHP 4.0.6 이전에서는 $HTTP_SESSION_VARS) 을 사용할 것을 권장하고있다. $_SESSION  의 경우 session_register(), session_unregister(), session_is_registered() 는 불필요. 사용자는 통상의 변수와 같이 세션 변수에 억세스 할 수 있다. 

세션에서 변수 등록
<?php
session_start
();
// Use $HTTP_SESSION_VARS with PHP 4.0.6 or less
if (!isset($_SESSION['count'
])) {
 
$_SESSION['count'] = 0
;
} else {
 
$_SESSION['count'
]++;
}
?>


register_globals 가 무효한 경우 $_SESSION 에 등록된 변수의 등록이 해제됨

<?php
session_start
();
// Use $HTTP_SESSION_VARS with PHP 4.0.6 or less
unset($_SESSION['count'
]);
?>


경고 

unset($_SESSION) 로  모든 $_SESSION 을 초기화해서는 안됨. $_SESSION 수퍼글로벌 변수를 이용한 세션 변수의 등록이 불가능해지기 때문이다. 


경고

세션 변수에서는 참조를 사용할 수 없다. 다른 변수에의 참조를 리스토어 할 방법이 없기때문이다.


register_globals 가 유효한 경우 모든 글로벌 변수는 세션 변수로서 등록할 수 있고 세션 변수는 대응하는 글로벌 변수로서 리스토어 할 수 있다. PHP 는 어떤 글로벌 변수가 세션 변수로서 등록되는지를 알아야 하기에 사용자는 변수를 session_register() 함수로 등록해야 한다.  그러나 $_SESSION 의 경우 엔트리를 설정하여 함수등록과 같은 기능을 한다.

경고

PHP 4.3.0 이전 버젼에서는 $_SESSION 을  사용하여 register_globals 을 무효화하는 경우  session_register() ,  session_is_registered() , session_unregister() 을 사용하지않도록... 보안상 , 그리고 성능면에서 register_globals 을 무효화 하는 쪽을 권장함.


register_globals 가 유효한 경우 글로벌 변수와 $_SESSION 의 엔트리는 이전의 세션 인스턴스에서 등록된 세션 변수의 같은 값을 참조하게 된다.  그러나 변수가  $_SESSION 에서 등록된 경우  글로벌 변수가 사용가능하도록 되는것은 다음 리퀘스트 이후가 된다.

PHP 4.2.3 와 그 이전버젼에서만 일어나는 트러블중에  session_register() 로  새 세션 변수를 등록할 경우 글로벌 스코프의 엔트리와 $_SESSION 의 엔트리는 다음 session_start() 까지 같은 값에의 참조는 되지 않는다.  즉 , 글로벌 변수의 수정은 $_SESSION 의 엔트리에는 반영되지 않는다. PHP 4.3.0 에서는 수정되었음.


원문링크 : http://www.php.net/manual/en/session.examples.php


목차로
[PHP/매뉴얼 번역] - PHP 세션

'PHP > 매뉴얼 번역' 카테고리의 다른 글

PHP 매뉴얼 번역 작업  (2) 2009/06/21
PHP parse_url 함수  (0) 2008/06/27
PHP pathinfo 함수  (0) 2008/06/27
PHP header 함수  (0) 2008/06/27
PHP 세션 - 세션 , 보안  (0) 2008/06/25
PHP 세션 - 예  (0) 2008/06/25
PHP 세션 - 기정의 정수  (0) 2008/06/25
PHP 세션 - 인스톨 / 설정  (0) 2008/06/25
PHP 세션 - 소개  (0) 2008/06/25
PHP 세션  (0) 2008/06/25
PHP 문자열 지정방법 ( Heredoc )  (0) 2008/06/20
tags : php, Session, 세션
Trackback 0 : Comment 0

PHP 세션 - 기정의 정수

PHP/매뉴얼 번역 2008/06/25 12:43
PHP 세션 - 기정의 정수

다음의 정수가 정의 되어 있으며  이확장 모듈이 PHP 내장으로 컴파이되어 있거나 , 런타임시(실행시)에 동적으로 로드되어 있는 경우 사용가능하다.
SID (string)
"name=ID" 형식으로 세션명과 세션ID를 담고 있는 정수. 세션 ID 가 세션쿠키에 적절하게 세트되어 있는 경우에는 빈문자가 들어간다. 


원문링크 : http://www.php.net/manual/en/session.constants.php


목차로
[PHP/매뉴얼 번역] - PHP 세션

'PHP > 매뉴얼 번역' 카테고리의 다른 글

PHP parse_url 함수  (0) 2008/06/27
PHP pathinfo 함수  (0) 2008/06/27
PHP header 함수  (0) 2008/06/27
PHP 세션 - 세션 , 보안  (0) 2008/06/25
PHP 세션 - 예  (0) 2008/06/25
PHP 세션 - 기정의 정수  (0) 2008/06/25
PHP 세션 - 인스톨 / 설정  (0) 2008/06/25
PHP 세션 - 소개  (0) 2008/06/25
PHP 세션  (0) 2008/06/25
PHP 문자열 지정방법 ( Heredoc )  (0) 2008/06/20
PHP Late Static Bindings  (0) 2008/06/20
tags : php, Session, 세션
Trackback 0 : Comment 0

PHP 세션 - 인스톨 / 설정

PHP/매뉴얼 번역 2008/06/25 12:28
PHP 세션 - 인스톨 / 설정

외부라이브러리 필요없음.

PHP의 세션기능은 디폴트로 유효화 되어있다.  세션 기능을 무효화해서 PHP 를 구축하고 싶으면 configure 에 옵션 --disable-session 를 지정해야한다.  세션 기억영역으로 공유메모리(mm) 를 사용하려면 PHP 의 configure 에 --with-mm[=DIR] 를 지정한다.

Windows 버젼의 PHP 에는 이 확장모듈이 내장되어있다.  함수를 사용하기위해서는 확장모듈을 추가 로드할 필요는 없다.


PHP 세션 - 실행시 설정 (런타임 설정)
php.ini 의 설정에 따라 동작이 바뀐다.

세션 설정 옵션
이름 디폴트 변경가능여부 변경이력
session.save_path "" PHP_INI_ALL  
session.name "PHPSESSID" PHP_INI_ALL  
session.save_handler "files" PHP_INI_ALL  
session.auto_start "0" PHP_INI_ALL  
session.gc_probability "1" PHP_INI_ALL  
session.gc_divisor "100" PHP_INI_ALL PHP 4.3.2 부터
session.gc_maxlifetime "1440" PHP_INI_ALL  
session.serialize_handler "php" PHP_INI_ALL  
session.cookie_lifetime "0" PHP_INI_ALL  
session.cookie_path "/" PHP_INI_ALL  
session.cookie_domain "" PHP_INI_ALL  
session.cookie_secure "" PHP_INI_ALL PHP 4.0.4 부터
session.cookie_httponly "" PHP_INI_ALL PHP 5.2.0 부터
session.use_cookies "1" PHP_INI_ALL  
session.use_only_cookies "1" PHP_INI_ALL PHP 4.3.0 부터
session.referer_check "" PHP_INI_ALL  
session.entropy_file "" PHP_INI_ALL  
session.entropy_length "0" PHP_INI_ALL  
session.cache_limiter "nocache" PHP_INI_ALL  
session.cache_expire "180" PHP_INI_ALL  
session.use_trans_sid "0" PHP_INI_ALL PHP_INI_ALL 은  PHP <= 4.2.3 , PHP_INI_PERDIR 은 PHP < 5 부터.
PHP 4.0.3 부터
session.bug_compat_42 "1" PHP_INI_ALL PHP 4.3.0 부터. PHP 6.0.0 에서 삭제
session.bug_compat_warn "1" PHP_INI_ALL PHP 4.3.0 부터.
PHP 6.0.0 에서 삭제
session.hash_function "0" PHP_INI_ALL PHP 5.0.0 부터
session.hash_bits_per_character "4" PHP_INI_ALL PHP 5.0.0 부터
url_rewriter.tags "a=href,area=href,
frame=src,form=,fieldset="
PHP_INI_ALL PHP 4.0.4 부터

PHP_INI_*  정수의 설명 및 정의에 대해서는 php.ini 디렉티브 를 참조.

세션 관리 시스템은 php.ini파일에 기술 가능한 많은 설정옵션을 지원한다.

session.save_handler string

session.save_handler  는  세션에 관련되는 데이터의 보존 및 값을 구할때 사용하는 핸들러를 정의한다.  디폴트는 files  . 각 확장모듈에서 독자 save_handler 를 사용할 수 있다.  인스톨 환경단위에서 등록되어 있는 핸들러를 구하려면 phpinfo() 를 사용. session_set_save_handler() 참조


session.save_path string

session.save_path 는 보존 핸들러에 넘겨주는 파라미터를 정의. 디폴트의 파일 핸들러를 선택한 경우 파일이 작성되는 곳의 패스가 넘겨진다.  session_save_path() 참조

옵션의 파라미터로서 N(수치)를 지정할 수 있다. 세션파일을 분산해서 보존할때 디렉토리 계층레벨을 결정한다. 예를들어  '5;/tmp' /tmp/4/b/1/e/3/sess_4b1e384ad74619bd212e236e52a5a174If  라는 위치에 세션파일을 생성한다.  N 을 사용하려면 관련 디렉토리가 사전에 작성되어 있어야 한다.
이를 위해 ext/session 에  mod_files.sh 라는 스크립트 파일이 존재한다.  또한 0 이상의 N 이 지정되어 있는 경우에는 자동 가비지콜렉션이 작동하지않는 사실에 주의할것. 자세한 내용은 php.ini 을 볼것.
또한 N 을 지정하는 경우 session.save_path 를  "quotes" 로 둘러싸야한다.  왜냐하면 구분자(;) 는  php.ini  에서는 코멘트로 이용되고 있기때문이다. 

경고

이 설정을 /tmp (디폴트) 처럼 어디에서도 읽어들일수 있는 디렉토리하고 있는 경우 , 서버상의 다른 유저가 이 디렉토리의 파일파일 리스트를 읽어들일 수 있기에 세션을 하이잭할 수 있다. 

주의: PHP 4.3.6 이전에서는 Windows 유저가 PHP 의 session 함수를 사용하기위해서는 이 변수를 변경해야한다. c:/temp 같이 유효한 패스를 지정할 것.

session.name string

session.name 은 세션명을 지정하여 쿠키명으로서 사용된다. 알파벳 문자만 지정해야한다. 디폴트는 PHPSESSID  이다.  session_name() 참조 


session.auto_start
boolean

session.auto_start
는 리퀘스트를 개시할때 세션모듈이 세션을 자동적으로 개시할지 여부를 지정한다.  디폴트는 0 (무효).


session.serialize_handler
string

session.serialize_handler
는  시리얼라이즈 또는 시리얼라이즈된 데이터를 복원하기위해 사용되는 핸들러의 이름을 지정한다.  현재 ( php 또는 php_binary 라는 이름의 ) PHP 내부 포맷 및 (wddx 라는 이름의 ) WDDX 가 서포트되고 있다. WDDX 는 PHP 가 WDDX 서포트 를 유효화 하여 컴파일 되어 있는 경우에만 사용가능하다.  디폴트는 php 


session.gc_probability
integer

session.gc_probability
session.gc_divisor 의 조합으로  gc (가비지콜렉션)루틴의 기동을 제어한다.  디폴트는 1 .   session.gc_divisor 참조



session.gc_divisor
integer

session.gc_divisor
session.gc_probability 의 조합으로 모든 세션의 초기화과정에서 gc(가비지콜렉션 )프로세스도 기동할 확률을 제어한다. 확률은 gc_probability/gc_divisor 으로 계산된다.  예를 들어 1/100 은 각 리퀘스트마다 1% 의 확률로 GC 프로세스가 기동한다. session.gc_divisor 의 디폴트 값은 100 이다. 


session.gc_maxlifetime
integer

session.gc_maxlifetime
은  데이터가 '쓰레기' 로 여겨져 소거될때까지의 초수를 지정한다.  가비지 콜렉션 (쓰레기의 수집) 은 세션개시할때 일어남.

주의 : 다른 값을 session.gc_maxlifetime 에 지정하고 있는 또 다른 스크립트가 세션데이터의 보존장소를 공유하고 있는 경우 , 가장 작은 설정치에 도달한 시점에서 데이터가 소거된다.  이런 경우에는 서로 session.save_path 를 사용한다.

주의 :  디폴트의 파일을 베이스로 세션핸들러를 사용하고 있는 경우 사용하는 파일시스템은 억세스 시간(atime) 을 기록할 수 있어야한다. Windows FAT 는 이게 불가능하기에  FAT 파일 시스템 또는 atime 의 기록이 불가능한 다른 파일 시스템에서 문제가 발생한경우 세션의 가비지콜렉션처리를 위해 다른 방법을 준비해야한다.
PHP4.2.3 이후 atime 대신에 mtime(갱신시간)이 사용된다. atime 를 사용할 수 없는 파일시스템의 문제가 사라짐.

session.referer_check string

session.referer_check
  에는 HTTP Referer 체크를 위한 문자열을 지정한다. Referer 가 클라이언트에 의해 송신되고 지정한 문자열이 없는 경우 세션 ID 는 무효화됨. 디폴트는 빈 문자열.


session.entropy_file
string

session.entropy_file
는 세션ID를 작성할때의 추가 엔트로피 소스 로 사용되는 외부 리소스에의 패스를 지정한다.  예를 들어 많은 UNIX 에서 이용가능한 /dev/random 또는 /dev/urandom 가 있다. 


session.entropy_length
integer

session.entropy_length
는 바로 위에서 지정한 파일로부터 읽어들이는 바이트 수를 지정한다.  디폴트는 0 (무효)


session.use_cookies
boolean

session.use_cookies
에 의해 클라이언트축에 세션ID 를 보존 할때 쿠키를 사용할지 여부를 지정한다.  디폴트는 1 (유효)


session.use_only_cookies
boolean

session.use_only_cookies
는 이 모듈이 클라이언트 쪽에 세션ID 를 보존할때 Cookie 을 사용하도록 지정한다. 이 설정을 유효화 하여 세션 ID 를 URL 에 붙여서 하는 공격을 막을 수 있다. 이 설정은 PHP 4.3.0 에서 추가되었다. PHP 6.0 이후부터 디폴트가 1 (유효) 이 됨.


session.cookie_lifetime
integer

session.cookie_lifetime
은  브라우저에게 송신하는 쿠키의 유효기간을 초단위로 지정한다. 0을 지정하면  브라우저를 닫을때까지라는 의미.  디폴트는 0 .  session_get_cookie_params()session_set_cookie_params() 참조 

주의 : 유효기간의 타임스탬프는 서버의 시각을 기본으로 해서 정해진다.


session.cookie_path
string

session.cookie_path
에 의해 session_cookie 로 설정되는 패스를 지정한다.  디폴트는 / session_get_cookie_params() 및 session_set_cookie_params() 도 참조.


session.cookie_domain
string

session.cookie_domain
에 의해  session_cookie 에서 지정하는 도메인을 지정한다. 디폴트는 지정되지않음. 이 경우는 쿠키의 사양에 따라 쿠키를 작성한 서버의 호스트명이 지정된다.  session_get_cookie_params()session_set_cookie_params() 도 참조 


session.cookie_secure
boolean

session.cookie_secure
는 시큐어한 접속을 통해서만 쿠키를 송신할지여부를 지정. 디폴트는 off
이 설정은 PHP 4.0.4 에서 추가됨.
 session_get_cookie_params()및 session_set_cookie_params() 참조


session.cookie_httponly
boolean

쿠키를 HTTP 로만 억세스가능하도록 설정. 즉 JavaScript 같은 스크립트 언어에서는 억세스가 불가능해짐 . 이 설정을 사용하면 XSS 공격에 의한 ID 도난의 위험성이 줄어든다.  ( 하지만 모든 브라우저가 이 설정을 지원하고 있지는 않다. )


session.cache_limiter
string

session.cache_limiter
에 의한  세션 페이지의 캐쉬제어 방법(none / nocache / private / private_no_expire / public) 을 지정. 디폴트는 nocache
session_cache_limiter() 참조


session.cache_expire
integer

session.cache_expire
에 의해 캐쉬된 세션페이지의 유효기간을 분단위로 지정 이 옵션은  nocache 리미터에 에서는 영향을 받지 않는다 . 디폴트는 180
session_cache_expire()도 참조


session.use_trans_sid
boolean

session.use_trans_sid
는 투과적 세션 ID 를 부가할지 여부를 지정. 디폴트는 0(무효)

주의 : PHP 4.1.2 이전 버젼에서 이 옵션은  --enable-trans-sid  로 컴파일하여 유효화하였다.  PHP 4.2.0 이후부터 trans-sid 기능은 항상 컴파일 된다. URL를 기본으로 한 세션 관리는 쿠키를 기본으로한 세션관리보다 세큐리터 리스크가 커진다.  예를 들어 유저가 email 로 친구에게 액티브한 세션ID 를 포함한 URL 를 보낼 수도 있고, 유저는 자신의 북마크에 세션 ID 를 포함한 URL를 보존하여 항상 같은 ID 로 사용하여 사이트에 억세스할 수도 있다. 

session.bug_compat_42 boolean

PHP 버젼이 4.2.3 및 그 이전에는 예를들어 register_globals 가 무효한 경우에도 글로벌스코프에서 세션변수의 초기화를 허용하는 문서화되어 있지 않은 특징/버그가 있다.  이 기능을 사용하고 있는 경우 session.bug_compat_warn 도 유효로 하고있는 경우 PHP 4.3.0 및 그 이후버젼에서는 경고가 생긴다.  이 특징/ 버그는 이 디렉티브를 무효로 하여 막을 수 있다. 


session.bug_compat_warn
boolean

PHP 버젼이 4.2.3 및 그 이전에는 예를들어 register_globals 가 무효한 경우에도 글로벌스코프에서 세션변수의 초기화를 허용하는 문서화되어 있지 않은 특징/버그가 있다.   이 기능을  session.bug_compat_42  와  session.bug_compat_warn  를 유효화하여 사용하고 있는 경우  PHP 4.3.0  및 그 이후버젼에서 경고가 발생한다. 


session.hash_function
mixed

session.hash_function
에 의해 세션 ID 를 생성하기위해 사용되는 해쉬 알고리즘을 지정할 수 있다. '0' 은 MD5 (128 비트) 로 , '1' 은 SHA-1 (160 비트) 를 의미.

PHP 6.0.0 이후부터는 hash 확장모듈 의 임의의 알고리즘이  (이 확장모듈이 사용가능한 경우) 지정할 수 있도록됨. 예를 들어 sha512  나  whirlpool 등등... 지원되는 알고리즘들은 hash_algos() 함수로 구할 수 있다. 

주의 : 이 디렉티브는 PHP 5  에서 도입됨



session.hash_bits_per_character
integer

session.hash_bits_per_character
로 바이너리 해쉬데이터를 가독 데이터로 변환할 때 각각의 문자에 몇비트를 스토어 할지를 정의할 수 있다.  지정가능한 값은 '4' (0-9, a-f) ,'5' (0-9, a-v) 그리고 '6' (0-9, a-z, A-Z, "-", ",") 이다.

주의 : 이 디렉티브는  PHP 5 에서 도입됨.



url_rewriter.tags
string

url_rewriter.tags
는 투과적 세션 ID 의 부가기능이 유효화 되어있을 경우 세션 ID를 포함하기 위해 바뀌게 되는 HTML 태그를 지정할 수 있다.  디폴트는  a=href , area=href , frame=src , input=src , form=fakeentry , fieldset=  이다. 

주의 : HTML/XHTML strict 에 맞추고 싶은 경우에는 form 엔트리를 삭제하고 form 필드의 전후에 <fieldset> 태그를 사용할 것.

track_vars register_globals 설정은 세션변수의 보존및 회복 방법에 영향을 준다. 

주의 : PHP 4.0.3 이후 track_vars 는 항상 on 


원문링크 :
http://www.php.net/manual/en/session.setup.php
http://www.php.net/manual/en/session.installation.php
http://www.php.net/manual/en/session.configuration.php


목차로
[PHP/매뉴얼 번역] - PHP 세션

'PHP > 매뉴얼 번역' 카테고리의 다른 글

PHP pathinfo 함수  (0) 2008/06/27
PHP header 함수  (0) 2008/06/27
PHP 세션 - 세션 , 보안  (0) 2008/06/25
PHP 세션 - 예  (0) 2008/06/25
PHP 세션 - 기정의 정수  (0) 2008/06/25
PHP 세션 - 인스톨 / 설정  (0) 2008/06/25
PHP 세션 - 소개  (0) 2008/06/25
PHP 세션  (0) 2008/06/25
PHP 문자열 지정방법 ( Heredoc )  (0) 2008/06/20
PHP Late Static Bindings  (0) 2008/06/20
PHP 타이프 힌팅  (0) 2008/06/20
Trackback 0 : Comment 0

PHP 세션 - 소개

PHP/매뉴얼 번역 2008/06/25 12:25
PHP 세션 - 소개

PHP의 세션기능은 여러번에 걸친 억세스를 통해서 특정 데이터를 유지하기위한 방법을 구현하고 있다. 보다 커스터마이즈된 어플리케이션을 구축할 수가 있다. 

Web 사이트 방문자에게 세션ID 라는 유니크ID 를 할당하며 이 ID는 유저(클라이언트)쪽에 쿠키로 저장하거나 URL 에 추가한다. 

세션 기능을 사용하여 임의의 갯수의 변수를 리퀘스트와 리퀘스트사이에 넘겨주고 받을 수 있게되었다.  방문자가 사이트에 억세스할때 PHP 는 특정 세션 ID 가 리퀘스트와 함께 송신되고 있는지를 (session.auto_start 가 1일 경우) 자동적으로 , 또는 (session_start() 에 의해 명시적으로 또는 session_register() 에 의한 암묵적으로)  확인한다.  이 ID 가 송신되고 있는 경우에는 이전에 보존된 환경이 재생성된다.

경고 : session.auto_start 를 on 한 경우 오브젝트를 세션변수에 대입할 수 없게 된다. 세션이 오브젝트를 재생성하기 위해서는 세션 개시전에 클래스정의가 로드되어야하기 때문이다.

모든 등록된 변수는 리퀘스트가 종료된후 시리얼라이즈된다.  미정의 등록변수는 미정의 되었다고 마크가 붙는다.  이러한 변수는 나중에 유저가 정의하지않는 한 이후의 억세스에서 세션모듈에 의해 정의되지 않는다.


경고 : 일부데이터 타입은 시리얼라이즈가 불가능하기에 세션에 저장할 수 없다. 리소스 타입의 변수 또는 순환 참조(circular references)를 하고 있는 오브젝트  (예를 들어 자기자신에의 참조를 다른 오브젝트에게 넘겨주고 있는 오브젝트 )  들이 여기에 속한다.


주의 : 세션기능은 PHP 4.0.0 에서 지원됨.

주의 : 세션을 처리할때 session_register() 함수를 사용하거나  수퍼글로벌 배열 $_SESSION 에 새로운 키를 추가하여 변수가 등록될때까지 세션의 레코드는 생성되지 않는다.  세션이 session_start() 함수에 의해 개시될때에도 마찬가지이다.


원문링크 :
http://www.php.net/manual/en/intro.session.php
목차로
[PHP/매뉴얼 번역] - PHP 세션

'PHP > 매뉴얼 번역' 카테고리의 다른 글

PHP header 함수  (0) 2008/06/27
PHP 세션 - 세션 , 보안  (0) 2008/06/25
PHP 세션 - 예  (0) 2008/06/25
PHP 세션 - 기정의 정수  (0) 2008/06/25
PHP 세션 - 인스톨 / 설정  (0) 2008/06/25
PHP 세션 - 소개  (0) 2008/06/25
PHP 세션  (0) 2008/06/25
PHP 문자열 지정방법 ( Heredoc )  (0) 2008/06/20
PHP Late Static Bindings  (0) 2008/06/20
PHP 타이프 힌팅  (0) 2008/06/20
PHP 오브젝트의 비교  (0) 2008/06/20
tags : php, Session, 세션
Trackback 0 : Comment 0

PHP 세션

PHP/매뉴얼 번역 2008/06/25 12:01
여기에 번역해놓았으니 여기를 참고할것.
http://doc.a4box.com/php/book.session.html





세션 (Sessions)

PHP 의 세션은 연속된 엑세스에서 특정데이터를 유지하기 위한 방법이다.  이 기능을 이용하여 보다 커스터마이즈된 어플리케이션의 구축이 가능하며 웹 사이트를 더 멋있게 꾸밀 수 있다. 자세한 정보는 다음의 목차들을 참조할것

  1. 소개 
  2. 인스톨 / 설정
    • 인스톨 순서
    • 실행시(런타임)설정
    • 리소스 타입
  3. 기정의 정수
  4.  
    • 세션ID넘기기
    • 커스텀 세션 핸들러
  5. 세션 , 보안
  6. 세션 함수 목차
    • session_cache_expire    현재의 캐시의 유효기간을 리턴
    • session_cache_limiter   현재의 캐시리미터를 구하거나 설정
    • session_commit          session_write_close 의 얼라이어스
    • session_decode          문자열로부터 세션 데이터를 디코드
    • session_destroy         세션에 등록된 데이터를 전부 파기
    • session_encode          현재의 세션데이터를 문자열로 인코드
    • session_get_cookie_params   세션쿠키의 파라미터값 구함
    • session_id              현재 세션 ID 를 구하거나 설정
    • session_is_registered   변수가 세션에 등록되어 있는지 검사
    • session_module_name     현재의 세션 모듈을 구하거나 설정
    • session_name            현재의 세션명을 구하거나 설정
    • session_regenerate_id   현재 세션ID 를 새로 생성한 ID 로 바꿈
    • session_register        현재 세션에 하나 이상의 변수를 등록
    • session_save_path       현재의 세션 데이터보전 패스를 구하거나 설정
    • session_set_cookie_params  세션쿠키파라미터를 설정
    • session_set_save_handler   유저 정의 세션 보존 함수를 설정
    • session_start           세션데이터를 초기화
    • session_unregister      현재 세션에서 변수 삭제
    • session_unset           모든 세션변수를 개방
    • session_write_close     세션 데이터를 저장후 세션 종료



    원문 링크 : http://www.php.net/manual/en/book.session.php

'PHP > 매뉴얼 번역' 카테고리의 다른 글

PHP 세션 - 세션 , 보안  (0) 2008/06/25
PHP 세션 - 예  (0) 2008/06/25
PHP 세션 - 기정의 정수  (0) 2008/06/25
PHP 세션 - 인스톨 / 설정  (0) 2008/06/25
PHP 세션 - 소개  (0) 2008/06/25
PHP 세션  (0) 2008/06/25
PHP 문자열 지정방법 ( Heredoc )  (0) 2008/06/20
PHP Late Static Bindings  (0) 2008/06/20
PHP 타이프 힌팅  (0) 2008/06/20
PHP 오브젝트의 비교  (0) 2008/06/20
PHP 오브젝트의 클론 생성  (0) 2008/06/20
Trackback 0 : Comment 0