https://rowin.dev/blog/preventing-path-traversal-attacks-in-go