2016-11-30 81 views
-1

我有一個angularjs控制器在那裏我打電話給很多報道是這樣的:如何保護直接角get函數

if(reporttype==21){ 
$scope.framesrc={src:"http://localhost/myapi/report21Service"+$scope.brandid} 
} 
if (reporttype=22_} 
... 
} 

我不能在這裏創建一個POST請求,正在生成報告和長期巨大的故事。

我的問題是,是否有避免用戶在網站之外調用此請求?因爲現在如果你把鏈接放在任何標籤中,它會返回我所有的數據。除了帖子functinons和東西以外,還有其他辦法嗎?像指定請求的來源或類似的東西。

回答

0

如果您有身份驗證,則可以使用令牌對用戶進行身份驗證。 另一種解決方案可能是阻止服務器中的跨域訪問。

1

那麼你必須在你的laravel服務器上實現一個CSRF保護。它的一個簡單的概念,你的服務器將生成一個CSRF token登錄或什麼東西,當你訪問api時,你將附加令牌與request

有關更多信息,請參閱this。和this在laravel上實現CSRF

0

好解決,

用戶登錄後首先,我得到的用戶ID的會話,然後在訪問API,如果isset會話的用戶ID返回結果,否則返回錯誤。現在,無需登錄即可訪問項目外的api是不可能的。 PS:如果用戶登錄並嘗試另一個ID,對於其他用戶,在函數的開頭有一個條件,即如果他傳遞的參數超出了返回其品牌的查詢結果,則報告返回一個錯誤太。