<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                XSRF過濾 跨站請求偽造 跨站請求偽造(Cross-site request forgery ),簡稱為XSRF,是Web應用中常見的一個安全問題。前面的鏈接也詳細講述了XSRF攻擊的實現方式。 當前防范XSRF的一種通用的方法,是對每個用戶都記錄一個無法預知的cookie數據,然后要求所有提交的請求(POST / PUT / DELETE)中都必須帶有這個cookie數據。如果此數據不匹配,那么這個請求就可能是被偽造的。 beego有內建的XSRF的防范機制,要使用此機制,您需要在應用配置文件中加上enablexsrf設定: enablexsrf = true xsrfkey = 61oETzKXQAGaYdkL5gEmGeJJFuYh7EQnp2XdTP1o xsrfexpire = 3600 或者直接在主入口處這樣的設置: beego.EnableXSRF = true beego.XSRFKEY = "61oETzKXQAGaYdkL5gEmGeJJFuYh7EQnp2XdTP1o" beego.XSRFExpire = 3600 //過期時間,默認1小時 如果開啟了XSRF,那么beego的Web應用將對所有用戶設置一個_xsrf的cookie值(默認過期1小時),如果POST PUT DELET請求中沒有這個cookie值,那么這個請求會被直接拒絕。如果你開啟了這個機制,那么在所有被提交的表單中,你都需要加上一個域來提供這個值。你可以通過在模板中使用專門的函數XSRFFormHTML()來做到這一點: 過期時間上面我們設置了全局的過期時間beego.XSRFExpire,但是有些時候我們也可以在控制器中修改這個過期時間,專門針對某一類處理邏輯: func (this *HomeController) Get(){ this.XSRFExpire = 7200 this.Data["xsrfdata"]=template.HTML(this.XSRFFormHTML()) } 在表單中使用 ~~~ |-- conf | `-- app.conf ~~~ ~~~ appname = project httpport = 8080 runmode = dev enablexsrf = true xsrfkey = lalalalallalalallalalallallalla xsrfexpire = 3600 ~~~ ~~~ |-- admin | |--controllers | `-- user.go ~~~ ~~~ package admin import ( "fmt" "html/template" "github.com/astaxie/beego" ) type UserController struct { beego.Controller } func (this *UserController) Index() { if this.Ctx.Request.Method == "GET" { this.XSRFExpire = 7200 this.Data["xsrfdata"] = template.HTML(this.XSRFFormHTML()) this.TplName = "admin/user/index.html" } else { _xsrf := this.GetString("_xsrf") xsrf := this.GetString("xsrf") this.Ctx.WriteString(fmt.Sprintf("_xsrf : %v\n 你的輸入:%v\n", _xsrf, xsrf)) } } ~~~ ~~~ |-- views | |--admin | |--user | `-- index.html ~~~ ~~~ <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <form action='{{urlfor "UserController.Add"}}' method="post" enctype="multipart/form-data"> {{ .xsrfdata }} <div class="field-content"> XSRF過濾:<input name="xsrf" type="text" /> </div> <div class="field-content"> <input type="submit" value="提交" /> </div> </form> </body> </html> ~~~ 瀏覽器訪問: http://127.0.0.1:8080/admin/user/index 瀏覽器輸出: ~~~ _xsrf : GpUbw6eo4KKOySAlJurxIIE3altPhxB5 你的輸入:XSRF過濾 ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看