Security 如何在Go中检测xss攻击并错误中止请求
我正在Go中使用dvwright/xss mw中间件来检测xss。该中间件自动从用户提交的输入中删除xss,并请求继续有效响应。 我想检测xss,如果有任何xss脚本,那么通过一个错误,而不是简单地删除xss 我的密码在这里Security 如何在Go中检测xss攻击并错误中止请求,security,go,xss,go-gin,Security,Go,Xss,Go Gin,我正在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.Defau
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
}
请帮助我。检测和删除XS都是不可能的。相反,请使用默认安全的策略(自动转义,如果有帮助,请不要禁用个别情况下的转义,不要在
元素或异常上下文(如*属性上的)中设置模板),并创建限制性内容安全策略。谢谢。但是,当我调用端点url 0.0.0.0:8080/login时,POST和json数据为{“user”:“manuprdknfkdngknfkint()”,“password”:“123”},然后输出为{“status”:“your are logging”}。我只想中止请求,而不是处理下一个请求,这个中间件正在删除脚本。为此,我在哪里可以更改代码..您想警告提交XSS的用户吗?而且,没有办法从数据库中过滤出“恶意数据”;只需接受它可能会在那里结束,并据此计划。您无法知道提交的数据是否是恶意的。相应地计划=不信任用户的输入。例如,如果你把它放在HTML中,请确保它总是被转义的。我还希望拒绝恶意请求。我发现节点库可以做到这一点:检测和删除XS都是不可能的。相反,请使用默认安全的策略(自动转义,如果有帮助,请不要禁用个别情况下的转义,不要在
元素或异常上下文(如*
属性上的)中设置模板),并创建限制性内容安全策略。谢谢。但是,当我调用端点url 0.0.0.0:8080/login时,POST和json数据为{“user”:“manuprdknfkdngknfkint()”,“password”:“123”},然后输出为{“status”:“your are logging”}。我只想中止请求,而不是处理下一个请求,这个中间件正在删除脚本。为此,我在哪里可以更改代码..您想警告提交XSS的用户吗?而且,没有办法从数据库中过滤出“恶意数据”;只需接受它可能会在那里结束,并据此计划。您无法知道提交的数据是否是恶意的。相应地计划=不信任用户的输入。例如,如果你把它放在HTML中,请确保它总是被转义的。我还希望拒绝恶意请求。我在这里找到了这样做的节点库: