์ฌ์ฉ์ ์ธ์ฆ์ ๋งฅ๋ฝ์์ ์ธ์ ์ฟ ํค๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์ํธ ์์ฉํ๋ ๋์ ์ฌ์ฉ์ ์ธ์ ๋ฐ์ดํฐ๋ฅผ ์์๋ก ์ ์ฅํ๊ณ ๊ด๋ฆฌํ๋๋ก ์ค๊ณ๋ ํน์ ์ ํ์ HTTP ์ฟ ํค๋ฅผ ์๋ฏธํฉ๋๋ค. ์ด ์์ ์ ์ฅ์๋ ์ฌ๋ฌ ํ์ด์ง ์์ฒญ์ ๊ฑธ์ณ ์ฌ์ฉ์์ ์ํ์ ๊ธฐ๋ณธ ์ค์ ์ ์ ์งํ๋ ๋ฐ ๋์์ด ๋๋ฉฐ ์น ํ์ ์ค์ ์ํํ๊ณ ์ผ๊ด๋ ๊ฒฝํ์ ์ ๊ณตํฉ๋๋ค.
์ธ์ ์ฟ ํค๋ ์น ๋ฐ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๋ฐ์ ์ธ ์ฌ์ฉ์ ๊ฒฝํ๊ณผ ๋ณด์์ ์ค์ํ ์ญํ ์ ํฉ๋๋ค. ์ด๋ ๋จ์ผ ์ฌ์ฉ์ ์ธ์ ๋์์๋ง ํ์ฑํ๋๊ณ ์ฌ์ฉ์๊ฐ ๋ก๊ทธ์์ํ๊ฑฐ๋ ๋ธ๋ผ์ฐ์ ๋ฅผ ๋ซ๋ ๋ฑ ์ธ์ ์ด ์ข ๋ฃ๋ ํ ์ฆ์ ์ญ์ ๋๋ค๋ ์ ์์ ์๊ตฌ ์ฟ ํค์ ๋ค๋ฆ ๋๋ค. ๋ฐ๋ฉด์ ์๊ตฌ ์ฟ ํค๋ ์ธ์ ์ด ์ข ๋ฃ๋ ํ์๋ ์ฌ์ฉ์์ ์ฅ์น์ ๊ณ์ ์ ์ฅ๋์ด ์น์ฌ์ดํธ๊ฐ ์ฌ๋ฌ ๋ฒ์ ๋ฐฉ๋ฌธ์ ๊ฑธ์ณ ์ฌ์ฉ์ ๊ธฐ๋ณธ ์ค์ ๊ณผ ์ค์ ์ "๊ธฐ์ต"ํ ์ ์๋๋ก ํฉ๋๋ค. ์ผ์์ ์ธ ํน์ฑ์ผ๋ก ์ธํด ์ธ์ ์ฟ ํค๋ ์ผ๋ฐ์ ์ผ๋ก ์๊ตฌ ์ฟ ํค๋ณด๋ค ๋ ์์ ํ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค.
AppMasterno-code ํ๋ซํผ์ ํ์ฉํ์ฌ ๋ฐฑ์๋, ์น ๋ฐ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ ๋ ์ธ์ ์ฟ ํค๋ ์ฌ์ฉ์ ๊ฒฝํ์ ํฅ์์์ผ ์ํํ๊ณ ์์ ํ ์ฌ์ฉ์ ์ธ์ฆ ํ๋ก์ธ์ค๋ฅผ ๋ณด์ฅํ ์ ์์ต๋๋ค. ์ธ์ ์ฟ ํค๋ ์ธ์ฆ ์ฑ๊ณต ์ ๊ฐ ์ฌ์ฉ์์๊ฒ ๊ณ ์ ํ ์ธ์ ID๋ฅผ ํ ๋นํ์ฌ ์๋ํฉ๋๋ค. ์ด ID๋ ์ฌ์ฉ์ ์ฅ์น์ ์ธ์ ์ฟ ํค ๋ด์ ์ ์ฅ๋๋ฉฐ ์ธ์ ์ค์ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ์ ํ์ ์ํธ ์์ฉ์ ์ํด ์ฌ์ฉ์๋ฅผ ์๋ณํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
์ธ์ ์ฟ ํค๋ ์ค์ ์ฌ์ฉ์์ ์ ์์ด๋ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๊ฐ ์๋ ์ธ์ ID๋ง ์ ์ฅํ๋ฏ๋ก ์ธ์ฆ ํ๋ก์ธ์ค์ ์ถ๊ฐ ๋ณด์ ๊ณ์ธต์ ์ ๊ณตํฉ๋๋ค. ๊ณต๊ฒฉ์๊ฐ ์ฌ์ฉ์์ ์ธ์ ์ฟ ํค๋ฅผ ๊ฐ๋ก์ฑ๊ฑฐ๋ ๋ณต์ ํ๋๋ผ๋ ์ค์ ์ฌ์ฉ์ ์๊ฒฉ ์ฆ๋ช ์ด๋ ๋ฐ์ดํฐ๊ฐ ์๋ ์ธ์ ID์๋ง ์ก์ธ์คํ ์ ์์ต๋๋ค. ๋ํ Go ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ์์ฑ๋ AppMaster ์ ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ธ์ ์ฟ ํค ๊ตฌํ์ ๋ณด์๊ณผ ํ์ฅ์ฑ์ ๋์ฑ ํฅ์์ํฌ ์ ์์ต๋๋ค.
๋ํ ์ธ์ ์ฟ ํค๋ SSO(Single Sign-On) ์์คํ ๊ตฌํ์ ์ฉ์ดํ๊ฒ ํฉ๋๋ค. SSO ์์คํ ์ ์ฌ์ฉํ๋ฉด ์ฌ์ฉ์๋ ๋จ์ผ ์๊ฒฉ ์ฆ๋ช ์ธํธ๋ก ์ธ์ฆํ๊ณ ์ฌ๋ฌ ๊ด๋ จ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ก์ธ์คํ ์ ์์ต๋๋ค. ์ธ์ ์ฟ ํค๋ ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฌ์ฉ์์ ์ธ์ฆ ์ํ๋ฅผ ์ ์งํ์ฌ ์ ์ฒด ์ธ์ฆ ํ๋ก์ธ์ค๋ฅผ ๋จ์ํํ๊ณ ์ฌ์ฉ์ ๊ฒฝํ์ ํฅ์์ํต๋๋ค. ๋ก๋๊ฐ ๋์ ์ฌ์ฉ ์ฌ๋ก์์ AppMaster ์ ํ๋ซํผ์ ์ํ ๋น์ ์ฅ ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ Postgresql ํธํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ์ฌ ํจ์จ์ ์ด๊ณ ์๋ต์ฑ์ด ๋ฐ์ด๋ ์ธ์ ์ฒ๋ฆฌ๋ฅผ ๋ณด์ฅํฉ๋๋ค.
์ฌ์ฉ์ ์ธ์ฆ ์ธก๋ฉด์์ ์ธ์ ์ฟ ํค์ ์ค์ํ ์ด์ ์ค ํ๋๋ CSRF(Cross-Site Request Forgery) ๊ณต๊ฒฉ์ ๋ฐฉ์งํ๋ ๋ฐ ๋์์ด ๋ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ์ธ์ ์ฟ ํค ๋ด์ CSRF ๋ฐฉ์ง ํ ํฐ์ ํตํฉํจ์ผ๋ก์จ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฒญ์ด ํฉ๋ฒ์ ์ธ ์์ค์์๋ง ํ์ฉ๋๋๋ก ๋ณด์ฅํ์ฌ ์ธ์ฆ๋ ์ฌ์ฉ์๋ฅผ ๋์ ํ์ฌ ๋ฌด๋จ ์์ ์ด ์ํ๋๋ ์ํ์ ์ํํ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ์ธ์ ์ฟ ํค๊ฐ ๋ณด์ ์ํ์ผ๋ก๋ถํฐ ์์ ํ ๋ฉด์ญ๋๋ ๊ฒ์ ์๋๋๋ค. ๋ชจ๋ HTTP ์์ฒญ๊ณผ ํจ๊ป ์ ์ก๋๋ฏ๋ก ์ฌ์ฉ์์ ์๋ฒ ๊ฐ์ ํต์ ์ด ์ํธํ๋ฅผ ํตํด ๋ณดํธ๋์ง ์์ผ๋ฉด ๊ฐ๋ก์ฑ๊ธฐ ์ฝ์ต๋๋ค. ์ด๋ฌํ ์ํ์ ํจ๊ณผ์ ์ผ๋ก ์ํํ๋ ค๋ฉด ๊ฐ๋ฐ์๋ HTTPS ์ฌ์ฉ์ ๊ฐ์ ํ๊ณ ์ธ์ ์ฟ ํค์ Secure ๋ฐ HttpOnly ํ๋๊ทธ๋ฅผ ๊ตฌํํด์ผ ํฉ๋๋ค. Secure ํ๋๊ทธ๋ ์ธ์ ์ฟ ํค๊ฐ ์์ ํ๊ณ ์ํธํ๋ ์ฐ๊ฒฐ์ ํตํด์๋ง ์ ์ก๋๋๋ก ๋ณด์ฅํ๋ ๋ฐ๋ฉด, HttpOnly ํ๋๊ทธ๋ JavaScript์ ๊ฐ์ ํด๋ผ์ด์ธํธ ์ธก ์คํฌ๋ฆฝํธ๊ฐ ์ฟ ํค์ ์ก์ธ์คํ๋ ๊ฒ์ ๋ฐฉ์งํ์ฌ XSS(๊ต์ฐจ ์ฌ์ดํธ ์คํฌ๋ฆฝํ ) ๊ณต๊ฒฉ์ ์ํ์ ์ค์ ๋๋ค. .
๊ฒฐ๋ก ์ ์ผ๋ก, ์ธ์ ์ฟ ํค๋ ์น ๋ฐ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉ์ ์ธ์ฆ ํ๋ก์ธ์ค์์ ์ค์ํ ์ญํ ์ ํ๋ฉฐ, ์ธ์ ์ ๋ฐ์ ๊ฑธ์ณ ์ฌ์ฉ์ ์ํ์ ์ ํธ๋๋ฅผ ์ ์งํ๋ ์์ ํ๊ณ ํจ์จ์ ์ธ ์๋จ์ ์ ๊ณตํฉ๋๋ค. AppMaster ํ๋ซํผ ๋ด์ ์ธ์ ์ฟ ํค๋ฅผ ํตํฉํจ์ผ๋ก์จ ๊ฐ๋ฐ์๋ ๋ฐฑ์๋, ์น ๋ฐ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ํ๋ก์ ํธ์ ๊ฐํ๋๊ณ ์์ ํ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ ์ ์์ต๋๋ค. ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ Go ํ๋ก๊ทธ๋๋ฐ ์ธ์ด, ํ์ฅ์ฑ์ ์ํ ๋ฌด์ํ ์ ํ๋ฆฌ์ผ์ด์ , Postgresql ํธํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํฌํจํ๋ AppMaster ์ ๊ฐ๋ ฅํ ์ธํ๋ผ๋ ์ธ์ ์ฟ ํค ๊ด๋ฆฌ์ ์ ๋ขฐ์ฑ๊ณผ ๋ณด์์ ๋ชจ๋ ๋ณด์ฅํฉ๋๋ค.