系统管理员对使用Angular JS的开发者的看法。

问题描述 投票:0回答:1

这都是我所在公司的一个开发人员要求的,目的是为了让开发人员有一个公开的网络应用,供公司员工使用。

我建立了一个运行DebianNginx的公共网络服务器(使用第三方主机),在那里我们托管一个angular js应用作为前端。他需要后端连接到我们内部的SQL服务器。他使用ASP.Net编写了后端。我把ASP.Net代码放在我们DMZ的IIS服务器上,只允许SQL从DMZ服务器访问内部SQL服务器服务。我设置了企业防火墙,只允许从公共web服务器IP(上面提到的)访问后端IIS网站(运行在DMZ上)的公共IP,这样其他任何东西都不会看到那个公共IIS网站的存在。 运行在第三方托管的面向公众的网站上的Angular JS应用,连接到非面向公众的IIS网站上请求数据,并在浏览器中显示给终端用户。

问题是,如果终端用户不能访问非面向公众的IIS网站,这整个事情就无法进行。

在我的印象中,前端的Angular JS网站会请求其数据,进行操作,然后显示给最终用户。这样最终用户只需要能够访问公开的网站就可以了。

他是告诉我,这在Angular JS中是不可能的。

这是他具体告诉我的。

"所以我现在的理解是,当这个angular app启动的时候,其实只是一个传统的网页(比如index.html),然后整个app在浏览器中以typecript的形式运行,除了图片文件和其他资产。是客户端PC上的typescript向API服务器发出数据请求,而不是像你所期望的传统Web服务器应用中的Linux服务器。"

在过去的几年里,我们在两端使用ASP.net进行了这种完全的设置。DMZ后端服务器从未对外暴露。我不是开发人员,但我有安全意识,不能认可向公众开放IIS网站。

难道我说的不对吗?他有没有办法在最终用户不需要访问后台服务器的情况下,用Angular JS从后台抓取数据并进行操作显示?

很抱歉这个问题这么长,我想确保包含详细的信息。

asp.net angular security iis
1个回答
0
投票

Angular和AngularJS是 前台 框架,这意味着从angular应用中进行的api调用,来源于客户端浏览器。如果你需要对ASP.Net后台的调用只来自托管你的前端的linux服务器,那么你需要在那个主机上有某种后台,将客户端的调用代理到ASP.Net后台。我认为使用Node.js实现这一点并不难(个人偏好),但你可以选择任何你能在linux主机上运行的东西。

© www.soinside.com 2019 - 2024. All rights reserved.