[go] go 언어에서의 html/escape 패키지와 URL 처리
Go 언어는 안정적이고 강력한 표준 라이브러리를 제공합니다. 여기에는 HTML 특수 문자를 이스케이프하거나 URL을 생성할 수 있는 편리한 패키지가 포함되어 있습니다.
HTML 이스케이프
html/template
패키지는 HTML 템플릿을 안전하게 렌더링하기 위한 기능을 제공합니다. 예를 들어, 웹 앱에서 사용자가 제공한 입력을 안전하게 표시하려면 해당 입력에 포함된 HTML 특수 문자를 이스케이프해야 합니다.
import "html/template"
func main() {
userInput := `Hello <script>alert('XSS attack')</script>`
safeHTML := template.HTMLEscapeString(userInput)
fmt.Println(safeHTML) // 출력: Hello <script>alert('XSS attack')</script>
}
위 코드에서 HTMLEscapeString
함수는 사용자 입력에 포함된 HTML 특수 문자를 안전한 텍스트로 변경합니다.
URL 처리
net/url
패키지는 URL을 파싱하고 생성하는데 사용됩니다. URL에서 쿼리 파라미터를 빌드하거나 파싱하는 등의 기능을 제공합니다.
import "net/url"
func main() {
// URL 파싱
u, err := url.Parse("http://example.com/?q=hello+world")
if err != nil {
log.Fatal(err)
}
fmt.Println(u.Scheme) // 출력: http
fmt.Println(u.Host) // 출력: example.com
fmt.Println(u.Query().Get("q")) // 출력: hello world
// URL 생성
u.Path = "/newpath"
u.RawQuery = "key=value"
fmt.Println(u.String()) // 출력: http://example.com/newpath?key=value
}
위의 코드에서 url.Parse
함수를 사용하여 URL을 해석하고, u.Query().Get("q")
를 사용하여 쿼리 파라미터를 가져옵니다. 또한, URL의 다양한 부분을 수정하여 새로운 URL을 생성할 수 있습니다.
Go 언어는 HTML 이스케이프와 URL 처리를 간단하게 처리할 수 있는 표준 라이브러리를 제공하여 웹 애플리케이션 개발 시 보안 및 안정성을 향상시킬 수 있습니다.
참고 자료
- https://golang.org/pkg/html/template/
- https://golang.org/pkg/net/url/