some password stuff i guess
sophuwu sophie@skisiel.com
Fri, 08 Dec 2023 13:01:14 +0100
4 files changed,
25 insertions(+),
3 deletions(-)
M
html/create.html
→
html/create.html
@@ -7,6 +7,6 @@ </head>
<body> <h1>URL Shortner</h1> <p>{{title}}</p> - <p>{{response}}</p> + <input type="text" disabled style="color: black;" value="{{response}}"></input> </body> </html>
M
html/index.html
→
html/index.html
@@ -7,7 +7,9 @@ </head>
<body> <h1>URL Shortner</h1> <form action="/" method="post"> - <input type="text" name="url" placeholder="Enter a URL here" autocomplete="off"> + <input type="text" name="url" placeholder="URL to shorten" autocomplete="off"> + <input type="text" name="custom" placeholder="Custom URL (optional)" autocomplete="off"> + <input type="password" name="key" placeholder="Password" autocomplete="off"> <input type="submit" value="Shorten"> </form> </body>
M
main.go
→
main.go
@@ -12,12 +12,14 @@ "net/http"
"os" "os/signal" "strings" + "sync" "time" ) var urlDB *bolt.DB var wordList []string var virustotalKey string +var key string type urlStruc struct { Date time.Time@@ -50,6 +52,14 @@ println("virustotal.key is empty")
os.Exit(1) } virustotalKey = string(b) + + b, err = os.ReadFile("key") + fec(err) + if len(b) == 0 { + println("key is empty") + os.Exit(1) + } + key = string(b) var db *bolt.DB db, err = bolt.Open("urls.db", 0600, nil)@@ -237,7 +247,11 @@ url.Url = "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
writeURL(url) } +var locky sync.Mutex + func createHandler(w http.ResponseWriter, r *http.Request) { + locky.Lock() + defer locky.Unlock() var err error var url urlStruc var api bool = false@@ -249,6 +263,11 @@ return
} if r.Form.Get("mode") == "api" { api = true + } + if r.Form.Get("key") != key { + time.Sleep(1 * time.Second) + createPage(w, api, 401, "Error: Invalid key") + return } url.Url = r.Form.Get("url") if url.Url == "" {@@ -280,7 +299,7 @@ err = writeURL(url)
if hec(w, err, 500) { return } - createPage(w, api, 200, r.URL.Host+"/"+url.Path) + createPage(w, api, 200, r.Host+"/"+url.Path) } func httpHandler(w http.ResponseWriter, r *http.Request) {