当前位置: 首页 > 软件库 > Web应用开发 > Web框架 >

nosurf

Go 的 CSRF 中间件
授权协议 MIT
开发语言 Google Go
所属分类 Web应用开发、 Web框架
软件类型 开源软件
地区 不详
投 递 者 鲁文昌
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

nosurf 是 Go 语言的一个 CSRF 跨站请求伪造(Cross Site Request Forgery) 中间件,可嵌入到 net/http 中使用,可方便与 GorillaMartini 框架结合使用。

示例代码:

package main

import (
    "fmt"
    "github.com/justinas/nosurf"
    "html/template"
    "net/http"
)

var templateString string = `
<!doctype html>
<html>
<body>
{{ if .name }}
<p>Your name: {{ .name }}</p>
{{ end }}
<form action="/" method="POST">
<input type="text" name="name">

<!-- Try removing this or changing its value
     and see what happens -->
<input type="hidden" name="csrf_token" value="{{ .token }}">
<input type="submit" value="Send">
</form>
</body>
</html>
`
var templ = template.Must(template.New("t1").Parse(templateString))

func myFunc(w http.ResponseWriter, r *http.Request) {
    context := make(map[string]string)
    context["token"] = nosurf.Token(r)
    if r.Method == "POST" {
        context["name"] = r.FormValue("name")
    }

    templ.Execute(w, context)
}

func main() {
    myHandler := http.HandlerFunc(myFunc)
    fmt.Println("Listening on http://127.0.0.1:8000/")
    http.ListenAndServe(":8000", nosurf.New(myHandler))
}
 相关资料
  • CSRF Middleware(跨站请求伪造) CSRF(Cross-site request forgery 跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。 跟跨网站脚本(XSS)相比,XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对

  • 中间件 csrf 用于为 Macaron 实例 生成和验证 CSRF 令牌。 GitHub API 文档 下载安装 go get github.com/go-macaron/csrf 使用示例 想要使用该中间件,您必须同时使用 session 中间件。 package main import ( "github.com/go-macaron/csrf" "github.com/go

  • 问题内容: 在GET和POST参数中不仅需要cookie,还需要身份验证。 检查HTTP Referer头; 在Wikipedia上看到了这篇文章,想知道如何应用它们 好的…我正在使用Kohana PHP框架,并且具有确定引荐来源标头的功能,但是究竟要检查引荐来源标头中的什么内容呢?框架函数仅返回引荐来源网址 以及如何验证GET和POST参数?反对什么?存储的信息?预期的类型? 问题答案: 为了防

  • 本文向大家介绍详解利用django中间件django.middleware.csrf.CsrfViewMiddleware防止csrf攻击,包括了详解利用django中间件django.middleware.csrf.CsrfViewMiddleware防止csrf攻击的使用技巧和注意事项,需要的朋友参考一下 一、在django后台处理 1、将django的setting中的加入django.co

  • CSRF是指针对Web应用程序的跨站点伪造攻击。 CSRF攻击是系统的经过身份验证的用户执行的未授权活动。 因此,许多Web应用程序容易受到这些攻击。 Laravel以下列方式提供CSRF保护 - Laravel包含一个内置的CSRF插件,可为每个活动用户会话生成令牌。 这些令牌验证相关的经过身份验证的用户是否发送了操作或请求。 实现 (Implementation) 本节将详细讨论Laravel

  • CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”或者Session Riding,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本XSS,但它与XSS非常不同,XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不大流行(因此对

  • 我的应用程序具有apache模块提供的CSRF保护。我的应用程序包含几个允许上载一些文件的页面,如下所示: 当我们将apache版本从httpd-2.2.3更新到httpd-2.2.15时,所有的工作都很好。 我谷歌了一段时间,发现这个问题可能与我表单中的multipart/form-data参数有关。在这种情况下,表单发送不安全。我还发现Spring可以通过Spring doc的处理如上所述的内

  • 下面是我MERN项目的文件结构。 客户端文件夹包含反应服务器。客户端在<code>localhost.Client上运行。comServer文件夹包含节点的代码。js服务器。服务器运行于 每当我从客户端向服务器发出请求时。如何缓解 csrf 攻击?确保向服务器发出的请求来自客户端,而不是来自任何其他源。