gofmt programm

This commit is contained in:
Simon Rieger 2024-04-01 12:58:59 +02:00
parent d27d29ae34
commit 7cc4b410dc

View file

@ -1,6 +1,8 @@
package main package main
import ( import (
"crypto/rand"
"encoding/base64"
"fmt" "fmt"
"html/template" "html/template"
"io" "io"
@ -12,8 +14,6 @@ import (
"strings" "strings"
"sync" "sync"
"time" "time"
"crypto/rand"
"encoding/base64"
) )
var ( var (
@ -27,9 +27,9 @@ func main() {
http.HandleFunc("/upload", uploadHandler) http.HandleFunc("/upload", uploadHandler)
http.HandleFunc("/image/", imageHandler) http.HandleFunc("/image/", imageHandler)
http.HandleFunc("/view/", viewHandler) http.HandleFunc("/view/", viewHandler)
// Statischen Dateipfad setzen // Statischen Dateipfad setzen
fs := http.FileServer(http.Dir("static")) fs := http.FileServer(http.Dir("static"))
http.Handle("/static/", http.StripPrefix("/static/", fs)) http.Handle("/static/", http.StripPrefix("/static/", fs))
fmt.Println("Server listening on :8080") fmt.Println("Server listening on :8080")
http.ListenAndServe(":8080", nil) http.ListenAndServe(":8080", nil)
@ -59,27 +59,26 @@ func homeHandler(w http.ResponseWriter, r *http.Request) {
} }
func generateNonce() (string, error) { func generateNonce() (string, error) {
nonceBytes := make([]byte, 16) // 16 Bytes generieren eine ausreichend lange Zeichenfolge für den Nonce nonceBytes := make([]byte, 16) // 16 Bytes generieren eine ausreichend lange Zeichenfolge für den Nonce
if _, err := rand.Read(nonceBytes); err != nil { if _, err := rand.Read(nonceBytes); err != nil {
return "", err // Im Fehlerfall, geben Sie den Fehler zurück return "", err // Im Fehlerfall, geben Sie den Fehler zurück
} }
return base64.StdEncoding.EncodeToString(nonceBytes), nil return base64.StdEncoding.EncodeToString(nonceBytes), nil
} }
func uploadHandler(w http.ResponseWriter, r *http.Request) { func uploadHandler(w http.ResponseWriter, r *http.Request) {
nonce, err := generateNonce() nonce, err := generateNonce()
if err != nil { if err != nil {
// Fehlerbehandlung, z.B. Senden eines Serverfehlers // Fehlerbehandlung, z.B. Senden eines Serverfehlers
http.Error(w, "Serverfehler", http.StatusInternalServerError) http.Error(w, "Serverfehler", http.StatusInternalServerError)
log.Printf("Fehler beim Generieren des Nonce: %v", err) log.Printf("Fehler beim Generieren des Nonce: %v", err)
return return
} }
// Setzen der Content Security Policy // Setzen der Content Security Policy
//w.Header().Set("Content-Security-Policy", "default-src 'self'; script-src 'self'; object-src 'none';") //w.Header().Set("Content-Security-Policy", "default-src 'self'; script-src 'self'; object-src 'none';")
//w.Header().Set("Content-Security-Policy", fmt.Sprintf("default-src 'self'; script-src 'self' 'nonce-%s'; object-src 'none';", nonce)) //w.Header().Set("Content-Security-Policy", fmt.Sprintf("default-src 'self'; script-src 'self' 'nonce-%s'; object-src 'none';", nonce))
w.Header().Set("Content-Security-Policy", fmt.Sprintf("script-src 'self' 'nonce-%s';", nonce)) w.Header().Set("Content-Security-Policy", fmt.Sprintf("script-src 'self' 'nonce-%s';", nonce))
mu.Lock() mu.Lock()
defer mu.Unlock() defer mu.Unlock()
@ -163,11 +162,11 @@ func uploadHandler(w http.ResponseWriter, r *http.Request) {
data := struct { data := struct {
Message string Message string
Filename string Filename string
Nonce string Nonce string
}{ }{
Message: "Bild erfolgreich hochgeladen.", Message: "Bild erfolgreich hochgeladen.",
Filename: filename, // Geändert, um den möglicherweise modifizierten Dateinamen anzuzeigen Filename: filename, // Geändert, um den möglicherweise modifizierten Dateinamen anzuzeigen
Nonce: nonce, Nonce: nonce,
} }
err = tmpl.Execute(w, data) err = tmpl.Execute(w, data)