使用AngularJS是否安全

Is it safe to use AngularJS?

本文关键字:安全 是否 AngularJS 使用      更新时间:2023-09-26

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

  1. 使用AngularJS是安全的 - 即我应该担心
    人们一次复制我应用的所有内容,然后简单地粘贴
    别处?
  2. 有没有办法让人们无法读取 JSON 文件?我确实知道有一些工具和网站可能会使 Javascript 脚本不可读,但是当我将其传递给视图时,它会使浏览器无法读取 json。

有一个名为Udemy的网站,其中一部分使用了Angular。我已经尝试了各种方式查看类标题,但仍然找不到/读取包含内容的 Json 文件。这样的事情怎么可能?

非常感谢。

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

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

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

2)不,如果你在javascript代码中使用它们,则不会。

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

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

实际上,在您向客户端发送内容和密钥后,任何内容都不被认为是"安全的"。

如果他们有密钥和内容,他们当然可以找到某种方法来解密和读取它们。

首先,是的,使用 AngularJs 是安全的。Angular 和任何客户端实用程序都应该只关注处理它所接收数据的"视图逻辑"。这些数据是服务器端"业务逻辑"的结果,它完全忘记了Angular的工作原理。

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

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

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