Sessions: securecookie: 값이 μœ νš¨ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€

에 λ§Œλ“  2013λ…„ 10μ›” 13일  Β·  9μ½”λ©˜νŠΈ  Β·  좜처: gorilla/sessions

μ•ˆλ…•,
websocket.Conn.Request()의 μš”μ²­μ— λŒ€ν•΄ store.Get()을 ν˜ΈμΆœν•˜λ €κ³  ν•  λ•Œ 이 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.

session, err := store.Get(conn.Request(), "my_session")

였λ₯˜λŠ” gorilla/securecookie의 verifyMac κΈ°λŠ₯μ—μ„œ λ°œμƒν•©λ‹ˆλ‹€.

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

μ†ŒμŠ€ μ½”λ“œμ— ν‚€/자격 증λͺ…을 ν¬ν•¨ν•΄μ„œλŠ” μ•ˆ λ©λ‹ˆλ‹€. λŒ€μ‹  ν™˜κ²½μ„ 톡해 전달해야 ν•©λ‹ˆλ‹€(예: os.Getenv("APPNAME_SESSION_KEY") . ν•΄λ‹Ή ν™˜κ²½μ€ 배포 μ‹œμŠ€ν…œμ— μ˜ν•΄ λΆ€νŠΈμŠ€νŠΈλž©λ  수 μžˆμŠ΅λ‹ˆλ‹€. k8s의 경우 Secrets κΈ°λŠ₯을 μ‚¬μš©ν•˜μ—¬ https://kubernetes.io/docs/concepts/configuration/secret/#using -secrets-as-environment-variables

λͺ¨λ“  9 λŒ“κΈ€

μ–΄λ–»κ²Œ ν•΄κ²°ν•˜μ…¨λ‚˜μš”? :)

λ‚˜λ„ 이것을보고 있으며 그것을 μ§€μš°κ±°λ‚˜ ν•΄κ²°ν•˜λŠ” 방법을 μ•Œκ³  μ‹ΆμŠ΅λ‹ˆλ‹€.

였λ₯˜ λ™μž‘μ΄ 일관성이 μžˆμŠ΅λ‹ˆκΉŒ? μ•„λ‹ˆλ©΄ 일뢀 μš”μ²­μ—λ§Œ 영ν–₯을 μ€λ‹ˆκΉŒ?

2015λ…„ 6μ›” 18일 λͺ©μš”일 μ˜€ν›„ 2:04 Dominic Hamon [email protected]
썼닀:

λ‚˜λ„ 이것을보고 있으며 그것을 μ§€μš°κ±°λ‚˜ ν•΄κ²°ν•˜λŠ” 방법을 μ•Œκ³  μ‹ΆμŠ΅λ‹ˆλ‹€.

β€”
이 이메일에 직접 λ‹΅μž₯ν•˜κ±°λ‚˜ GitHubμ—μ„œ ν™•μΈν•˜μ„Έμš”.
https://github.com/gorilla/sessions/issues/16#issuecomment -113047123.

였λ₯˜κ°€ λ°œμƒν–ˆμ„ λ•Œ(500 λŒ€μ‹ ) μœ νš¨ν•œ νŽ˜μ΄μ§€λ₯Ό λ°˜ν™˜ν•œ λ‹€μŒ λΈŒλΌμš°μ €μ—μ„œ μΏ ν‚€λ₯Ό μˆ˜λ™μœΌλ‘œ μ‚­μ œν•˜μ—¬ 이λ₯Ό μ™„ν™”ν•  수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€. 인증/μ•”ν˜Έν™” ν‚€λ₯Ό μ—…λ°μ΄νŠΈν–ˆμ§€λ§Œ κΈ°μ‘΄ μ„Έμ…˜μ˜ λΈŒλΌμš°μ € 츑에 μΏ ν‚€κ°€ 있기 λ•Œλ¬Έμ— λ°œμƒν–ˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

λ‚˜λŠ” 이것을 μ™„ν™”ν•˜λŠ” μ˜¬λ°”λ₯Έ 방법이 μž₯기적으둜 무엇인지 μ•Œμ§€ λͺ»ν•˜λ―€λ‘œ μ–΄λ–€ 쑰언이라도 ν™˜μ˜ν•©λ‹ˆλ‹€.

이것을 ν”Όν•˜λ €λ©΄ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ ν‚€λ₯Ό λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ν•˜λŠ” 방법이 ν•„μš”ν•©λ‹ˆλ‹€.

λ‚˜λ„μ΄ λ¬Έμ œμ— λΆ€λ”ͺμ³€λ‹€. 고릴라/μ„Έμ…˜ λ¬Έμ„œ μ—μ„œ μƒˆ μ„Έμ…˜μ΄ μ—¬μ „νžˆ λ°˜ν™˜λœλ‹€κ³  session.Save() ν˜ΈμΆœν•  수 있으며 이후에 μš”μ²­ν•˜λŠ” λΈŒλΌμš°μ €λŠ” μœ νš¨ν•œ μƒˆ μ„Έμ…˜ μΏ ν‚€λ₯Ό κ°–κ²Œ λ©λ‹ˆλ‹€.

λ‚˜λŠ” 같은 λ¬Έμ œμ— μ§λ©΄ν–ˆκ³  μ²˜μŒμ—λŠ” λ°œκ²¬ν•˜κΈ°κ°€ μ•½κ°„ μ–΄λ €μ› μŠ΅λ‹ˆλ‹€. λ¬Έμ œλŠ” λ‚΄κ°€ 가지고 μžˆλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€.
var store = sessions.NewCookieStore(securecookie.GenerateRandomKey(10))
κ·Έλž˜μ„œ μ„œλ²„λ₯Ό λ‹€μ‹œ μ‹œμž‘ν•  λ•Œλ§ˆλ‹€ μ €μž₯μ†Œμ— λŒ€ν•œ μƒˆ ν‚€κ°€ μƒμ„±λ˜κ³  이전에 μ›Ή λΈŒλΌμš°μ €μ— μΏ ν‚€λ₯Ό μ €μž₯ν–ˆλ‹€λ©΄ μƒˆ ν‚€λ₯Ό μ‚¬μš©ν•˜κ³  있기 λ•Œλ¬Έμ— μΏ ν‚€λ₯Ό λ””μ½”λ”©ν•˜λ €κ³  ν•  λ•Œ 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€. μΏ ν‚€κ°€ 처음 μƒμ„±λ˜μ—ˆμ„ λ•Œμ˜ ν‚€κ°€ μ•„λ‹™λ‹ˆλ‹€.
이것은 λ•Œλ•Œλ‘œ λ…Έλ“œ(λ¨Έμ‹ )λ₯Ό λ‹€μ‹œ μ‹œμž‘ν•΄μ•Ό ν•˜κ³  ν•΄λ‹Ή λ…Έλ“œκ°€ 자체 ν‚€λ₯Ό μƒμ„±ν•˜μ—¬ λ‹€λ₯Έ λ…Έλ“œμ™€ μΆ©λŒμ„ μΌμœΌν‚¬ 수 있기 λ•Œλ¬Έμ— kubernetes에 배포할 λ•Œ μ΅œμ•…μ˜ 경우 λ°œκ²¬ν•˜κΈ° μ–΄λ €μš΄ 문제일 수 μžˆμŠ΅λ‹ˆλ‹€. μž„μ˜μ˜ ν‚€λ₯Ό μƒμ„±ν•˜μ§€ μ•ŠλŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€. λŒ€μ‹  μˆ˜λ™μœΌλ‘œ ν‚€λ₯Ό μ‚½μž…ν•˜μ—¬ λ‹€μŒκ³Ό 같은 λ¬Έμ œμ— μ§λ©΄ν•˜μ§€ μ•Šλ„λ‘ ν•˜μ‹­μ‹œμ˜€.
var store = sessions.NewCookieStore([]byte("asdaskdhasdhgsajdgasdsadksakdhasidoajsdousahdopj"))

μ†ŒμŠ€ μ½”λ“œμ— ν‚€/자격 증λͺ…을 ν¬ν•¨ν•΄μ„œλŠ” μ•ˆ λ©λ‹ˆλ‹€. λŒ€μ‹  ν™˜κ²½μ„ 톡해 전달해야 ν•©λ‹ˆλ‹€(예: os.Getenv("APPNAME_SESSION_KEY") . ν•΄λ‹Ή ν™˜κ²½μ€ 배포 μ‹œμŠ€ν…œμ— μ˜ν•΄ λΆ€νŠΈμŠ€νŠΈλž©λ  수 μžˆμŠ΅λ‹ˆλ‹€. k8s의 경우 Secrets κΈ°λŠ₯을 μ‚¬μš©ν•˜μ—¬ https://kubernetes.io/docs/concepts/configuration/secret/#using -secrets-as-environment-variables

λ‚˜λŠ” λ˜ν•œ κΈ΄ keycloak ν† ν°μœΌλ‘œ 인해 영ν–₯을 λ°›μŠ΅λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰