2013-10-08 83 views
5

我意識到,有了這麼多的客戶端邏輯,惡意用戶可以通過在任何瀏覽器中使用控制檯來欺騙,覆蓋或遊戲firebase應用。如何防止客戶端控制檯在Firebase Web應用程序中被黑客攻擊?

舉例來說,我可以輸入$(「標誌」)。點擊(),並用三杆旗每一個崗位不存在了我的應用程序。

任何防禦邏輯我寫的都將提供給任何人誰想要破解它。

你是如何處理的呢?有沒有解決辦法?

+0

你不能阻止人們使用他們的控制檯。使用服務器端。 – Dom

+1

將來自任何給定用戶的標誌/更新數量限制在某個絕對限制或某個限制/分鐘。通過Cookie,瀏覽器ID,IP地址或您喜歡使用的任何用戶身份進行檢測。 – ChuckCottrill

+1

Firebase安全規則可以防止用戶更改您不希望他們觸及的數據:https://www.firebase.com/docs/security-quickstart.html – Anant

回答

5

在現實中,火力地堡沒有比關於安全性的任何其他服務器進程不同。任何人都可以在任何站點上打開JavaScript控制檯(或者編寫自己的HTML頁面,或者從命令行運行curl)來嘗試操縱數據。

使用

火力地堡溫和派客戶簡單,但令人驚訝的強大security rules。將它們與身份驗證模式相結合,您可以用最少的麻煩限制對任何傳入數據的訪問和驗證。

{ 
    "rules": { 
     // widgetName must be a string 
     "widgetName: { ".validate": "newData.isString()" }, 

     // user accounts can only be read by the authenticated client 
     "users": { 
      "$user_id": { 
       ".read": "$user_id === auth.id" 
      } 
     } 
    } 
} 
+1

有趣的評論和答案。我最近研究了安全規則,看看我認爲你指的是什麼。驗證表達式可以不僅僅是檢查驗證匹配等。它可以檢查時間戳差異或我提出的任何其他比較。例如,具有小於500ms或類似時間戳的相同用戶。 像往常一樣,它需要大量的焦油來使水密。 – Itumac

+0

我想知道下面的例子情況是否會發生: 假設我有一個博客,並且在每個頁面中顯示10個認證用戶的帖子。 如果一個經過身份驗證的用戶訪問url http://mydb.firebase.com/posts ..他們會看到我所有的200個當前帖子嗎? 他們是否有權查看我不喜歡的節點?喜歡「喜歡」該帖子的用戶? 如果是,我怎麼能阻止他們訪問網址? – user2399432

0

火力地堡規則確實是一個新的網絡建設方法。您可以使用這些規則來構建任何類型的Web應用程序。 我不會在這裏放置規則代碼,但我會解釋我的意思。例如, 。你想建立一個學習應用程序。使用規則可以爲用戶創建兩個或三個角色。然後,對於每個內容,您可以放入一個字段(例如數組),並檢查每個請求,如果請求者用戶經過身份驗證後具有訪問某些內容的角色。 我認爲現在所有的CMS都以這種方式工作。

希望這會給火力地堡平臺更多的想法。