javascript安全问题(jQuery DataTables)

时间:2014-11-04 16:41:17

标签: javascript jquery ajax security datatable

我正在构建一个Web应用程序,以便向我们的团队和客户呈现DataTable中的数据。

当客户登录时,我想隐藏除他们之外的所有数据。某些行,某些列。当团队登录时,我希望所有数据都可见。

如果构建一个页面并使用DataTables columns.visible选项隐藏内容,具体取决于谁登录,客户是否可以打开浏览器的开发人员工具并对javascript进行修改,从而显示所有隐藏的数据?

如果是这样,我是否需要在离开服务器之前过滤出数据(通过json通过AJAX提供)?

1 个答案:

答案 0 :(得分:0)

  

当客户登录时,我想隐藏除他们之外的所有数据。某些行,某些列。当团队登录时,我希望所有数据都可见。

让我们用“隐藏”来定义你的意思,你的意思是:

  1. 在他们的显示器上看不到,或
  2. 未通过页面来源或回复消息发送到他们的计算机。
  3. 1)以UI为中心,而2)以安全为中心。请记住,您通过HTTPS发送的任何数据都将存储在用户计算机的内存中;即使它在GUI中不可见,也有办法访问它。

    如果您使用DataTables columns.visible隐藏内容,那么这将完成1),但不会2)因为数据仍在发送,对吧?如果用户打开浏览器的开发工具并查看原始HTTP响应,则所有数据都将存在。

    如果该数据敏感 - 例如地址和电话号码 - 那么这将被视为应用程序中的漏洞。

      

    我需要在数据离开我的服务器之前将其过滤掉吗?

    如果出于安全原因用户无法查看数据,那么仅仅关闭其可见性是不够的:您根本无法传输数据。所以是的,在发送响应之前在服务器上过滤掉它。