我在 Go 中使用dvwright/xss-mw中间件来检测 xss。此中间件会自动从用户提交的输入中删除 xss,并且请求会以有效响应继续。我想检测 xss,如果有任何 xss 脚本,然后通过错误而不是简单地删除 xss。
我的代码在这里。
package main
import (
"github.com/dvwright/xss-mw"
"github.com/gin-gonic/gin"
"net/http"
)
func main() {
r := gin.Default()
// include as standard middleware
var xssMdlwr xss.XssMw
r.Use(xssMdlwr.RemoveXss())
r.GET("/ping", func(c *gin.Context) {
c.JSON(200, gin.H{
"message": "pong",
})
})
type Login struct {
User string `form:"user" json:"user" binding:"required"`
Password string `form:"password" json:"password" binding:"required"`
}
r.POST("/login", func(c *gin.Context) {
var json Login
if c.BindJSON(&json) == nil {
if json.User == "manu" && json.Password == "123" {
c.JSON(http.StatusOK, gin.H{"status": "you are logged in"})
} else {
c.JSON(http.StatusUnauthorized, gin.H{"status": "unauthorized"})
}
}
})
r.Run() // listen and serve on 0.0.0.0:8080
}
请帮帮我。