首页  >  问答  >  正文

angular.js - 单页应用的安全问题

背景

后端

nodejs负责后端的逻辑, http服务器是用nginx

前端

使用angularjs搭建

结构

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

说明

RESTFUL接口肯定是要做权限, 用是token的方式, 后端根据token来判断用户的权限, 然后返回数据。

问题

~~HTML这样的文件有必要加权限的认证吗?比如有些页面是不想直接让人看到的, 但现在很明显, HTML是不经过nodejs验证权限的。~~

那如果范围扩大到一些其他的静态文件, 比如一些doc文件, 那么这个权限判定应该怎么走?

某草草某草草2735 天前683

全部回复(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
  • 取消回复