2016-05-15 130 views
0

早安,

我開發離子的應用程序,並有一些數據發送到服務器控制器(警予1)將數據保存在數據庫$ http請求(角)。我完成了我的應用程序,但它沒有安全性。我想知道如何保護它,因爲現在任何人看看我的$ http請求都可以知道參數必須發送,並殺死我的應用程序。

我應該怎麼做才能保護它?也許通過令牌?我真的失去了安全方法。

非常感謝,

Carles。

+0

搜索「離子框架權威性」給https://devdactic.com/user-工作示例auth-angularjs-ionic/ –

回答

0

當您研究Web應用程序安全性時,您將遇到跨站點請求僞造(CSRF)。這種攻擊媒介正在利用cookies,但以一種可預防的方式。

大多數攻擊都集中在竊取cookie,因爲幾乎每個網站都使用cookie作爲身份驗證的一種形式。設置是這樣的:當用戶登錄到你的服務器時,你在瀏覽器中設置一個cookie。這個cookie包含一個唯一的ID,它是數據庫中用戶會話信息的鏈接。瀏覽器在將來的請求中提供這個cookie,服務器知道你是誰。

從表面上看,這聽起來並不是很糟糕,但這裏有一個問題:即使最終用戶本身沒有執行操作,Web瀏覽器也可能被誘騙向您的服務器發出請求。

使用POST請求

它有時想到用適當的形式爲基礎的POST請求將減輕這種攻擊,但事實並非如此。

使用僅HTTP或安全餅乾

雖然你一定要在你的會話cookie使用這些標誌,他們不含蓄停止攻擊:在瀏覽器仍然發送的Cookie到您的域時,請求是對你的域名製作的。您的服務器不知道這是真正的用戶還是攻擊。

如何防止CSRF

您可以通過依靠一套規則,瀏覽器方面實現這一點,叫Same-Origin Policy。本政策聲明,某些敏感操作是由我們網站上運行的JavaScript代碼執行的,而不是其他網站。

Angular封裝了CSRF令牌方法,使我們更容易實現。對於您的Angular應用程序對您的服務器所做的每個請求,Angular $ http服務將自動執行以下操作:

在當前域中查找名爲XSRF-TOKEN的cookie。 如果找到該cookie,它將讀取該值並將其作爲X-XSRF-TOKEN標題添加到請求中。

因此,客戶端實現自動處理!但是,這確實會讓服務器端部件留在您的手中。您需要執行以下操作:

登錄期間:創建CSRF令牌(使用隨機的,不可猜測的字符串),並將其與用戶會話相關聯。您需要通過XSRF-TOKEN cookie在登錄響應中發送它。 斷言您的API的所有傳入請求都具有X-XSRF-TOKEN標頭,並且標頭的值是與用戶會話關聯的標誌。

就是這樣!通過一點後端工作,您現在可以制定一項策略來保護您免受CSRF攻擊。

,你會發現如何防止CSRF攻擊here 和理解CSRF攻擊原理,請點擊此reference

+0

非常感謝你! –

+0

不客氣 – Wcan