당신은 어떻게 설정을 사용 HttpOnly 쿠키는 PHP
문제
할 수 있는 방법 설정에서 쿠키를 나 PHP apps
로 HttpOnly cookies
?
해결책
- 대 귀하의 쿠키, 이 대답합니다.
- 대 PHP 의 자신의 세션 쿠키 (
PHPSESSID
, 기본적으로)참조하십시오 @리치의 응답
이 setcookie()
고 setrawcookie()
기능,도입 httponly
매개변수,다시 어둠 속에서 나 PHP5.2.0 만들고,이 좋은 쉽습니다.단순히 설정 7 번째 매개 변수를 사용하여 사용자에 따라 구문
기능 구문을 간소화에 대한 간결함
setcookie( $name, $value, $expire, $path, $domain, $secure, $httponly )
setrawcookie( $name, $value, $expire, $path, $domain, $secure, $httponly )
입력 NULL
에 대한 매개 변수 상태를 유지하고자하는 기본값으로.을 수행할 수도 있습니하는 경우 고려해야정 secure
매개 변수입니다.
그것은 또한 가을 사용하여 이전,낮은 수준 header()
기능:
header( "Set-Cookie: name=value; httpOnly" );
다른 팁
PHP 의 자신의 세션에서는 쿠키를 아파치:
추가 이것을 당신의 아파치 구성이나 .htaccess
<IfModule php5_module>
php_flag session.cookie_httponly on
</IfModule>
이 설정할 수도 있습니다 내에서 스크립트로 호출하기 전에 session_start()
.
ini_set( 'session.cookie_httponly', 1 );
식 HttpOnly 멈추지 않는 교차 사이트 스크립팅;대신,그것을 중화하는 가능한 한 가지 공격,그리고 현재 그만에 IE(FireFox 노출 HttpOnly 에서 쿠키를 XmlHttpRequest,그리고 사파리지 않는 명예 그 모두에서).모든 수단에 의해 차례로 HttpOnly 에,하지만 떨어지지 않도의 시간을 출력 필터링하고 털 테스트에서는 무역에 대한니다.
Note PHP 회의 쿠키를 사용하지 않는 httponly
기본적으로 합니다.
그렇게 하도록 요청합니다.
$sess_name = session_name();
if (session_start()) {
setcookie($sess_name, session_id(), null, '/', null, null, true);
}
의 몇 가지의 항목을 참고 여기:
- 전화
session_name()
기session_start()
- 이것은 또한 기본 경로를 설정하는'/',는 가 필요한 오페라 하지만 PHP 세션에 쿠키를 하지 않는 기본적으로 다.
<?php
//None HttpOnly cookie:
setcookie("abc", "test", NULL, NULL, NULL, NULL, FALSE);
//HttpOnly cookie:
setcookie("abc", "test", NULL, NULL, NULL, NULL, TRUE);
?>
여기에 대한 설명에서 모든 것을...5.2 만록
에 명시된 바와 같이 해당 문서,당신은 설정할 수 있습니다 헤더에서 자신의 이전 버전 PHP
header("Set-Cookie: hidden=value; httpOnly");
지정할 수 있습니다 그것은에서 쿠키 설정 기능 보 php 설명서
setcookie('Foo','Bar',0,'/', 'www.sample.com' , FALSE, TRUE);
당신이 사용할 수 있습니다 헤더 파일.
// setup session enviroment
ini_set('session.cookie_httponly',1);
ini_set('session.use_only_cookies',1);
모든 이 방법은 미래 세션 쿠키는 사용 httponly.
- 업데이트됩니다.
오른쪽에 구문의 명령은 php_flag
php_flag session.cookie_httponly On
그리고,처음 응답 서버에서 쿠키를 설정하고 여기에(예를 들어 볼 수 있습니다"HttpOnly"지시어.그래서 테스트를 위해 쿠키를 삭제 한 후 브라우저에서 모든 테스트는 요청을 합니다.