首頁  >  問答  >  主體

angular.js - 單頁應用程式的安全性問題

背景

後端

nodejs負責後端的邏輯, http伺服器是用nginx

前端

使用angularjs搭建

結構

'
+---------+       +-----------+      +--------+    +------+
|         |       |           |      |        |    |      |
|         +------->           +------>        +---->      |
|         |       |           |      |        |    |      |
|         |       |           |      |        |    |      |
| browser |       |   nginx   |      | nodeJs |    |  DB  |
|         |       |           |      |        |    |      |
|         <-------+           <------+        <----+      |
|         |       |           |      |        |    |      |
|         |       |           |      |        |    |      |
+---------+       +--+-----^--+      +--------+    +------+
                     |     |                               
                     |     |                               
                  +--v-----+--+                            
                  |           |                            
                  |           |                            
                  |    HTML   |                            
                  |           |                            
                  |    CSS    |                            
                  |           |                            
                  |    JS     |                            
                  |           |                            
                  +-----------+                    
'        

說明

RESTFUL介面肯定是要做權限, 用是token的方式, 後端根據token來判斷使用者的權限, 然後回傳資料。

問題

~~HTML這樣的檔案有必要加上權限的認證嗎?例如有些頁面是不想直接讓人看到的, 但現在很明顯, HTML是不經過nodejs驗證權限的。 ~~

那如果範圍擴大到一些其他的靜態文件, 例如一些doc文件, 那麼這個權限判定應該怎麼走?

某草草某草草2735 天前681

全部回覆(4)我來回復

  • 高洛峰

    高洛峰2017-05-15 16:52:15

    把路由檔案變數寫在伺服器端在登入之後給瀏覽器發送第一個html的地方,登入的時候把這個使用者能存取的檔案都列出來,不能存取的設定為404,然後ng在設定路由的時候去讀這些文件,如果使用者直接存取不能去的路由,就會顯示404頁了。
    也可以把使用者識別碼寫在這個檔案裡,透過ng修改全域的ajax也不是不行。

    回覆
    0
  • phpcn_u1582

    phpcn_u15822017-05-15 16:52:15

    我覺得你想太多了,單頁應用跟普通的網頁,在安全性方面沒有任何不同,都是用ajax方式和伺服器端交互
    至於RESTful只是一種架構風格,不會因為用了這個風格,就對安全性造成什麼本質上的改變

    回覆
    0
  • PHP中文网

    PHP中文网2017-05-15 16:52:15

    http://stackoverflow.com/questions/15938730/require-authentication-for-directory- except-one-page-with-passport-js-node-j


    你需要auth_basic

    回覆
    0
  • PHPz

    PHPz2017-05-15 16:52:15

    對安全性是沒有任何影響的

    舉個例子說,管理員頁 admin.html 普通用戶就算可以構造url進入這個頁面,由於沒有合法token,各種操作和獲取數據也是失敗的.

    由此可見,安全性只取決於後台restful對token的權限校驗

    回覆
    0
  • 取消回覆