Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 具有客户端模板的受限页面_Java_Javascript_Security_Templates_Angularjs - Fatal编程技术网

Java 具有客户端模板的受限页面

Java 具有客户端模板的受限页面,java,javascript,security,templates,angularjs,Java,Javascript,Security,Templates,Angularjs,我们一直在web应用程序中使用服务器端模板(.JSP),但现在我们在大型项目中使用Angular。虽然出现了一些安全问题,但使用客户端模板开始变得有意义了 是否有可能阻止用户访问某个只有在登录时才应查看的模板?似乎很容易用开发工具或firebug将其破解掉 控制这一点的一种方法是从服务器返回视图,但我是否会从Angular中丢失所有的好东西?取决于框架,您可以从服务器限制这一点,并且不会丢失任何Angular好东西 将模板包括到Angular中的方法是使用ng view或ng include n

我们一直在web应用程序中使用服务器端模板(.JSP),但现在我们在大型项目中使用Angular。虽然出现了一些安全问题,但使用客户端模板开始变得有意义了

是否有可能阻止用户访问某个只有在登录时才应查看的模板?似乎很容易用开发工具或firebug将其破解掉


控制这一点的一种方法是从服务器返回视图,但我是否会从Angular中丢失所有的好东西?

取决于框架,您可以从服务器限制这一点,并且不会丢失任何Angular好东西

将模板包括到Angular中的方法是使用
ng view
ng include

ng视图
模板在路线定义过程中配置。由于这些模板是从服务器加载的,所以您始终可以控制这些模板的加载

ng include
也可以使用服务器端模板,并且可以使用AngularJS强制执行相同的限制

我们使用ASP.Net MVC,因此在ASP.Net中,您可以将
AuthorizeAttribute
放在控制器(服务器端)方法上,该方法将视图返回给控制器,并将获取的内容返回给客户端


还请记住,一旦加载模板,Angular的模板缓存将对其进行缓存,因此在刷新页面之前(浏览器导航\F5)

根据框架,您可以从服务器上对此进行限制,并且不会丢失任何Angular产品

将模板包括到Angular中的方法是使用
ng view
ng include

ng视图
模板在路线定义过程中配置。由于这些模板是从服务器加载的,所以您始终可以控制这些模板的加载

ng include
也可以使用服务器端模板,并且可以使用AngularJS强制执行相同的限制

我们使用ASP.Net MVC,因此在ASP.Net中,您可以将
AuthorizeAttribute
放在控制器(服务器端)方法上,该方法将视图返回给控制器,并将获取的内容返回给客户端


还请记住,一旦加载模板,Angular的模板缓存将缓存该模板,因此在刷新页面之前不会提取该模板(浏览器导航\F5)

您可以利用和$cookieStorage Angular API


经过身份验证的用户在cookie中会有一个特殊的值。然后,您可以在特定的控制器中添加一个检查,以查看该值是否存在,而不是-限制或重定向到不同的视图进行身份验证。

一个想法是,您可以利用和$cookieStorage Angular API


经过身份验证的用户在cookie中会有一个特殊的值。然后,您可以在特定的控制器中添加一个检查,以查看该值是否存在,而不是-限制或重定向到不同的视图进行身份验证。

假设有人足够狡猾,则很难阻止模板本身被看到。当您加载主登录页面时,我假设您的服务器将提供完整的单页面Javascript应用程序。狡猾的人可以查看加载的Javascript以确定路径,然后在Angular应用程序之外显式调用下载这些模板。我认为大多数Angular应用程序只是让模板可以公开访问。在这种情况下,所有人需要知道的是模板名称,以获得他们

虽然这听起来有点吓人,但好消息是填充模板的数据应该更容易保护。如果您是从服务器上运行的服务获取数据,那么在提供数据之前,您可以确保用户已实际登录(并具有适当的角色)

这意味着狡猾的人可能很容易获得空模板,但如果在服务器上正确执行了安全性,那么他们就很难获得数据来填充该模板


本页提供了一些关于如何对AngularJS应用程序应用安全性的好例子:

假设有人足够狡猾,可能很难阻止模板本身被看到。当您加载主登录页面时,我假设您的服务器将提供完整的单页面Javascript应用程序。狡猾的人可以查看加载的Javascript以确定路径,然后在Angular应用程序之外显式调用下载这些模板。我认为大多数Angular应用程序只是让模板可以公开访问。在这种情况下,所有人需要知道的是模板名称,以获得他们

虽然这听起来有点吓人,但好消息是填充模板的数据应该更容易保护。如果您是从服务器上运行的服务获取数据,那么在提供数据之前,您可以确保用户已实际登录(并具有适当的角色)

这意味着狡猾的人可能很容易获得空模板,但如果在服务器上正确执行了安全性,那么他们就很难获得数据来填充该模板


本页提供了一些关于如何对AngularJS应用程序应用安全性的好例子:

听起来好像可以工作,不幸的是,我不能使用cookies,因为我的国家颁布了一条规则。哇。这我不知道。是政策限制在cookie中存储信息,还是cookie本身是不允许的。假设是关于cookie中包含的信息,因为这是一个银行应用程序,规则更严格,这是我们不想与客户讨论的问题。他们似乎害怕它。听起来它可能会起作用,不幸的是,我不能使用饼干,因为我的国家颁布了一条规则。哇。这我不知道。是该策略限制在cookie中存储信息,还是cookie本身受到限制