2016-11-23 32 views
0

我一直在学习角度2,并一直在研究如何保护我的应用程序内的数据。角度和密钥

如果可能的话,您可以如何阻止应用程序前端的数据?是否有可能通过节点服务器服务角度应用程序,例如使用Universal Angular,这意味着变量值可以从前端的用户隐藏。

我基本上是寻找隐藏私钥的解决方案,它可以让应用访问各种API /创建auth头/路径。我已经阅读了一个解决方案,就是为应用程序提供了一个API桥 - 所以我会连接到它以检索数据/密钥 - 但那么我该如何保护它免受访问?由于该端点会被暴露并可能被滥用,或者如果获得密钥,则响应可见。锁定到我已阅读的域的想法是不可靠的,因为欺骗和锁定到IP不会作为其前端或通过应用程序?

我觉得有一个显而易见的答案,我错过了一些东西。

回答

0

很简单,当服务器发送数据作为对请求的响应时,则可以从外部访问数据。 如果你不想那么做,那就不要发送数据。

你没有提到你实际尝试解决什么问题。例如,对于API密钥,您可以对服务器上的API执行请求,并在您自己的服务器上为您的客户端提供API,然后使服务器将请求转发给实际的API服务器。

+0

嗨Günter,这是有道理的 - 但这是什么让我跳了关于这个概念!假设我想连接到API来检索一些数据。该API显然需要进行身份验证才能获取数据,因此如果我通过自己的API对其进行代理服务 - 什么可以阻止我的API端点被公开,并且人们可以通过它访问它?我隐藏了连接,但是打开了门?然后我需要验证 - 但是如何保护它?似乎是一个循环 –

+0

这是一个困难的问题。你想为好人提供免费和方便的访问,但阻止坏人。如果你找到一个好的解决方案,让我知道;-)你可以做的是使用一些身份验证令牌,当没有提供请求时,不要转发该呼叫。这样您就不会将API暴露给任何人,也不会暴露API密钥。 –

+0

因此,当应用程序加载时,可以采取某种解决方案 - 对应用程序进行基本请求以获得JWT?使用它来验证我自己的API? –

0

您必须假定前端中的所有内容都是,任何可以访问您的前端的人都可以看到。 前端的所有JS变量,存储(本地,会话),网络请求等都不受前端用户的保护。

您可以(也应该)使用SSL来隐藏您的服务器和浏览器之间的任何人的隐藏数据,但没有办法保护您前端用户的前端数据。 (至少如果你的前端可以在“普通”浏览器上使用,而不是一些收紧的自助服务终端模式安装。)