使用AngularJS是否安全?

时间:2015-03-09 21:56:40

标签: javascript json angularjs

我一直在开发我的第一个AngularJS应用程序,我只是意识到任何人都可以直接从我的JSON文件中获取/复制所有信息。所以我问:

  1. 使用AngularJS是安全的 - 即我是否应该担心 人们立刻复制我的应用程序的所有内容,然后简单地粘贴
    别的地方?
  2. 有没有办法让人们无法阅读JSON文件?我知道有些工具和网站可能会使Javascript脚本无法读取,但是当我将它传递给视图时,它会使浏览器无法读取json。
  3. 有一个名为Udemy的网站,其中部分使用了Angular。我一直试图看到类标题但仍然无法找到/读取包含内容的Json文件。这样的事情怎么可能?

    非常感谢。

4 个答案:

答案 0 :(得分:2)

您不应该向用户发送任何不允许读取的数据,而不管数据是否实际显示在屏幕上。我假设您的数据来自服务器(可能从数据库中读取);即使使用Angular.js,您也需要确保您的服务器只发送特定用户有权查看的数据。 因此,您的问题的答案实际上与Angular完全无关,而是与用于将数据提供给在用户浏览器中运行的角客户端的服务器端技术有关。

答案 1 :(得分:0)

没有一种安全的方法可以向某人提供内容和密钥,但阻止他们阅读。

这就是DRM所做的,实际上你正在寻找的东西。

实际上,任何内容都不被视为安全'将内容和密钥发送给客户后。

如果他们有关键和内容,他们当然可以找到解密和阅读的方法。

答案 2 :(得分:0)

首先,是的,使用AngularJs是安全的。 Angular和任何客户端实用程序应该只关注处理它接收的数据的“视图逻辑”。该数据是服务器端“业务逻辑”的结果,完全无视Angular的工作。

我相信您仍然可以通过要求对数据进行身份验证来解决您的安全问题。要求用户登录并允许他们通过身份验证cookie或类似模型访问数据。您可以使用MEANJS(meanjs.org)开箱即用(或至少学习这个过程)。

提供给您网站的所有JSON数据都应该是您想要查看的数据。如果您担心人们可以简单地使用您的JSON URL在自己的服务器上聚合您的数据(假设他们通过了身份验证过程),那么我很遗憾地说有很多工具和精明的开发人员可以挑选这些数据关闭任何网站,无论它是通过JSON,HTML,XML等提供的。

为了在客户端和服务器之间可靠地隐藏数据,您需要构建自己的Web应用程序(思考应用程序),该应用程序在两端使用一种或多种加密方法。即使您尝试为标准Web浏览器构建自己的客户端加密/解密/双向握手,您也不可避免地会暴露嵌套在Javascript中的业务逻辑并完全违背目的。

答案 3 :(得分:-1)

不,因为AngularJS是客户端,所以您发送的任何内容都可供客户端使用。因此:

1)取决于您的安全意味着什么。但是,是的,人们可以阅读"您应用的所有内容都不在后端。

2)不,如果你在javascript代码中使用它们,那就不行了。