搜尋

首頁  >  問答  >  主體

php - laravel 負載平衡如何實現csrf防禦?

laravel預設開啟csrf,使用的是csrf_token()產生一個隨機字串保存在瀏覽器和session檔案中.然後根據瀏覽器傳回的cookie來找到對應的session檔,取得其中的token進行比較.
但是問題是如果使用負載平衡,配置幾台伺服器,就無法透過保存在伺服器上的session檔案來取得token進行驗證,多台伺服器對應一個網站,如何使用laravel的csrf防禦呢?是不是可以設​​定session檔案共用來解決這個問題?如果是的話,nginx上應該如何設定呢?

phpcn_u1582phpcn_u15822777 天前1011

全部回覆(2)我來回復

  • 黄舟

    黄舟2017-06-05 11:11:22

    session入庫,入庫後就能共享了

    回覆
    0
  • 为情所困

    为情所困2017-06-05 11:11:22

    這和 nginx 沒有什麼關係, 你需要的是修改 Session Driver

    
        /*
        |--------------------------------------------------------------------------
        | Default Session Driver
        |--------------------------------------------------------------------------
        |
        | This option controls the default session "driver" that will be used on
        | requests. By default, we will use the lightweight native driver but
        | you may specify any of the other wonderful drivers provided here.
        |
        | Supported: "file", "cookie", "database", "apc",
        |            "memcached", "redis", "array"
        |
        */
    
        'driver' => env('SESSION_DRIVER', 'file');

    回覆
    0
  • 取消回覆