2012-10-25 3 views
3

나는 로그인 시스템으로 웹 사이트를 구축했습니다. 방금 준비가 끝나면 Acunetix로 스캔했지만 다음 메시지가 나타납니다.세션 HttpOnly 플래그가 설정되지 않은 쿠키

세션 HttpOnly 플래그가없는 세션 쿠키 보안 쿠키가없는 세션 쿠키 (SSL 연결이있는 경우에만 사용)

내 질문에, 어떻게 내 모든 세션 데이터에 대해 HttpOnly 플래그를 설정할 수 있습니까? 사용자 로그인시 세션을 사용하고 있습니다. 나는 그들에게 그들의 userID 번호를 가진 세션을 제공하고 있으며, 나는 그 userID를 사용하여 데이터를 얻고있다.

모든 세션을 HTTPOnly로 설정하고 보안을 설정할 수있는 간단한 방법이 없으므로 아무도 세션에 손을 대볼 수 없습니까?

답변

7

당신이 중 하나를 변경 php.ini 설정, 또는 ini_set() 호출을 통해이 session.cookie_secure을 변경할 수 있으며, session.cookie_httponly 값은 true입니다.

세션을 시작하기 전에 session_set_cookie_params()을 사용하여 원하는 효과를 얻을 수 있습니다. 당신이 사용하는 경우 당신은 또한 단지 falsehttponly 플래그를 설정할 수

http://us3.php.net/manual/en/function.session-set-cookie-params.php

+0

내가 php.ini 파일에 설정하면, 그것은 안전하고이 문제가 될 것입니다 그것으로 해결 되었습니까? – user1406071

+0

예, phi.ini 또는 런타임에 언급 된 다른 방법을 통해 두 ini 값을 올바르게 설정하면 보안 검색을 통과해야합니다. –

+0

webmin에서 php.ini를 보았지만 session.cookie_httponly와 같은 것이 없습니다. (버전 5.2는 괜찮습니까?) – user1406071

1

이 질문에 대해서는 this excellent site을 확인하십시오. 그것은 (또는 적합한 런타임 기능을 통해) php.ini 파일의 세션 섹션에서 설정에 온다 :

session.cookie_httponly = True 
0

PHP의 setcookie :

// params: name, value, expiration, path, domain, secure, http-only 
setcookie('session-cookie-key', 'data', 0, '/', 'example.com', true, false); 
관련 문제