Sobes.tech
Junior — Middle

Milliseid meetodeid saab kasutada XSS-i (ristkultuuriline skriptimine) vältimiseks?

sobes.tech AI

Vastus AI-lt

Kaitseksiooni (XSS) rünnakute kaitsmē tiek izmantotas vairākas galvenās metodes:

  • Izvades escape: Visas dati, kas tiek rādīti HTML, ir jāpareizi escape, lai īpašie simboli (piemēram, <, >, &) netiktu interpretēti kā kods.
  • Content Security Policy (CSP) izmantošana: CSP ļauj ierobežot skriptu un citu resursu avotus, samazinot ļaunprātīga koda izpildes risku.
  • Ievades datu validācija un filtri: Pārbaudiet un attīriet lietotāja ievadi, noņemot vai kodējot potenciāli bīstamus simbolus.
  • Droši šabloni: Go valodā, piemēram, html/template pakotne automātiski escape datus, ievietojot tos HTML.

Piemērs Go ar html/template:

package main

import (
    "html/template"
    "net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
    tmpl := template.Must(template.New("page").Parse(`<html><body>Lietotāja ievade: {{.}}</body></html>`))
    userInput := r.URL.Query().Get("input")
    tmpl.Execute(w, userInput) // automātiski escape
}

func main() {
    http.HandleFunc("/", handler)
    http.ListenAndServe(":8080", nil)
}

Tādējādi, pat ja lietotājs ievadīs ļaunprātīgu skriptu, tas tiks rādīts kā teksts un netiks izpildīts.