Browse Source

restricts export for fraudelent notes

master
Christian Müller 8 years ago
parent
commit
e105d96c4d
  1. 2
      render.go
  2. 12
      server.go

2
render.go

@ -25,7 +25,7 @@ var ( @@ -25,7 +25,7 @@ var (
rexpNewLine = regexp.MustCompile("[\n\r]")
rexpNonAlphaNum = regexp.MustCompile("[`~!@#$%^&*_|+=?;:'\",.<>{}\\/]")
rexpNoScriptIframe = regexp.MustCompile("<.*?(iframe|script).*?>")
rexpLink = regexp.MustCompile("(ht|f)tp://[^\\s]+")
rexpLink = regexp.MustCompile("(ht|f)tps?://[^\\s]+")
errorUnathorised = errors.New("password is wrong")
errorBadRequest = errors.New("password is empty")

12
server.go

@ -78,8 +78,14 @@ func main() { @@ -78,8 +78,14 @@ func main() {
})
e.GET("/:id/export", func(c echo.Context) error {
id := c.Param("id")
n, code := load(c, db)
c.Logger().Debugf("/%s/export requested; response code: %d", n.ID, code)
defer incViews(n)
if fraudelent(n) {
code = http.StatusForbidden
n = statusNote(code)
}
c.Logger().Debugf("/%s/export requested; response code: %d", id, code)
if code == http.StatusOK {
return c.String(code, n.Text)
}
@ -180,6 +186,10 @@ func main() { @@ -180,6 +186,10 @@ func main() {
}
func fraudelent(n *Note) bool {
res := rexpLink.FindAllString(n.Text, -1)
if len(res) < 3 {
return false
}
stripped := rexpLink.ReplaceAllString(n.Text, "")
l1 := len(n.Text)
l2 := len(stripped)

Loading…
Cancel
Save