
316
한 권으로 끝내는 Node & Express
app.get(‘/’, (req, res) => {
// 다음은 간단히 말해 if(req.secure)와 동등합니다.
//
if(req.headers[‘x-forwarded-proto’] === ‘https’) {
res.send(‘line is secure’)
} else {
res.send(‘you are insecure!’)
}
})
CAUTION
_
NGINX
에는
HTTP
와
HTTPS
에서
server
설정 블록을 별도로 사용합니다. 만약
HTTP
에
대응하는 설정 블록에서
X
-
Forwarded
-
Protocol
설정을 잊는다면 클라이언트가 헤더를 위조해 비 보안
연결을 보안 연결로 가장할 수도 있습니다. 이 방법을 사용한다면
항상
X
-
Forwarded
-
Protocol
헤더를
사용하도록 유의하세요.
익스프레스에서는 프록시를 더 ‘투명’하게, 즉 프록시의 장점은 누리면서도 프록시를 사용하지
않는 것과 마찬가지로 만드는 ‘편의 프로퍼티’를 제공합니다. 이 프로퍼티를 사용하려면
app
.
enable
(‘
trust
proxy
’)
로 익스프레스에서 프록시를 신뢰하도록 설정합니다. 이 방법을 사
용하면
req
.
protocol
,
req
.
secure
,
req
.
ip
가 클라이언트 연결을 여러분의 앱이 아니라 프
록시에서