token을 이용한 접속 제한

Written by

in

투자 포트폴리오를 파이 차트로 만들었다. 보고 있으면 기분이 좋다. 하지만 다른 사람이 보는 것은 싫다. IP기반으로 차단을 하고 있다. 그런데 회사 내라면 모든 PC에서 가능하다. 코파일럿을 이용해서 검색했다. 쉽고 간단한 방법을 선택해서 적용했다.

http 블록에서 map 을 이용해서 token 이 있으면 allow_access 변수에 1, 아니면 0을 지정한다.

map $arg_token $allow_access {
		default 0;
		"my_token" 1;
}

서버 블록에서 다음과 같이 설정한다. 토큰이 없는 0의 값이면, drop 효과가 있는 444 응답 코드를 적용했다.

location /asset/ {
	if ($allow_access = 0) {
		return 444;
	}
}

이러면 다음과 같이 하면 접속할 수 있다.

https://www.welovedoctor.com/asset/index.html?token=my_token

index.html 파일에는 png 파일을 볼 수 있는 내용이 있다. 하지만 화면에서 그림 파일을 볼 수 없다.

다음과 같이 index.html 파일의 내용을 수정한다.

<img src="asset.png?token=my_token">