Basic Authorization

Sammy·2024년 4월 18일
0

Authorization

목록 보기
2/9

Basic Authorization

  1. HTTP 기본 인증 방식
  2. BASE64로 인코딩된 사용자의 아이디, 패스워드 username:password 를 요청 헤더에 담아서 요청
    a. semyeong:1234
    b. Basic c2VteWVvbmc6MDAwMTM
  3. HTTP 에서 사용할 경우 민감 정보를 탈취 당할 가능성이 높기 때문에 반드시 HTTPS 를 사용해야한다.

HTTP 장단점

  • HTTP 의 장점

    • 사용자 관점에서 HTTP 는 HTTPS 보다 빠르다.
    • 공급자 관점에서 HTTP 는 HTTPS 보다 비용이 적게 든다.
      • HTTPS 는 설치 및 인증서를 유지하는데 추가 비용이 든다.
  • HTTP 의 단점

    • 네트워크 보안이 안되어 있기 때문에 네트워크 상에서 전달되는 모든 민감한 정보를 제 3자가 마음대로 열람하고 수정할 수 있다.
    • HTTP 로 민감한 정보를 다룰 때 항상 변조와 해킹 가능성을 고려해야한다.
  • HTTP 를 사용하는 경우

    • 인증 과정을 거치지 않기 때문에 HTTPS 보다 속도가 빠르고 인증서 유지 비용이 들지 않기 때문에 민감한 정보가 없는 페이지에서는 HTTP 를 사용하는 것도 고려해볼만 하다.

코드 예시

package main

import (
	"github.com/gin-gonic/gin"
)

func main() {
	router := gin.Default()

	router.GET("/", func(c *gin.Context) {
		c.String(200, "Hello, World!")
	})

	router.GET("/secret", basicAuthMiddleware, func(c *gin.Context) {
		c.String(200, "success!")
	})

	router.Run(":8080")
}

func basicAuthMiddleware(c *gin.Context) {
	username, password, ok := c.Request.BasicAuth()

	if !ok || username != "semyeong" || password != "1234" {
		c.AbortWithStatus(401)
		return
		}

	c.Next()
}
profile
Web Developer

0개의 댓글