소프트웨어 보안은 보안 소프트웨어가 아닙니다. 여기서는 인증, 액세스 제어, 기밀성, 암호화, 권한 관리 등의 항목에 대해 설명합니다.
true
로 설정된 isSecure
매개 변수 없이 쿠키가 생성됩니다.Secure
플래그를 지원합니다. 플래그가 설정되면 브라우저는 HTTPS를 통해 쿠키를 전송하기만 합니다. 암호화되지 않은 채널을 통해 쿠키를 전송하면 네트워크 염탐 공격에 노출될 수 있으며 안전한 플래그를 사용하는 것이 쿠키의 값 자격 증명을 유지하는 데 도움을 줍니다. 이것은 쿠키가 개인 정보를 포함하거나 세션 ID를 전하는 경우 특히 중요합니다.isSecure
매개 변수를 true
로 설정하지 않고 쿠키를 생성합니다.
...
Cookie cookie = new Cookie('emailCookie', emailCookie, path, maxAge, false, 'Strict');
...
isSecure
매개 변수를 설정하지 않는 경우, HTTPS 요청 중에 전송된 쿠키는 다음 HTTP 요청 중에도 전송됩니다. 암호화되지 않은 무선 연결을 통한 네트워크 트래픽 염탐은 공격자에게는 간단한 작업이며 HTTP를 통한 쿠키(특히 세션 ID가 있는 쿠키) 전송은 응용 프로그램을 손상시킬 수 있습니다.true
로 설정된 Secure
플래그 없이 쿠키가 생성됩니다.Secure
플래그를 지원합니다. 플래그가 설정되면 브라우저는 HTTPS를 통해 쿠키를 전송하기만 합니다. 암호화되지 않은 채널을 통해 쿠키를 전송하면 네트워크 염탐 공격에 노출될 수 있으므로 안전한 플래그를 사용하는 것이 쿠키의 값 자격 증명을 유지하는 데 도움을 줍니다. 이것은 쿠키가 개인 정보를 포함하거나 세션 ID를 전하는 경우 특히 중요합니다.Secure
속성 설정 없이 쿠키가 응답에 추가되었습니다.
...
HttpCookie cookie = new HttpCookie("emailCookie", email);
Response.AppendCookie(cookie);
...
Secure
플래그를 설정하지 않는 경우, HTTPS 요청 중에 전송된 쿠키는 다음 HTTP 요청 중에도 전송됩니다. 암호화되지 않은 무선 연결을 통한 네트워크 트래픽 염탐은 공격자에게는 간단한 작업이므로 HTTP를 통한 쿠키(특히 세션 ID가 있는 쿠키) 전송은 응용 프로그램을 손상시킬 수 있습니다.Secure
플래그를 true
로 설정하지 않고 쿠키를 생성합니다.Secure
플래그를 지원합니다. 플래그가 설정되면 브라우저는 HTTPS를 통해 쿠키를 전송하기만 합니다. 암호화되지 않은 채널을 통해 쿠키를 전송하면 네트워크 염탐 공격에 노출될 수 있으므로 안전한 플래그를 사용하는 것이 쿠키의 값 자격 증명을 유지하는 데 도움을 줍니다. 이는 쿠키가 개인 데이터 또는 세션 ID를 포함하거나 CSRF 토큰을 전하는 경우 특히 중요합니다.Secure
플래그를 설정하지 않고 쿠키를 응답에 추가합니다.
cookie := http.Cookie{
Name: "emailCookie",
Value: email,
}
http.SetCookie(response, &cookie)
...
Secure
플래그를 설정하지 않는 경우, HTTPS 요청 중에 전송된 쿠키는 다음 HTTP 요청 중에도 전송됩니다. 그러면 공격자가 암호화되지 않은 네트워크 트래픽을 염탐(무선 네트워크를 통하는 경우 특히 쉬움)하여 쿠키를 손상시킬 수 있습니다.true
로 설정된 Secure
플래그 없이 쿠키가 생성됩니다.Secure
플래그를 지원합니다. 플래그가 설정되면 브라우저는 HTTPS를 통해 쿠키를 전송하기만 합니다. 암호화되지 않은 채널을 통해 쿠키를 전송하면 네트워크 염탐 공격에 노출될 수 있으므로 안전한 플래그를 사용하는 것이 쿠키의 값 자격 증명을 유지하는 데 도움을 줍니다. 이것은 쿠키가 개인 정보를 포함하거나 세션 ID를 전하는 경우 특히 중요합니다.use-secure-cookie
속성은 remember-me
쿠키가 암호화되지 않은 전송을 통해 전송되도록 합니다.
<http auto-config="true">
...
<remember-me use-secure-cookie="false"/>
</http>
Secure
플래그를 설정하지 않는 경우, HTTPS 요청 중에 전송된 쿠키는 다음 HTTP 요청 중에도 전송됩니다. 암호화되지 않은 무선 연결을 통한 네트워크 트래픽 염탐은 공격자에게는 간단한 작업이므로 HTTP를 통한 쿠키(특히 세션 ID가 있는 쿠키) 전송은 응용 프로그램을 손상시킬 수 있습니다.true
로 설정된 Secure
플래그 없이 쿠키가 생성됩니다.Secure
플래그를 지원합니다. 플래그가 설정되면 브라우저는 HTTPS를 통해 쿠키를 전송하기만 합니다. 암호화되지 않은 채널을 통해 쿠키를 전송하면 네트워크 염탐 공격에 노출될 수 있으므로 안전한 플래그를 사용하는 것이 쿠키의 값 자격 증명을 유지하는 데 도움을 줍니다. 이것은 쿠키가 개인 정보를 포함하거나 세션 ID를 전하는 경우 특히 중요합니다.Secure
속성에 대한 true
설정 없이 쿠키가 응답에 추가되었습니다.
res.cookie('important_cookie', info, {domain: 'secure.example.com', path: '/admin', httpOnly: true, secure: false});
Secure
플래그를 설정하지 않는 경우, HTTPS 요청 중에 전송된 쿠키는 다음 HTTP 요청 중에도 전송됩니다. 암호화되지 않은 무선 연결을 통한 네트워크 트래픽 염탐은 공격자에게는 간단한 작업이므로 HTTP를 통한 쿠키(특히 세션 ID가 있는 쿠키) 전송은 응용 프로그램을 손상시킬 수 있습니다.TRUE
로 설정된 NSHTTPCookieSecure
플래그 없이 쿠키가 생성됩니다.Secure
플래그를 지원합니다. 플래그가 설정되면 브라우저는 HTTPS를 통해 쿠키를 전송하기만 합니다. 암호화되지 않은 채널을 통해 쿠키를 전송하면 네트워크 염탐 공격에 노출될 수 있으므로 안전한 플래그를 사용하는 것이 쿠키의 값 자격 증명을 유지하는 데 도움을 줍니다. 이것은 쿠키가 개인 정보를 포함하거나 세션 ID를 전하는 경우 특히 중요합니다.Secure
플래그 설정 없이 쿠키가 응답에 추가되었습니다.
...
NSDictionary *cookieProperties = [NSDictionary dictionary];
...
NSHTTPCookie *cookie = [NSHTTPCookie cookieWithProperties:cookieProperties];
...
Secure
플래그를 설정하지 않는 경우, HTTPS 요청 중에 전송된 쿠키는 다음 HTTP 요청 중에도 전송됩니다. 암호화되지 않은 무선 연결을 통한 네트워크 트래픽 염탐은 공격자에게는 간단한 작업이므로 HTTP를 통한 쿠키(특히 세션 ID가 있는 쿠키) 전송은 응용 프로그램을 손상시킬 수 있습니다.Secure
플래그를 true
로 설정하지 않고 쿠키를 생성합니다.Secure
플래그를 지원합니다. 플래그가 설정되면 브라우저는 HTTPS를 통해 쿠키를 전송하기만 합니다. 암호화되지 않은 채널을 통해 쿠키를 전송하면 네트워크 염탐 공격에 노출될 수 있으므로 안전한 플래그를 사용하는 것이 쿠키의 값 자격 증명을 유지하는 데 도움을 줍니다. 이것은 쿠키가 개인 정보를 포함하거나 세션 ID를 전하는 경우 특히 중요합니다.Secure
플래그를 설정하지 않고 쿠키를 응답에 추가합니다.
...
setcookie("emailCookie", $email, 0, "/", "www.example.com");
...
Secure
플래그를 설정하지 않는 경우, HTTPS 요청 중에 전송된 쿠키는 다음 HTTP 요청 중에도 전송됩니다. 그러면 공격자가 암호화되지 않은 네트워크 트래픽을 염탐(무선 네트워크를 통하는 경우 특히 쉬움)하여 쿠키를 손상시킬 수 있습니다.Secure
플래그를 True
로 설정하지 않고 쿠키를 생성합니다.Secure
플래그를 지원합니다. 플래그가 설정되면 브라우저는 HTTPS를 통해 쿠키를 전송하기만 합니다. 암호화되지 않은 채널을 통해 쿠키를 전송하면 네트워크 염탐 공격에 노출될 수 있으므로 안전한 플래그를 사용하는 것이 쿠키의 값 자격 증명을 유지하는 데 도움을 줍니다. 이는 쿠키가 개인 데이터 또는 세션 ID를 포함하거나 CSRF 토큰을 전하는 경우 특히 중요합니다.Secure
플래그를 설정하지 않고 쿠키를 응답에 추가합니다.
from django.http.response import HttpResponse
...
def view_method(request):
res = HttpResponse()
res.set_cookie("emailCookie", email)
return res
...
Secure
플래그를 설정하지 않는 경우, HTTPS 요청 중에 전송된 쿠키는 다음 HTTP 요청 중에도 전송됩니다. 그러면 공격자가 암호화되지 않은 네트워크 트래픽을 염탐(무선 네트워크를 통하는 경우 특히 쉬움)하여 쿠키를 손상시킬 수 있습니다.true
로 설정된 Secure
플래그 없이 쿠키가 생성됩니다.Secure
플래그를 지원합니다. 플래그가 설정되면 브라우저는 HTTPS를 통해 쿠키를 전송하기만 합니다. 암호화되지 않은 채널을 통해 쿠키를 전송하면 네트워크 염탐 공격에 노출될 수 있으므로 안전한 플래그를 사용하는 것이 쿠키의 값 자격 증명을 유지하는 데 도움을 줍니다. 이것은 쿠키가 개인 정보를 포함하거나 세션 ID를 전하는 경우 특히 중요합니다.Secure
플래그 설정 없이 쿠키가 응답에 추가되었습니다.
Ok(Html(command)).withCookies(Cookie("sessionID", sessionID, secure = false))
Secure
플래그를 설정하지 않는 경우, HTTPS 요청 중에 전송된 쿠키는 다음 HTTP 요청 중에도 전송됩니다. 암호화되지 않은 무선 연결을 통한 네트워크 트래픽 염탐은 공격자에게는 간단한 작업이므로 HTTP를 통한 쿠키(특히 세션 ID가 있는 쿠키) 전송은 응용 프로그램을 손상시킬 수 있습니다.TRUE
로 설정된 NSHTTPCookieSecure
플래그 없이 쿠키가 생성됩니다.Secure
플래그를 지원합니다. 플래그가 설정되면 브라우저는 HTTPS를 통해 쿠키를 전송하기만 합니다. 암호화되지 않은 채널을 통해 쿠키를 전송하면 네트워크 염탐 공격에 노출될 수 있으므로 안전한 플래그를 사용하는 것이 쿠키의 값 자격 증명을 유지하는 데 도움을 줍니다. 이것은 쿠키가 개인 정보를 포함하거나 세션 ID를 전하는 경우 특히 중요합니다.Secure
플래그 설정 없이 쿠키가 응답에 추가되었습니다.
...
let properties = [
NSHTTPCookieDomain: "www.example.com",
NSHTTPCookiePath: "/service",
NSHTTPCookieName: "foo",
NSHTTPCookieValue: "bar"
]
let cookie : NSHTTPCookie? = NSHTTPCookie(properties:properties)
...
Secure
플래그를 설정하지 않는 경우, HTTPS 요청 중에 전송된 쿠키는 다음 HTTP 요청 중에도 전송됩니다. 암호화되지 않은 무선 연결을 통한 네트워크 트래픽 염탐은 공격자에게는 간단한 작업이므로 HTTP를 통한 쿠키(특히 세션 ID가 있는 쿠키) 전송은 응용 프로그램을 손상시킬 수 있습니다.CSRF_COOKIE_SECURE
속성을 True
로 명시적으로 설정하지 않거나 False
로 설정합니다.Secure
플래그를 지원합니다. 플래그가 설정되면 브라우저는 HTTPS를 통해 쿠키를 전송하기만 합니다. 암호화되지 않은 채널을 통해 쿠키를 전송하면 네트워크 염탐 공격에 노출될 수 있으므로 안전한 플래그를 사용하는 것이 쿠키의 값 자격 증명을 유지하는 데 도움을 줍니다. 이는 쿠키가 개인 데이터 또는 세션 ID를 포함하거나 CSRF 토큰을 전하는 경우 특히 중요합니다.Secure
비트를 명시적으로 설정하지 않습니다.
...
MIDDLEWARE = (
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'csp.middleware.CSPMiddleware',
'django.middleware.security.SecurityMiddleware',
...
)
...
Secure
플래그를 설정하지 않는 경우, HTTPS 요청 중에 전송된 쿠키는 다음 HTTP 요청 중에도 전송됩니다. 그러면 공격자가 암호화되지 않은 네트워크 트래픽을 염탐(무선 네트워크를 통하는 경우 특히 쉬움)하여 쿠키를 손상시킬 수 있습니다.HttpOnly
플래그를 true
로 설정하지 못합니다.HttpOnly
쿠키 속성을 지원합니다. Cross-Site Scripting은 주로 세션 ID 또는 authentication 토큰을 도용하려는 시도로 접근 쿠키를 공격합니다. HttpOnly
플래그가 활성화되어 있지 않으면 공격자가 사용자 쿠키에 더 쉽게 접근할 수 있습니다.HttpOnly
속성을 설정하지 않고 쿠키를 생성합니다.
HttpCookie cookie = new HttpCookie("emailCookie", email);
Response.AppendCookie(cookie);
HttpOnly
플래그를 true
로 설정하지 못합니다.HttpOnly
쿠키 속성을 지원합니다. Cross-Site Scripting은 주로 세션 ID 또는 authentication 토큰을 도용하려는 시도로 접근 쿠키를 공격합니다. HttpOnly
가 활성화되어 있지 않으면 공격자가 사용자 쿠키에 더 쉽게 접근할 수 있습니다.HttpOnly
속성을 설정하지 않고 쿠키를 생성합니다.
cookie := http.Cookie{
Name: "emailCookie",
Value: email,
}
...
HttpOnly
플래그를 true
로 설정하지 못합니다.HttpOnly
쿠키 속성을 지원합니다. Cross-Site Scripting은 주로 세션 ID 또는 authentication 토큰을 도용하려는 시도로 접근 쿠키를 공격합니다. HttpOnly
플래그가 활성화되어 있지 않으면 공격자가 사용자 쿠키에 더 쉽게 접근할 수 있습니다.HttpOnly
속성을 설정하지 않고 쿠키를 생성합니다.
javax.servlet.http.Cookie cookie = new javax.servlet.http.Cookie("emailCookie", email);
// Missing a call to: cookie.setHttpOnly(true);
HttpOnly
플래그를 true
로 설정하지 못합니다.HttpOnly
쿠키 속성을 지원합니다. Cross-Site Scripting은 주로 세션 ID 또는 authentication 토큰을 도용하려는 시도로 접근 쿠키를 공격합니다. HttpOnly
플래그가 활성화되어 있지 않으면 공격자가 사용자 쿠키에 더 쉽게 접근할 수 있습니다.httpOnly
속성을 설정하지 않고 쿠키를 생성합니다.
res.cookie('important_cookie', info, {domain: 'secure.example.com', path: '/admin'});
HttpOnly
플래그를 true
로 설정하지 못합니다.HttpOnly
쿠키 속성을 지원합니다. Cross-Site Scripting은 주로 세션 ID 또는 authentication 토큰을 도용하려는 시도로 접근 쿠키를 공격합니다. HttpOnly
플래그가 활성화되어 있지 않으면 공격자가 사용자 쿠키에 더 쉽게 접근할 수 있습니다.HttpOnly
속성을 설정하지 않고 쿠키를 생성합니다.
setcookie("emailCookie", $email, 0, "/", "www.example.com", TRUE); //Missing 7th parameter to set HttpOnly
HttpOnly
플래그를 True
로 설정하지 못합니다.HttpOnly
쿠키 속성을 지원합니다. Cross-Site Scripting 공격은 세션 ID 또는 인증 토큰을 도용하기 위해 쿠키에 액세스하는 경우도 있습니다. HttpOnly
가 활성화되어 있지 않으면 공격자가 사용자 쿠키에 더 쉽게 액세스할 수 있습니다.HttpOnly
속성을 설정하지 않고 쿠키를 생성합니다.
from django.http.response import HttpResponse
...
def view_method(request):
res = HttpResponse()
res.set_cookie("emailCookie", email)
return res
...
HttpOnly
플래그를 true
로 설정하지 못합니다.HttpOnly
쿠키 속성을 지원합니다. Cross-Site Scripting은 주로 세션 ID 또는 authentication 토큰을 도용하려는 시도로 접근 쿠키를 공격합니다. HttpOnly
플래그가 활성화되어 있지 않으면 공격자가 사용자 쿠키에 더 쉽게 접근할 수 있습니다.HttpOnly
속성을 설정하지 않고 쿠키를 생성합니다.
Ok(Html(command)).withCookies(Cookie("sessionID", sessionID, httpOnly = false))
HttpCookie.HttpOnly
속성을 true
로 설정하지 않습니다.httpOnlyCookies
속성의 기본값이 false이면 클라이언트 측 스크립트를 통해 쿠키에 액세스할 수 있음을 의미합니다. 이는 불필요한 Cross-Site Scripting 위협이 되어 쿠키 도난으로 이어질 수 있습니다. 도난당한 쿠키에는 ASP.NET 세션 ID 또는 양식 인증 티켓과 같이 사이트 사용자를 식별하는 민감한 정보가 포함될 수 있으며 공격자는 이를 재생하여 사용자로 가장하거나 중요한 정보를 탈취할 수 있습니다.
<configuration>
<system.web>
<httpCookies httpOnlyCookies="false">
HttpOnly
플래그를 true
로 설정하지 못합니다.HttpOnly
쿠키 속성을 지원합니다. Cross-Site Scripting 공격은 세션 ID 또는 인증 토큰을 도용하기 위해 쿠키에 액세스하는 경우도 있습니다. HttpOnly
가 활성화되어 있지 않으면 공격자가 사용자 쿠키에 더 쉽게 액세스할 수 있습니다.django.middleware.csrf.CsrfViewMiddleware
Django 미들웨어를 사용하는 경우 HttpOnly
속성을 설정하지 않고 CSRF 쿠키가 전송됩니다.
...
MIDDLEWARE = (
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'csp.middleware.CSPMiddleware',
'django.middleware.security.SecurityMiddleware',
...
)
...
HttpOnly
플래그를 true
로 설정하지 못합니다.HttpOnly
쿠키 속성을 지원합니다. Cross-Site Scripting은 주로 세션 ID 또는 authentication 토큰을 도용하려는 시도로 접근 쿠키를 공격합니다. HttpOnly
플래그가 활성화되어 있지 않으면 공격자가 사용자 쿠키에 더 쉽게 접근할 수 있습니다.HttpOnly
플래그를 true
로 설정하지 않고 세션 쿠키를 생성합니다.
server.servlet.session.cookie.http-only=false
HttpOnly
플래그를 true
로 설정하지 못합니다.HttpOnly
쿠키 속성을 지원합니다. Cross-Site Scripting은 주로 세션 ID 또는 authentication 토큰을 도용하려는 시도로 접근 쿠키를 공격합니다. HttpOnly
플래그가 활성화되어 있지 않으면 공격자가 사용자 쿠키에 더 쉽게 접근할 수 있습니다.HttpOnly
플래그를 true
로 설정하지 않고 세션 쿠키를 생성합니다.
session_set_cookie_params(0, "/", "www.example.com", true, false);
HttpOnly
플래그를 true
로 설정하지 못합니다.HttpOnly
쿠키 속성을 지원합니다. Cross-Site Scripting 공격은 세션 ID 또는 인증 토큰을 도용하기 위해 쿠키에 액세스하는 경우도 있습니다. HttpOnly
가 활성화되어 있지 않으면 공격자가 사용자 쿠키에 더 쉽게 액세스할 수 있습니다.HttpOnly
속성을 설정하지 않고 세션 쿠키를 명시적으로 설정합니다.
...
MIDDLEWARE = (
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'csp.middleware.CSPMiddleware',
'django.middleware.security.SecurityMiddleware',
...
)
...
SESSION_COOKIE_HTTPONLY = False
...
SameSite
속성을 설정하지 못합니다.SameSite
매개 변수는 요청이 당사자 사이트 또는 동일 사이트 컨텍스트에서 생성되는 경우 쿠키가 해당 요청에만 연결되도록 쿠키의 범위를 제한합니다. 이렇게 하면 CSRF(Cross-Site Request Forgery) 공격으로부터 쿠키를 보호하는 데 도움이 됩니다. SameSite
매개 변수에는 다음과 같은 3가지 값을 사용할 수 있습니다.Strict
로 설정하면 최상위 수준 탐색 시에만 요청과 함께 쿠키가 전송됩니다.Lax
로 설정하면 동일한 호스트의 최상위 수준 탐색과 타사 사이트에서 호스트로 전송되는 GET 요청에서 쿠키가 전송됩니다. 예를 들어 iframe
또는 href
태그가 있는 타사 사이트에서 호스트 사이트로 연결되는 링크를 누르면 요청에 쿠키가 포함됩니다.SameSite
속성을 None
으로 설정합니다.
...
Cookie cookie = new Cookie('name', 'Foo', path, -1, true, 'None');
...
SameSite
속성을 설정하지 못합니다.SameSite
속성은 요청이 당사자 사이트 또는 동일 사이트 컨텍스트에서 생성되는 경우 쿠키가 해당 요청에만 연결되도록 쿠키의 범위를 제한합니다. 이렇게 하면 CSRF(Cross-Site Request Forgery) 공격으로부터 쿠키를 보호하는 데 도움이 됩니다. SameSite
속성에는 다음과 같은 3가지 값을 사용할 수 있습니다.Strict
로 설정하면 최상위 수준 탐색 시에만 요청과 함께 쿠키가 전송됩니다.Lax
로 설정하면 호스트 사이트에 링크되는 iframe
또는 href
태그가 있는 사이트를 포함하여 타사 사이트에서 발생하는 GET 요청뿐만 아니라 동일한 호스트의 최상위 탐색과 함께 쿠키가 전송됩니다. 요청에 쿠키가 포함됩니다.SameSite
속성을 비활성화합니다.
...
CookieOptions opt = new CookieOptions()
{
SameSite = SameSiteMode.None;
};
context.Response.Cookies.Append("name", "Foo", opt);
...
SameSite
속성을 설정하지 못합니다.SameSite
속성은 요청이 당사자 사이트 또는 동일 사이트 컨텍스트에서 생성되는 경우 쿠키가 해당 요청에만 연결되도록 쿠키의 범위를 제한합니다. 이렇게 하면 CSRF(Cross-Site Request Forgery) 공격으로부터 쿠키를 보호하는 데 도움이 됩니다. SameSite
속성에는 다음과 같은 3가지 값을 사용할 수 있습니다.Strict
로 설정하면 최상위 수준 탐색 시에만 요청과 함께 쿠키가 전송됩니다.Lax
로 설정하면 동일한 호스트의 최상위 수준 탐색과 타사 사이트에서 호스트로 전송되는 GET 요청에서 쿠키가 전송됩니다. 예를 들어 iframe
또는 href
태그가 있는 타사 사이트에서 호스트 사이트로 연결되는 링크를 누르면 요청에 쿠키가 포함됩니다.SameSite
속성을 비활성화합니다.
c := &http.Cookie{
Name: "cookie",
Value: "samesite-none",
SameSite: http.SameSiteNoneMode,
}
SameSite
속성을 설정하지 못합니다.SameSite
속성은 요청이 당사자 사이트 또는 동일 사이트 컨텍스트에서 생성되는 경우 쿠키가 해당 요청에만 연결되도록 쿠키의 범위를 제한합니다. 이렇게 하면 CSRF(Cross-Site Request Forgery) 공격으로부터 쿠키를 보호하는 데 도움이 됩니다. SameSite
속성에는 다음과 같은 3가지 값을 사용할 수 있습니다.Strict
로 설정하면 최상위 수준 탐색 시에만 요청과 함께 쿠키가 전송됩니다.Lax
로 설정하면 호스트 사이트에 링크되는 iframe
또는 href
태그가 있는 사이트를 포함하여 타사 사이트에서 발생하는 GET 요청뿐만 아니라 동일한 호스트의 최상위 탐색과 함께 쿠키가 전송됩니다. 예를 들어 iframe
또는 href
태그가 있는 타사 사이트에서 호스트 사이트로 연결되는 링크를 누르면 요청에 쿠키가 포함됩니다.SameSite
속성을 비활성화합니다.
ResponseCookie cookie = ResponseCookie.from("myCookie", "myCookieValue")
...
.sameSite("None")
...
SameSite
속성을 설정하지 못합니다.SameSite
속성은 요청이 당사자 사이트 또는 동일 사이트 컨텍스트에서 생성되는 경우 쿠키가 해당 요청에만 연결되도록 쿠키의 범위를 제한합니다. 이렇게 하면 CSRF(Cross-Site Request Forgery) 공격으로부터 쿠키를 보호하는 데 도움이 됩니다. SameSite
속성에는 다음과 같은 3가지 값을 사용할 수 있습니다.Strict
로 설정하면 최상위 수준 탐색 시에만 요청과 함께 쿠키가 전송됩니다.Lax
로 설정하면 호스트 사이트에 링크되는 iframe
또는 href
태그가 있는 사이트를 포함하여 타사 사이트에서 발생하는 GET 요청뿐만 아니라 동일한 호스트의 최상위 탐색과 함께 쿠키가 전송됩니다. 예를 들어 iframe
또는 href
태그가 있는 타사 사이트에서 호스트 사이트로 연결되는 링크를 누르면 요청에 쿠키가 포함됩니다.SameSite
속성을 비활성화합니다.
app.get('/', function (req, res) {
...
res.cookie('name', 'Foo', { sameSite: false });
...
}
SameSite
속성을 설정하지 못합니다.SameSite
속성은 요청이 당사자 사이트 또는 동일 사이트 컨텍스트에서 생성되는 경우 쿠키가 해당 요청에만 연결되도록 쿠키의 범위를 제한합니다. 이렇게 하면 CSRF(Cross-Site Request Forgery) 공격으로부터 쿠키를 보호하는 데 도움이 됩니다. SameSite
속성에는 다음과 같은 3가지 값을 사용할 수 있습니다.Strict
로 설정하면 최상위 수준 탐색 시에만 요청과 함께 쿠키가 전송됩니다.Lax
로 설정하면 동일한 호스트의 최상위 수준 탐색과 타사 사이트에서 호스트로 전송되는 GET 요청에서 쿠키가 전송됩니다. 예를 들어 iframe
또는 href
태그가 있는 타사 사이트에서 호스트 사이트로 연결되는 링크를 누르면 요청에 쿠키가 포함됩니다.SameSite
속성을 비활성화합니다.
ini_set("session.cookie_samesite", "None");
SameSite
속성을 설정하지 못합니다.samesite
매개 변수는 요청이 당사자 사이트 또는 동일 사이트 컨텍스트에서 생성되는 경우 쿠키가 해당 요청에만 연결되도록 쿠키의 범위를 제한합니다. 이렇게 하면 CSRF(Cross-Site Request Forgery) 공격으로부터 쿠키를 보호하는 데 도움이 됩니다. samesite
매개 변수에는 다음과 같은 3가지 값을 사용할 수 있습니다.Strict
로 설정하면 최상위 수준 탐색 시에만 요청과 함께 쿠키가 전송됩니다.Lax
로 설정하면 동일한 호스트의 최상위 수준 탐색과 타사 사이트에서 호스트로 전송되는 GET 요청에서 쿠키가 전송됩니다. 예를 들어 iframe
또는 href
태그가 있는 타사 사이트에서 호스트 사이트로 연결되는 링크를 누르면 요청에 쿠키가 포함됩니다.SameSite
속성을 비활성화합니다.
response.set_cookie("cookie", value="samesite-none", samesite=None)
.example.com
"과 같은 기본 도메인 전반에 걸쳐 활성화되도록 설정하기도 합니다. 그러면 기본 도메인 및 모든 하위 도메인의 모든 웹 응용 프로그램에 쿠키가 노출됩니다. 쿠키는 흔히 세션 ID와 같은 민감한 정보를 전달하기 때문에 응용 프로그램 전반에서 쿠키를 공유하면 한 응용 프로그램의 취약점이 다른 응용 프로그램을 손상시킬 수 있습니다.http://secure.example.com/
에서 배포된 안전한 응용 프로그램이 있고 이 응용 프로그램이 사용자가 로그인할 때 ".example.com
" 도메인을 사용하여 세션 ID 쿠키를 설정한다고 가정하겠습니다.
HttpCookie cookie = new HttpCookie("sessionID", sessionID);
cookie.Domain = ".example.com";
http://insecure.example.com/
에 안전성이 낮은 다른 응용 프로그램이 있으며 여기에 Cross-Site Scripting 취약점이 있다고 가정합니다. http://insecure.example.com
을 찾아보는 http://secure.example.com
에 인증된 모든 사용자는 http://secure.example.com
에서 해당 세션 쿠키를 노출할 위험이 있습니다.insecure.example.com
을 사용한 Cookie Poisoning 공격을 수행하여 secure.example.com
의 쿠키를 덮어쓰는, 자체의 지나치게 광범위한 쿠키를 생성할 수도 있습니다..example.com
"과 같은 기본 도메인 전반에 걸쳐 활성화되도록 설정하기도 합니다. 그러면 기본 도메인 및 모든 하위 도메인의 모든 웹 응용 프로그램에 쿠키가 노출됩니다. 쿠키는 흔히 세션 ID와 같은 민감한 정보를 전달하기 때문에 응용 프로그램 전반에서 쿠키를 공유하면 한 응용 프로그램의 취약점이 다른 응용 프로그램을 손상시킬 수 있습니다.http://secure.example.com/
에서 배포된 안전한 응용 프로그램이 있고 이 응용 프로그램이 사용자가 로그인할 때 ".example.com
" 도메인을 사용하여 세션 ID 쿠키를 설정한다고 가정하겠습니다.
cookie := http.Cookie{
Name: "sessionID",
Value: getSessionID(),
Domain: ".example.com",
}
...
http://insecure.example.com/
에 덜 안전한 다른 응용 프로그램이 있으며 여기에는 Cross-Site Scripting 취약점이 있다고 가정합니다. http://insecure.example.com
을 찾아보는 http://secure.example.com
에 인증된 모든 사용자는 http://secure.example.com
에서 해당 세션 쿠키를 노출할 위험이 있습니다.insecure.example.com
를 사용한 "쿠키 감염(Cookie Poisoning) 공격"을 수행하여 Secure.example.com
의 쿠키를 덮어쓰는, 지나치게 광범위한 자체 쿠키를 생성할 수 있습니다..example.com
"과 같은 기본 도메인 전반에 걸쳐 활성화되도록 설정하기도 합니다. 그러면 기본 도메인 및 모든 하위 도메인의 모든 웹 응용 프로그램에 쿠키가 노출됩니다. 쿠키는 흔히 세션 ID와 같은 민감한 정보를 전달하기 때문에 응용 프로그램 전반에서 쿠키를 공유하면 한 응용 프로그램의 취약점이 다른 응용 프로그램을 손상시킬 수 있습니다.http://secure.example.com/
에서 배포된 안전한 응용 프로그램이 있고 이 응용 프로그램이 사용자가 로그인할 때 ".example.com
" 도메인을 사용하여 세션 ID 쿠키를 설정한다고 가정하겠습니다.
Cookie cookie = new Cookie("sessionID", sessionID);
cookie.setDomain(".example.com");
http://insecure.example.com/
에 덜 안전한 다른 응용 프로그램이 있으며 여기에는 Cross-Site Scripting 취약점이 있다고 가정합니다. http://insecure.example.com
을 찾아보는 http://secure.example.com
에 인증된 모든 사용자는 http://secure.example.com
에서 해당 세션 쿠키를 노출할 위험이 있습니다.insecure.example.com
을 사용한 Cookie Poisoning 공격을 수행하여 secure.example.com
의 쿠키를 덮어쓰는, 자체의 지나치게 광범위한 쿠키를 생성할 수도 있습니다..example.com
"과 같은 기본 도메인 전반에 걸쳐 활성화되도록 설정하기도 합니다. 그러면 기본 도메인 및 모든 하위 도메인의 모든 웹 응용 프로그램에 쿠키가 노출됩니다. 쿠키는 흔히 세션 ID와 같은 민감한 정보를 전달하기 때문에 응용 프로그램 전반에서 쿠키를 공유하면 한 응용 프로그램의 취약점이 다른 응용 프로그램을 손상시킬 수 있습니다.http://secure.example.com/
에서 배포된 안전한 응용 프로그램이 있고 이 응용 프로그램이 사용자가 로그인할 때 ".example.com
" 도메인을 사용하여 세션 ID 쿠키를 설정한다고 가정하겠습니다.
cookie_options = {};
cookie_options.domain = '.example.com';
...
res.cookie('important_cookie', info, cookie_options);
http://insecure.example.com/
에 덜 안전한 다른 응용 프로그램이 있으며 여기에는 Cross-Site Scripting 취약점이 있다고 가정합니다. http://insecure.example.com
을 찾아보는 http://secure.example.com
에 인증된 모든 사용자는 http://secure.example.com
에서 해당 세션 쿠키를 노출할 위험이 있습니다.insecure.example.com
을 사용한 Cookie Poisoning 공격을 수행하여 secure.example.com
의 쿠키를 덮어쓰는, 자체의 지나치게 광범위한 쿠키를 생성할 수도 있습니다..example.com
"과 같은 기본 도메인 전반에 걸쳐 활성화되도록 설정하기도 합니다. 그러면 기본 도메인 및 모든 하위 도메인의 모든 웹 응용 프로그램에 쿠키가 노출됩니다. 쿠키는 흔히 세션 ID와 같은 민감한 정보를 전달하기 때문에 응용 프로그램 전반에서 쿠키를 공유하면 한 응용 프로그램의 취약점이 다른 응용 프로그램을 손상시킬 수 있습니다.http://secure.example.com/
에서 배포된 안전한 응용 프로그램이 있고 이 응용 프로그램이 사용자가 로그인할 때 ".example.com
" 도메인을 사용하여 세션 ID 쿠키를 설정한다고 가정하겠습니다.
...
NSDictionary *cookieProperties = [NSDictionary dictionary];
...
[cookieProperties setValue:@".example.com" forKey:NSHTTPCookieDomain];
...
NSHTTPCookie *cookie = [NSHTTPCookie cookieWithProperties:cookieProperties];
...
http://insecure.example.com/
에 덜 안전한 다른 응용 프로그램이 있으며 여기에는 Cross-Site Scripting 취약점이 있다고 가정합니다. http://insecure.example.com
을 찾아보는 http://secure.example.com
에 인증된 모든 사용자는 http://secure.example.com
에서 해당 세션 쿠키를 노출할 위험이 있습니다.insecure.example.com
을 사용한 Cookie Poisoning 공격을 수행하여 secure.example.com
의 쿠키를 덮어쓰는, 자체의 지나치게 광범위한 쿠키를 생성할 수도 있습니다..example.com
"과 같은 기본 도메인 전반에 걸쳐 활성화되도록 설정하기도 합니다. 그러면 기본 도메인 및 모든 하위 도메인의 모든 웹 응용 프로그램에 쿠키가 노출됩니다. 쿠키는 흔히 세션 ID와 같은 민감한 정보를 전달하기 때문에 응용 프로그램 전반에서 쿠키를 공유하면 한 응용 프로그램의 취약점이 다른 응용 프로그램을 손상시킬 수 있습니다.http://secure.example.com/
에서 배포된 안전한 응용 프로그램이 있고 이 응용 프로그램이 사용자가 로그인할 때 ".example.com
" 도메인을 사용하여 세션 ID 쿠키를 설정한다고 가정하겠습니다.
setcookie("mySessionId", getSessionID(), 0, "/", ".example.com", true, true);
http://insecure.example.com/
에 덜 안전한 다른 응용 프로그램이 있으며 여기에는 Cross-Site Scripting 취약점이 있다고 가정합니다. http://insecure.example.com
을 찾아보는 http://secure.example.com
에 인증된 모든 사용자는 http://secure.example.com
에서 해당 세션 쿠키를 노출할 위험이 있습니다.insecure.example.com
을 사용한 Cookie Poisoning 공격을 수행하여 secure.example.com
의 쿠키를 덮어쓰는, 자체의 지나치게 광범위한 쿠키를 생성할 수도 있습니다..example.com
"과 같은 기본 도메인 전반에 걸쳐 활성화되도록 설정하기도 합니다. 그러면 기본 도메인 및 모든 하위 도메인의 모든 웹 응용 프로그램에 쿠키가 노출됩니다. 쿠키는 흔히 세션 ID와 같은 민감한 정보를 전달하기 때문에 응용 프로그램 전반에서 쿠키를 공유하면 한 응용 프로그램의 취약점이 다른 응용 프로그램을 손상시킬 수 있습니다.http://secure.example.com/
에서 배포된 안전한 응용 프로그램이 있고 이 응용 프로그램이 사용자가 로그인할 때 ".example.com
" 도메인을 사용하여 세션 ID 쿠키를 설정한다고 가정하겠습니다.
from django.http.response import HttpResponse
...
def view_method(request):
res = HttpResponse()
res.set_cookie("mySessionId", getSessionID(), domain=".example.com")
return res
...
http://insecure.example.com/
에 덜 안전한 다른 응용 프로그램이 있으며 여기에는 Cross-Site Scripting 취약점이 있다고 가정합니다. http://insecure.example.com
을 찾아보는 http://secure.example.com
에 인증된 모든 사용자는 http://secure.example.com
에서 해당 세션 쿠키를 노출할 위험이 있습니다.insecure.example.com
를 사용한 "쿠키 감염(Cookie Poisoning) 공격"을 수행하여 secure.example.com
의 쿠키를 덮어쓰는, 지나치게 광범위한 자체 쿠키를 생성할 수도 있습니다..example.com
"과 같은 기본 도메인 전반에 걸쳐 활성화되도록 설정하기도 합니다. 그러면 기본 도메인 및 모든 하위 도메인의 모든 웹 응용 프로그램에 쿠키가 노출됩니다. 쿠키는 흔히 세션 ID와 같은 민감한 정보를 전달하기 때문에 응용 프로그램 전반에서 쿠키를 공유하면 한 응용 프로그램의 취약점이 다른 응용 프로그램을 손상시킬 수 있습니다.http://secure.example.com/
에서 배포된 안전한 응용 프로그램이 있고 이 응용 프로그램이 사용자가 로그인할 때 ".example.com
" 도메인을 사용하여 세션 ID 쿠키를 설정한다고 가정하겠습니다.
Ok(Html(command)).withCookies(Cookie("sessionID", sessionID, domain = Some(".example.com")))
http://insecure.example.com/
에 덜 안전한 다른 응용 프로그램이 있으며 여기에는 Cross-Site Scripting 취약점이 있다고 가정합니다. http://insecure.example.com
을 찾아보는 http://secure.example.com
에 인증된 모든 사용자는 http://secure.example.com
에서 해당 세션 쿠키를 노출할 위험이 있습니다.insecure.example.com
을 사용한 Cookie Poisoning 공격을 수행하여 secure.example.com
의 쿠키를 덮어쓰는, 자체의 지나치게 광범위한 쿠키를 생성할 수도 있습니다..example.com
"과 같은 기본 도메인 전반에 걸쳐 활성화되도록 설정하기도 합니다. 그러면 기본 도메인 및 모든 하위 도메인의 모든 웹 응용 프로그램에 쿠키가 노출됩니다. 쿠키는 흔히 세션 ID와 같은 민감한 정보를 전달하기 때문에 응용 프로그램 전반에서 쿠키를 공유하면 한 응용 프로그램의 취약점이 다른 응용 프로그램을 손상시킬 수 있습니다.http://secure.example.com/
에서 배포된 안전한 응용 프로그램이 있고 이 응용 프로그램이 사용자가 로그인할 때 ".example.com
" 도메인을 사용하여 세션 ID 쿠키를 설정한다고 가정하겠습니다.
...
let properties = [
NSHTTPCookieDomain: ".example.com",
NSHTTPCookiePath: "/service",
NSHTTPCookieName: "foo",
NSHTTPCookieValue: "bar",
NSHTTPCookieSecure: true
]
let cookie : NSHTTPCookie? = NSHTTPCookie(properties:properties)
...
http://insecure.example.com/
에 덜 안전한 다른 응용 프로그램이 있으며 여기에는 Cross-Site Scripting 취약점이 있다고 가정합니다. http://insecure.example.com
을 찾아보는 http://secure.example.com
에 인증된 모든 사용자는 http://secure.example.com
에서 해당 세션 쿠키를 노출할 위험이 있습니다.insecure.example.com
을 사용한 Cookie Poisoning 공격을 수행하여 secure.example.com
의 쿠키를 덮어쓰는, 자체의 지나치게 광범위한 쿠키를 생성할 수도 있습니다./
")에서 액세스할 수 있도록 쿠키를 설정합니다. 그러면 도메인의 모든 웹 응용 프로그램에 대해 쿠키가 노출됩니다. 쿠키는 흔히 세션 ID와 같은 민감한 정보를 전달하기 때문에 응용 프로그램 전반에서 쿠키를 공유하면 한 응용 프로그램의 취약점이 다른 응용 프로그램을 손상시킬 수 있습니다.http://communitypages.example.com/MyForum
에서 배포된 포럼 응용 프로그램이 있고 이 응용 프로그램이 사용자가 포럼에 로그인할 때 "/
" 경로를 사용하여 세션 ID 쿠키를 설정한다고 가정합니다. 예를 들어, 다음과 같습니다.
...
String path = '/';
Cookie cookie = new Cookie('sessionID', sessionID, path, maxAge, true, 'Strict');
...
http://communitypages.example.com/EvilSite
에서 다른 응용 프로그램을 생성하여 포럼에서 이 사이트에 대한 링크를 게시한다고 가정하겠습니다. 포럼의 사용자가 이 링크를 클릭하면 브라우저는 /MyForum
에서 설정된 쿠키를 /EvilSite
에서 실행 중인 응용 프로그램으로 전송합니다. 공격자는 세션 ID를 도용하여 /EvilSite
를 방문한 임의의 포럼 사용자 계정을 손상시킬 수 있습니다./EvilSite
를 사용한 쿠키 감염 공격을 수행하여 자체적으로 /MyForum
의 쿠키를 덮어쓰는 광범위한 쿠키를 생성할 수도 있습니다./
"가 되도록 쿠키를 설정하지만 그렇게 하면 동일한 도메인의 모든 웹 응용 프로그램에 쿠키가 노출됩니다. 쿠키는 흔히 세션 ID와 같은 민감한 정보를 전달하기 때문에 응용 프로그램 전반에서 쿠키를 공유하면 한 응용 프로그램의 취약점이 다른 응용 프로그램을 손상시킬 수 있습니다.http://communitypages.example.com/MyForum
에서 배포된 포럼 응용 프로그램이 있고 이 응용 프로그램이 사용자가 포럼에 로그인할 때 "/
" 경로를 사용하여 세션 ID 쿠키를 설정한다고 가정합니다.
HttpCookie cookie = new HttpCookie("sessionID", sessionID);
cookie.Path = "/";
http://communitypages.example.com/EvilSite
에서 다른 응용 프로그램을 생성하여 포럼에서 이 사이트에 대한 링크를 게시한다고 가정하겠습니다. 포럼의 사용자가 이 링크를 클릭하면 브라우저는 /MyForum
에서 설정된 쿠키를 /EvilSite
에서 실행 중인 응용 프로그램으로 전송합니다. 공격자는 세션 ID를 도용하여 /EvilSite
를 방문한 임의의 포럼 사용자 계정을 손상시킬 수 있습니다./EvilSite
을 사용한 Cookie Poisoning 공격을 수행하여 /MyForum
의 쿠키를 덮어쓰는, 자체의 지나치게 광범위한 쿠키를 생성할 수도 있습니다./
")에서 액세스할 수 있도록 쿠키를 설정합니다. 그러면 도메인의 모든 웹 응용 프로그램에 대해 쿠키가 노출됩니다. 쿠키는 흔히 세션 ID와 같은 민감한 정보를 전달하기 때문에 응용 프로그램 전반에서 쿠키를 공유하면 한 응용 프로그램의 취약점이 다른 응용 프로그램을 손상시킬 수 있습니다.http://communitypages.example.com/MyForum
에서 배포된 포럼 응용 프로그램이 있고 이 응용 프로그램이 사용자가 포럼에 로그인할 때 "/
" 경로를 사용하여 세션 ID 쿠키를 설정한다고 가정하겠습니다.
cookie := http.Cookie{
Name: "sessionID",
Value: sID,
Expires: time.Now().AddDate(0, 0, 1),
Path: "/",
}
...
http://communitypages.example.com/EvilSite
에서 다른 응용 프로그램을 생성하여 포럼에서 이 사이트에 대한 링크를 게시한다고 가정하겠습니다. 포럼의 사용자가 이 링크를 클릭하면 브라우저는 /MyForum
에서 설정된 쿠키를 /EvilSite
에서 실행 중인 응용 프로그램으로 전송합니다. 공격자는 세션 ID를 도용하여 /EvilSite
를 방문한 임의의 포럼 사용자 계정을 손상시킬 수 있습니다./EvilSite
를 사용한 "쿠키 감염(Cookie Poisoning) 공격"을 수행하여 /MyForum
의 쿠키를 덮어쓰는, 지나치게 광범위한 자체 쿠키를 생성할 수 있습니다./
")에서 액세스할 수 있도록 쿠키를 설정합니다. 그러면 도메인의 모든 웹 응용 프로그램에 대해 쿠키가 노출됩니다. 쿠키는 흔히 세션 ID와 같은 민감한 정보를 전달하기 때문에 응용 프로그램 전반에서 쿠키를 공유하면 한 응용 프로그램의 취약점이 다른 응용 프로그램을 손상시킬 수 있습니다.http://communitypages.example.com/MyForum
에서 배포된 포럼 응용 프로그램이 있고 이 응용 프로그램이 사용자가 포럼에 로그인할 때 "/
" 경로를 사용하여 세션 ID 쿠키를 설정한다고 가정합니다.
Cookie cookie = new Cookie("sessionID", sessionID);
cookie.setPath("/");
http://communitypages.example.com/EvilSite
에서 다른 응용 프로그램을 생성하여 포럼에서 이 사이트에 대한 링크를 게시한다고 가정하겠습니다. 포럼의 사용자가 이 링크를 클릭하면 브라우저는 /MyForum
에서 설정된 쿠키를 /EvilSite
에서 실행 중인 응용 프로그램으로 전송합니다. 공격자는 세션 ID를 도용하여 /EvilSite
를 방문한 임의의 포럼 사용자 계정을 손상시킬 수 있습니다./EvilSite
을 사용한 Cookie Poisoning 공격을 수행하여 /MyForum
의 쿠키를 덮어쓰는, 자체의 지나치게 광범위한 쿠키를 생성할 수도 있습니다./
")에서 액세스할 수 있도록 쿠키를 설정합니다. 그러면 도메인의 모든 웹 응용 프로그램에 대해 쿠키가 노출됩니다. 쿠키는 흔히 세션 ID와 같은 민감한 정보를 전달하기 때문에 응용 프로그램 전반에서 쿠키를 공유하면 한 응용 프로그램의 취약점이 다른 응용 프로그램을 손상시킬 수 있습니다.http://communitypages.example.com/MyForum
에서 배포된 포럼 응용 프로그램이 있고 이 응용 프로그램이 사용자가 포럼에 로그인할 때 "/
" 경로를 사용하여 세션 ID 쿠키를 설정한다고 가정합니다.
cookie_options = {};
cookie_options.path = '/';
...
res.cookie('important_cookie', info, cookie_options);
http://communitypages.example.com/EvilSite
에서 다른 응용 프로그램을 생성하여 포럼에서 이 사이트에 대한 링크를 게시한다고 가정하겠습니다. 포럼의 사용자가 이 링크를 클릭하면 브라우저는 /MyForum
에서 설정된 쿠키를 /EvilSite
에서 실행 중인 응용 프로그램으로 전송합니다. 공격자는 세션 ID를 도용하여 /EvilSite
를 방문한 임의의 포럼 사용자 계정을 손상시킬 수 있습니다./EvilSite
을 사용한 Cookie Poisoning 공격을 수행하여 /MyForum
의 쿠키를 덮어쓰는, 자체의 지나치게 광범위한 쿠키를 생성할 수도 있습니다./
")에서 액세스할 수 있도록 쿠키를 설정합니다. 그러면 도메인의 모든 웹 응용 프로그램에 대해 쿠키가 노출됩니다. 쿠키는 흔히 세션 ID와 같은 민감한 정보를 전달하기 때문에 응용 프로그램 전반에서 쿠키를 공유하면 한 응용 프로그램의 취약점이 다른 응용 프로그램을 손상시킬 수 있습니다.http://communitypages.example.com/MyForum
에서 배포된 포럼 응용 프로그램이 있고 이 응용 프로그램이 사용자가 포럼에 로그인할 때 "/
" 경로를 사용하여 세션 ID 쿠키를 설정한다고 가정합니다.
...
NSDictionary *cookieProperties = [NSDictionary dictionary];
...
[cookieProperties setValue:@"/" forKey:NSHTTPCookiePath];
...
NSHTTPCookie *cookie = [NSHTTPCookie cookieWithProperties:cookieProperties];
...
http://communitypages.example.com/EvilSite
에서 다른 응용 프로그램을 생성하여 포럼에서 이 사이트에 대한 링크를 게시한다고 가정하겠습니다. 포럼의 사용자가 이 링크를 클릭하면 브라우저는 /MyForum
에서 설정된 쿠키를 /EvilSite
에서 실행 중인 응용 프로그램으로 전송합니다. 공격자는 세션 ID를 도용하여 /EvilSite
를 방문한 임의의 포럼 사용자 계정을 손상시킬 수 있습니다./EvilSite
을 사용한 Cookie Poisoning 공격을 수행하여 /MyForum
의 쿠키를 덮어쓰는, 자체의 지나치게 광범위한 쿠키를 생성할 수도 있습니다./
")에서 액세스할 수 있도록 쿠키를 설정합니다. 그러면 도메인의 모든 웹 응용 프로그램에 대해 쿠키가 노출됩니다. 쿠키는 흔히 세션 ID와 같은 민감한 정보를 전달하기 때문에 응용 프로그램 전반에서 쿠키를 공유하면 한 응용 프로그램의 취약점이 다른 응용 프로그램을 손상시킬 수 있습니다.http://communitypages.example.com/MyForum
에서 배포된 포럼 응용 프로그램이 있고 이 응용 프로그램이 사용자가 포럼에 로그인할 때 "/
" 경로를 사용하여 세션 ID 쿠키를 설정한다고 가정합니다.
setcookie("mySessionId", getSessionID(), 0, "/", "communitypages.example.com", true, true);
http://communitypages.example.com/EvilSite
에서 다른 응용 프로그램을 생성하여 포럼에서 이 사이트에 대한 링크를 게시한다고 가정하겠습니다. 포럼의 사용자가 이 링크를 클릭하면 브라우저는 /MyForum
에서 설정된 쿠키를 /EvilSite
에서 실행 중인 응용 프로그램으로 전송합니다. 공격자는 세션 ID를 도용하여 /EvilSite
를 방문한 임의의 포럼 사용자 계정을 손상시킬 수 있습니다./EvilSite
을 사용한 Cookie Poisoning 공격을 수행하여 /MyForum
의 쿠키를 덮어쓰는, 자체의 지나치게 광범위한 쿠키를 생성할 수도 있습니다./
")에서 액세스할 수 있도록 쿠키를 설정합니다. 그러면 도메인의 모든 웹 응용 프로그램에 대해 쿠키가 노출됩니다. 쿠키는 흔히 세션 ID와 같은 민감한 정보를 전달하기 때문에 응용 프로그램 전반에서 쿠키를 공유하면 한 응용 프로그램의 취약점이 다른 응용 프로그램을 손상시킬 수 있습니다.http://communitypages.example.com/MyForum
에서 배포된 포럼 응용 프로그램이 있고 이 응용 프로그램이 사용자가 포럼에 로그인할 때 "/
" 경로를 사용하여 세션 ID 쿠키를 설정한다고 가정합니다.
from django.http.response import HttpResponse
...
def view_method(request):
res = HttpResponse()
res.set_cookie("sessionid", value) # Path defaults to "/"
return res
...
http://communitypages.example.com/EvilSite
에서 다른 응용 프로그램을 생성하여 포럼에서 이 사이트에 대한 링크를 게시한다고 가정하겠습니다. 포럼의 사용자가 이 링크를 클릭하면 브라우저는 /MyForum
에서 설정된 쿠키를 /EvilSite
에서 실행 중인 응용 프로그램으로 전송합니다. 공격자는 세션 ID를 도용하여 /EvilSite
를 방문한 임의의 포럼 사용자 계정을 손상시킬 수 있습니다./EvilSite
를 사용한 "쿠키 감염(Cookie Poisoning) 공격"을 수행하여 /MyForum
의 쿠키를 덮어쓰는, 지나치게 광범위한 자체 쿠키를 생성할 수도 있습니다./
")에서 액세스할 수 있도록 쿠키를 설정합니다. 그러면 도메인의 모든 웹 응용 프로그램에 대해 쿠키가 노출됩니다. 쿠키는 흔히 세션 ID와 같은 민감한 정보를 전달하기 때문에 응용 프로그램 전반에서 쿠키를 공유하면 한 응용 프로그램의 취약점이 다른 응용 프로그램을 손상시킬 수 있습니다.http://communitypages.example.com/MyForum
에서 배포된 포럼 응용 프로그램이 있고 이 응용 프로그램이 사용자가 포럼에 로그인할 때 "/
" 경로를 사용하여 세션 ID 쿠키를 설정한다고 가정합니다.
Ok(Html(command)).withCookies(Cookie("sessionID", sessionID, path = "/"))
http://communitypages.example.com/EvilSite
에서 다른 응용 프로그램을 생성하여 포럼에서 이 사이트에 대한 링크를 게시한다고 가정하겠습니다. 포럼의 사용자가 이 링크를 클릭하면 브라우저는 /MyForum
에서 설정된 쿠키를 /EvilSite
에서 실행 중인 응용 프로그램으로 전송합니다. 공격자는 세션 ID를 도용하여 /EvilSite
를 방문한 임의의 포럼 사용자 계정을 손상시킬 수 있습니다./EvilSite
을 사용한 Cookie Poisoning 공격을 수행하여 /MyForum
의 쿠키를 덮어쓰는, 자체의 지나치게 광범위한 쿠키를 생성할 수도 있습니다./
")에서 액세스할 수 있도록 쿠키를 설정합니다. 그러면 도메인의 모든 웹 응용 프로그램에 대해 쿠키가 노출됩니다. 쿠키는 흔히 세션 ID와 같은 민감한 정보를 전달하기 때문에 응용 프로그램 전반에서 쿠키를 공유하면 한 응용 프로그램의 취약점이 다른 응용 프로그램을 손상시킬 수 있습니다.http://communitypages.example.com/MyForum
에서 배포된 포럼 응용 프로그램이 있고 이 응용 프로그램이 사용자가 포럼에 로그인할 때 "/
" 경로를 사용하여 세션 ID 쿠키를 설정한다고 가정합니다.
...
let properties = [
NSHTTPCookieDomain: "www.example.com",
NSHTTPCookiePath: "/",
NSHTTPCookieName: "foo",
NSHTTPCookieValue: "bar",
NSHTTPCookieSecure: true
]
let cookie : NSHTTPCookie? = NSHTTPCookie(properties:properties)
...
http://communitypages.example.com/EvilSite
에서 다른 응용 프로그램을 생성하여 포럼에서 이 사이트에 대한 링크를 게시한다고 가정하겠습니다. 포럼의 사용자가 이 링크를 클릭하면 브라우저는 /MyForum
에서 설정된 쿠키를 /EvilSite
에서 실행 중인 응용 프로그램으로 전송합니다. 공격자는 세션 ID를 도용하여 /EvilSite
를 방문한 임의의 포럼 사용자 계정을 손상시킬 수 있습니다./EvilSite
을 사용한 Cookie Poisoning 공격을 수행하여 /MyForum
의 쿠키를 덮어쓰는, 자체의 지나치게 광범위한 쿠키를 생성할 수도 있습니다..example.com
"과 같은 기본 도메인이 되도록 설정합니다. 그러나 그렇게 하면 기본 도메인 이름 및 모든 하위 도메인의 모든 웹 응용 프로그램에 세션 쿠키가 노출됩니다. 세션 쿠키를 누출하면 계정이 손상될 수 있습니다.http://secure.example.com/
에서 배포한 안전한 응용 프로그램이 있고 이 응용 프로그램이 사용자가 로그인할 때 ".example.com
" 도메인을 사용하여 세션 쿠키를 설정한다고 가정하겠습니다.
server.servlet.session.cookie.domain=.example.com
http://insecure.example.com/
에 덜 안전한 다른 응용 프로그램이 있으며 여기에는 Cross-Site Scripting 취약점이 있다고 가정합니다. http://insecure.example.com
을 찾아보는 http://secure.example.com
에 인증된 모든 사용자는 http://secure.example.com
에서 해당 세션 쿠키를 노출할 위험이 있습니다..example.com
"과 같은 기본 도메인이 되도록 설정합니다. 그러면 기본 도메인 및 모든 하위 도메인의 모든 웹 응용 프로그램에 쿠키가 노출됩니다. 응용 프로그램 전반에서 세션 쿠키를 공유하면 한 응용 프로그램의 취약점이 다른 응용 프로그램을 손상시킬 수 있습니다.http://secure.example.com/
에서 배포한 안전한 응용 프로그램이 있고 이 응용 프로그램이 사용자가 로그인할 때 ".example.com
" 도메인을 사용하여 세션 쿠키를 설정한다고 가정하겠습니다.
session_set_cookie_params(0, "/", ".example.com", true, true);
http://insecure.example.com/
에 덜 안전한 다른 응용 프로그램이 있으며 여기에는 Cross-Site Scripting 취약점이 있다고 가정합니다. http://insecure.example.com
을 찾아보는 http://secure.example.com
에 인증된 모든 사용자는 http://secure.example.com
에서 해당 세션 쿠키를 노출할 위험이 있습니다./
")가 되도록 세션 쿠키를 설정합니다. 그러면 동일한 도메인의 모든 웹 응용 프로그램에 대해 쿠키가 노출됩니다. 세션 쿠키가 누출되면 공격자가 도메인에서 임의의 응용 프로그램의 취약점을 사용하여 세션 쿠키를 도용할 수 있기 때문에 계정이 손상될 수 있습니다.http://communitypages.example.com/MyForum
에서 배포된 포럼 응용 프로그램이 있고 이 응용 프로그램이 사용자가 포럼에 로그인할 때 "/
" 경로를 가진 세션 쿠키를 설정한다고 가정하겠습니다. 예를 들어, 다음과 같습니다.
server.servlet.session.cookie.path=/
http://communitypages.example.com/EvilSite
에서 다른 응용 프로그램을 생성하여 포럼에서 이 사이트에 대한 링크를 게시한다고 가정하겠습니다. 포럼의 사용자가 이 링크를 클릭하면 브라우저는 /MyForum
에서 설정된 세션 쿠키를 /EvilSite
에서 실행 중인 응용 프로그램으로 전송합니다. 공격자는 /MyForum
에서 사용자가 제공한 세션 쿠키를 사용하여 /EvilSite
를 탐색하는 임의의 포럼 사용자 계정을 손상시킬 수 있습니다./
")가 되도록 세션 쿠키를 설정합니다. 그러면 동일한 도메인의 모든 웹 응용 프로그램에 대해 쿠키가 노출됩니다. 세션 쿠키가 누출되면 공격자가 도메인에서 임의의 응용 프로그램의 취약점을 사용하여 세션 쿠키를 도용할 수 있기 때문에 계정이 손상될 수 있습니다.http://communitypages.example.com/MyForum
에서 배포된 포럼 응용 프로그램이 있고 이 응용 프로그램이 사용자가 포럼에 로그인할 때 "/
" 경로를 가진 세션 쿠키를 설정한다고 가정하겠습니다.
session_set_cookie_params(0, "/", "communitypages.example.com", true, true);
http://communitypages.example.com/EvilSite
에서 다른 응용 프로그램을 생성하여 포럼에서 이 사이트에 대한 링크를 게시한다고 가정하겠습니다. 포럼의 사용자가 이 링크를 클릭하면 브라우저는 /MyForum
에서 설정된 세션 쿠키를 /EvilSite
에서 실행 중인 응용 프로그램으로 전송합니다. 공격자는 세션 쿠키를 도용하여 /EvilSite
를 방문한 임의의 포럼 사용자 계정을 손상시킬 수 있습니다.SameSite
매개 변수가 Strict
로 설정되지 않았습니다.SameSite
매개 변수는 요청이 당사자 사이트 또는 동일 사이트 컨텍스트에서 생성되는 경우 쿠키가 해당 요청에만 연결되도록 쿠키의 범위를 제한합니다. 이렇게 하면 CSRF(Cross-Site Request Forgery) 공격으로부터 쿠키를 보호하는 데 도움이 됩니다. SameSite
매개 변수에는 다음과 같은 3가지 값을 사용할 수 있습니다.Strict
로 설정하면 최상위 수준 탐색 시에만 요청과 함께 쿠키가 전송됩니다.Lax
로 설정하면 동일한 호스트의 최상위 수준 탐색과 타사 사이트에서 호스트로 전송되는 GET 요청에서 쿠키가 전송됩니다. 예를 들어 iframe
또는 href
태그가 있는 타사 사이트에서 호스트 사이트로 연결되는 링크를 누르면 요청에 쿠키가 포함됩니다.SameSite
매개 변수를 Lax
로 설정합니다.
...
Cookie cookie = new Cookie('name', 'Foo', path, -1, true, 'Lax');
...
SameSite
속성이 Strict
로 설정되지 않았습니다.SameSite
속성은 CSRF(Cross-Site Request Forgery)와 같은 공격으로부터 쿠키를 보호합니다. 세션 쿠키는 사이트에 사용자에 대한 정보를 보여줌으로써 해당 사용자가 권한이 부여된 작업을 수행할 수 있도록 합니다. 그러나 이 브라우저는 요청과 함께 자동으로 쿠키를 전송하므로 사용자 및 웹 사이트가 권한 부여 시 브라우저를 묵시적으로 신뢰합니다. 공격자는 공격자가 제어하는 타사 사이트 페이지에서 href
및 src
태그 속성(예: link
및 iframe
) 안에 링크를 포함하는 방법으로 이 신뢰를 남용하고 사용자 대신 사이트에 요청을 제출할 수 있습니다. 공격자가 자신이 제어하는 타사 사이트로 의심하지 않는 사용자를 유인할 수 있는 경우 공격자는 사용자에게 권한을 부여하는 세션 쿠키를 자동으로 포함하는 요청을 제출하여 실질적으로 공격자가 사용자인 것처럼 공격자에게 권한을 부여할 수 있습니다.SameSite
속성 값을 Strict
로 설정하십시오. 이렇게 하면 최상위 탐색 요청이거나 동일한 사이트에서 시작된 요청에만 쿠키를 추가하도록 브라우저가 제한됩니다. iframe
, img
및 form
과 같은 다양한 태그의 링크를 통해 타사 사이트에서 시작되는 요청에는 이러한 쿠키가 없으므로 사이트에서 권한이 부여되지 않은 사용자에 대해 조치를 취할 수 없습니다.SameSite
속성 값을 Lax
로 설정합니다.
...
CookieOptions opt = new CookieOptions()
{
SameSite = SameSiteMode.Lax;
};
context.Response.Cookies.Append("name", "Foo", opt);
...
SameSite
속성이 SameSiteStrictMode
로 설정되지 않았습니다.SameSite
속성은 CSRF(Cross-Site Request Forgery)와 같은 공격으로부터 쿠키를 보호합니다. 세션 쿠키는 사이트에 사용자에 대한 정보를 보여줌으로써 해당 사용자가 권한이 부여된 작업을 수행할 수 있도록 합니다. 그러나 이 브라우저는 요청과 함께 자동으로 쿠키를 전송하므로 사용자 및 웹 사이트가 권한 부여 시 브라우저를 묵시적으로 신뢰합니다. 공격자는 공격자가 제어하는 타사 사이트 페이지에서 href
및 src
태그 속성(예: link
및 iframe
) 안에 링크를 포함하는 방법으로 이 신뢰를 남용하고 사용자 대신 사이트에 요청을 제출할 수 있습니다. 공격자가 자신이 제어하는 타사 사이트로 의심하지 않는 사용자를 유인할 수 있는 경우 공격자는 사용자에게 권한을 부여하는 세션 쿠키를 자동으로 포함하는 요청을 제출하여 실질적으로 공격자가 사용자인 것처럼 공격자에게 권한을 부여할 수 있습니다.SameSite
속성을 SameSiteStrictMode
로 설정하면 최상위 수준 탐색인 요청 또는 동일한 사이트에서 시작된 요청에만 쿠키를 추가하도록 브라우저가 제한됩니다. iframe
, img
및 form
과 같은 다양한 태그의 링크를 통해 타사 사이트에서 시작되는 요청에는 이러한 쿠키가 없으므로 사이트에서 권한이 부여되지 않은 사용자에 대해 조치를 취할 수 없습니다.SameSite
속성에서 SameSiteLaxMode
를 활성화합니다.
c := &http.Cookie{
Name: "cookie",
Value: "samesite-lax",
SameSite: http.SameSiteLaxMode,
}
SameSite
속성이 Strict
로 설정되지 않았습니다.SameSite
속성은 CSRF(Cross-Site Request Forgery)와 같은 공격으로부터 쿠키를 보호합니다. 세션 쿠키는 사이트에 사용자에 대한 정보를 보여줌으로써 해당 사용자가 권한이 부여된 작업을 수행할 수 있도록 합니다. 그러나 이 브라우저는 요청과 함께 자동으로 쿠키를 전송하므로 사용자 및 웹 사이트가 권한 부여 시 브라우저를 묵시적으로 신뢰합니다. 공격자는 공격자가 제어하는 타사 사이트 페이지에서 href
및 src
태그 속성(예: link
및 iframe
) 안에 링크를 포함하는 방법으로 이 신뢰를 남용하고 사용자 대신 사이트에 요청을 제출할 수 있습니다. 공격자가 자신이 제어하는 타사 사이트로 의심하지 않는 사용자를 유인할 수 있는 경우 공격자는 사용자에게 권한을 부여하는 세션 쿠키를 자동으로 포함하는 요청을 제출하여 실질적으로 공격자가 사용자인 것처럼 공격자에게 권한을 부여할 수 있습니다.SameSite
속성 값을 Strict
로 설정하십시오. 이렇게 하면 최상위 탐색 요청이거나 동일한 사이트에서 시작된 요청에만 쿠키를 추가하도록 브라우저가 제한됩니다. iframe
, img
및 form
과 같은 다양한 태그의 링크를 통해 타사 사이트에서 시작되는 요청에는 이러한 쿠키가 없으므로 사이트에서 권한이 부여되지 않은 사용자에 대해 조치를 취할 수 없습니다.SameSite
속성 값을 Lax
로 설정합니다.
ResponseCookie cookie = ResponseCookie.from("myCookie", "myCookieValue")
...
.sameSite("Lax")
...
}
SameSite
속성이 Strict
로 설정되지 않았습니다.SameSite
속성은 CSRF(Cross-Site Request Forgery)와 같은 공격으로부터 쿠키를 보호합니다. 세션 쿠키는 사이트에 사용자에 대한 정보를 보여줌으로써 해당 사용자가 권한이 부여된 작업을 수행할 수 있도록 합니다. 그러나 이 브라우저는 요청과 함께 자동으로 쿠키를 전송하므로 사용자 및 웹 사이트가 권한 부여 시 브라우저를 묵시적으로 신뢰합니다. 공격자는 공격자가 제어하는 타사 사이트 페이지에서 href
및 src
태그 속성(예: link
및 iframe
) 안에 링크를 포함하는 방법으로 이 신뢰를 남용하고 사용자 대신 사이트에 요청을 제출할 수 있습니다. 공격자가 자신이 제어하는 타사 사이트로 의심하지 않는 사용자를 유인할 수 있는 경우 공격자는 사용자에게 권한을 부여하는 세션 쿠키를 자동으로 포함하는 요청을 제출하여 실질적으로 공격자가 사용자인 것처럼 공격자에게 권한을 부여할 수 있습니다.SameSite
속성 값을 Strict
로 설정하십시오. 이렇게 하면 최상위 탐색 요청이거나 동일한 사이트에서 시작된 요청에만 쿠키를 추가하도록 브라우저가 제한됩니다. iframe
, img
및 form
과 같은 다양한 태그의 링크를 통해 타사 사이트에서 시작되는 요청에는 이러한 쿠키가 없으므로 사이트에서 권한이 부여되지 않은 사용자에 대해 조치를 취할 수 없습니다.SameSite
속성 값을 Lax
로 설정합니다.
app.get('/', function (req, res) {
...
res.cookie('name', 'Foo', { sameSite: "Lax" });
...
}
SameSite
속성이 Strict
로 설정되지 않았습니다.SameSite
속성은 CSRF(Cross-Site Request Forgery)와 같은 공격으로부터 쿠키를 보호합니다. 세션 쿠키는 사이트에 사용자에 대한 정보를 보여줌으로써 해당 사용자가 권한이 부여된 작업을 수행할 수 있도록 합니다. 그러나 이 브라우저는 요청과 함께 자동으로 쿠키를 전송하므로 사용자 및 웹 사이트가 권한 부여 시 브라우저를 묵시적으로 신뢰합니다. 공격자는 공격자가 제어하는 타사 사이트 페이지에서 href
및 src
태그 속성(예: link
및 iframe
) 안에 링크를 포함하는 방법으로 이 신뢰를 남용하고 사용자 대신 사이트에 요청을 제출할 수 있습니다. 공격자가 자신이 제어하는 타사 사이트로 의심하지 않는 사용자를 유인할 수 있는 경우 공격자는 사용자에게 권한을 부여하는 세션 쿠키를 자동으로 포함하는 요청을 제출하여 실질적으로 공격자가 사용자인 것처럼 공격자에게 권한을 부여할 수 있습니다.SameSite
속성을 Strict
로 설정하면 최상위 수준 탐색인 요청 또는 동일한 사이트에서 시작된 요청에만 쿠키를 추가하도록 브라우저가 제한됩니다. iframe
, img
및 form
과 같은 다양한 태그의 링크를 통해 타사 사이트에서 시작되는 요청에는 이러한 쿠키가 없으므로 사이트에서 권한이 부여되지 않은 사용자에 대해 조치를 취할 수 없습니다.SameSite
속성에서 Lax
모드를 활성화합니다.
ini_set("session.cookie_samesite", "Lax");
SameSite
속성이 Strict
로 설정되지 않았습니다.SameSite
속성은 CSRF(Cross-Site Request Forgery)와 같은 공격으로부터 쿠키를 보호합니다. 세션 쿠키는 사이트에 사용자에 대한 정보를 보여줌으로써 해당 사용자가 권한이 부여된 작업을 수행할 수 있도록 합니다. 그러나 이 브라우저는 요청과 함께 자동으로 쿠키를 전송하므로 사용자 및 웹 사이트가 권한 부여 시 브라우저를 묵시적으로 신뢰합니다. 공격자는 공격자가 제어하는 타사 사이트 페이지에서 href
및 src
태그 속성(예: link
및 iframe
) 안에 링크를 포함하는 방법으로 이 신뢰를 남용하고 사용자 대신 사이트에 요청을 제출할 수 있습니다. 공격자는 자신이 제어하는 타사 사이트로 의심하지 않는 사용자를 유인하는 경우 사용자에게 권한을 부여하는 세션 쿠키를 자동으로 포함하는 요청을 실행할 수 있습니다. 그러면 실질적으로 공격자가 사용자인 것처럼 액세스 권한이 부여됩니다.SameSite
매개 변수에서 세션 쿠키를 Strict
로 설정하면 최상위 수준 탐색인 요청 또는 동일한 사이트에서 시작된 요청에만 쿠키를 추가하도록 브라우저가 제한됩니다. iframe
, img
및 form
과 같은 다양한 태그의 링크를 통해 타사 사이트에서 시작되는 요청에는 이러한 쿠키가 없으므로 사이트에서 권한이 부여되지 않은 사용자에 대해 조치를 취할 수 없습니다.samesite
속성에서 Lax
를 활성화합니다.
response.set_cookie("cookie", value="samesite-lax", samesite="Lax")
...
Integer maxAge = 60*60*24*365*10;
Cookie cookie = new Cookie('emailCookie', emailCookie, path, maxAge, true, 'Strict');
...
HttpCookie cookie = new HttpCookie("emailCookie", email);
cookie.Expires = DateTime.Now.AddYears(10);;
Cookie cookie = new Cookie("emailCookie", email);
cookie.setMaxAge(60*60*24*365*10);
...
NSDictionary *cookieProperties = [NSDictionary dictionary];
...
[cookieProperties setValue:[[NSDate date] dateByAddingTimeInterval:(60*60*24*365*10)] forKey:NSHTTPCookieExpires];
...
NSHTTPCookie *cookie = [NSHTTPCookie cookieWithProperties:cookieProperties];
...
setcookie("emailCookie", $email, time()+60*60*24*365*10);
from django.http.response import HttpResponse
...
def view_method(request):
res = HttpResponse()
res.set_cookie("emailCookie", email, expires=time()+60*60*24*365*10, secure=True, httponly=True)
return res
...
Ok(Html(command)).withCookies(Cookie("sessionID", sessionID, maxAge = Some(60*60*24*365*10)))
...
let properties = [
NSHTTPCookieDomain: "www.example.com",
NSHTTPCookiePath: "/service",
NSHTTPCookieName: "foo",
NSHTTPCookieValue: "bar",
NSHTTPCookieSecure: true,
NSHTTPCookieExpires : NSDate(timeIntervalSinceNow: (60*60*24*365*10))
]
let cookie : NSHTTPCookie? = NSHTTPCookie(properties:properties)
...
server.servlet.session.cookie.persistent=true
session_set_cookie_params(time()+60*60*24*365*10, "/", "www.example.com", false, true);
Secure
플래그를 true
로 설정하지 않은 상태에서 만들어집니다.Secure
플래그를 지원합니다. 플래그가 설정되면 브라우저는 HTTPS를 통해 쿠키를 전송하기만 합니다. 암호화되지 않은 채널을 통해 쿠키를 전송하면 네트워크 염탐 공격에 노출될 수 있으므로 안전한 플래그를 사용하는 것이 쿠키의 값 자격 증명을 유지하는 데 도움을 줍니다. 이것은 쿠키가 개인 정보를 포함하거나 세션 ID를 전하는 경우 특히 중요합니다.Secure
플래그를 설정하지 않고 응답에 추가되는 구성입니다.
...
<configuration>
<system.web>
<authentication mode="Forms">
<forms requireSSL="false" loginUrl="login.aspx">
</forms>
</authentication>
</system.web>
</configuration>
...
Secure
플래그를 설정하지 않는 경우, HTTPS 요청 중에 전송된 쿠키는 다음 HTTP 요청 중에도 전송됩니다. 암호화되지 않은 무선 연결을 통한 네트워크 트래픽 염탐은 공격자에게는 간단한 작업이므로 HTTP를 통한 쿠키(특히 세션 ID가 있는 쿠키) 전송은 응용 프로그램을 손상시킬 수 있습니다.Secure
플래그를 지원합니다. 플래그가 설정되면 브라우저는 HTTPS를 통해 쿠키를 전송하기만 합니다. 암호화되지 않은 채널을 통해 쿠키를 전송하면 네트워크 염탐 공격에 노출될 수 있으므로 안전한 플래그를 사용하는 것이 쿠키의 값 자격 증명을 유지하는 데 도움을 줍니다. 이것은 쿠키가 개인 정보를 포함하거나 세션 ID를 전하는 경우 특히 중요합니다.Secure
플래그를 끕니다.
server.servlet.session.cookie.secure=false
Secure
플래그를 설정하지 않는 경우, HTTPS 요청 중에 전송된 쿠키는 다음 HTTP 요청 중에도 전송됩니다. 그러면 공격자가 암호화되지 않은 네트워크 트래픽을 염탐(무선 네트워크를 통하는 경우 특히 쉬움)하여 쿠키를 손상시킬 수 있습니다.Secure
플래그를 true
로 설정하지 않고 세션 쿠키를 생성합니다.Secure
플래그를 지원합니다. 플래그가 설정되면 브라우저는 HTTPS를 통해 쿠키를 전송하기만 합니다. 암호화되지 않은 채널을 통해 쿠키를 전송하면 네트워크 염탐 공격에 노출될 수 있으므로 안전한 플래그를 사용하는 것이 쿠키의 값 자격 증명을 유지하는 데 도움을 줍니다. 이것은 쿠키가 개인 정보를 포함하거나 세션 ID를 전하는 경우 특히 중요합니다.Secure
플래그를 설정하지 않고 쿠키를 응답에 추가합니다.
...
setcookie("emailCookie", $email, 0, "/", "www.example.com");
...
Secure
플래그를 설정하지 않는 경우, HTTPS 요청 중에 전송된 쿠키는 다음 HTTP 요청 중에도 전송됩니다. 그러면 공격자가 암호화되지 않은 네트워크 트래픽을 염탐(무선 네트워크를 통하는 경우 특히 쉬움)하여 쿠키를 손상시킬 수 있습니다.SESSION_COOKIE_SECURE
속성을 True
로 명시적으로 설정하지 않거나 False
로 설정합니다.Secure
플래그를 지원합니다. 플래그가 설정되면 브라우저는 HTTPS를 통해 쿠키를 전송하기만 합니다. 암호화되지 않은 채널을 통해 쿠키를 전송하면 네트워크 염탐 공격에 노출될 수 있으므로 안전한 플래그를 사용하는 것이 쿠키의 값 자격 증명을 유지하는 데 도움을 줍니다. 이는 쿠키가 개인 데이터 또는 세션 ID를 포함하거나 CSRF 토큰을 전하는 경우 특히 중요합니다.Secure
비트를 명시적으로 설정하지 않습니다.
...
MIDDLEWARE = (
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'csp.middleware.CSPMiddleware',
'django.middleware.security.SecurityMiddleware',
...
)
...
Secure
플래그를 설정하지 않는 경우, HTTPS 요청 중에 전송된 쿠키는 다음 HTTP 요청 중에도 전송됩니다. 그러면 공격자가 암호화되지 않은 네트워크 트래픽을 염탐(무선 네트워크를 통하는 경우 특히 쉬움)하여 쿠키를 손상시킬 수 있습니다.