1
我有一個應用程序使用角度js向服務器發出$ http GET請求。一個頁面特別具有一種形式,得到嵌入到它CSRF令牌如下Laravel csrf標記不匹配ajax GET請求
<input type="hidden" ng-model="token" value="{{{ Session::getToken() }}}">
在我的控制,我有以下代碼:
public function getMethod($arg, $token)
{
/*Check for csrf token validity*/
if ($token != Session::token()) {
return Response::json(
array(),
403
);
}
........
}
從客戶端我作出這樣的要求:
var arg = $scope.arg;
var get_url = '/url/routing/to/controller/arg/' + arg + '/' + $scope.token;
$http({method: 'GET', url: get_url})
.success(function(data, status, headers, config) {
//Do stuff after success
.............
})
.error(function(data, status, headers, config) {
//Handle error
.......
});
我不完全知道如何GET請求可以用CSRF令牌被整合,但是當我做一個GET請求註冊的URL,我得到令牌不匹配。基本上每次向服務器發送一個ajax請求時都會生成一個新的標記,因此當我在控制器中比較它時,輸入表單中提取的初始標記不匹配。任何人都可以告訴我在這種情況下csrf的有效性如何?
感謝
嗨,那麼這是否意味着我只能將csrf標記嵌入到post請求中(或除GET以外的任何其他東西)?我的表單基本上是爲了在數據庫中創建一個對象。用戶不會登錄。 – 2014-09-10 21:57:13
如果任何人*可以創建資源,那麼保護它免受CSRF影響並不大。 – 2014-09-10 22:18:52
好吧,我正在嘗試發出POST請求,並在Laravel中收到令牌不匹配錯誤。你知道爲什麼會這樣嗎? – 2014-09-23 22:09:55