当前位置: 首页 > news >正文

做网站有er图重庆做网站哪家好

做网站有er图,重庆做网站哪家好,市网站制作,iis7.5部署网站在nginx中,将静态资源设为internal;然后将前端的静态资源地址改为指向后端,在后端的响应头部中写上静态资源地址。 近期客户对我们项目做安全性测评,暴露出一些安全性问题,其中一个是有些静态页面(*.html&…

在nginx中,将静态资源设为internal;然后将前端的静态资源地址改为指向后端,在后端的响应头部中写上静态资源地址。

近期客户对我们项目做安全性测评,暴露出一些安全性问题,其中一个是有些静态页面(*.html)无须授权即可直接访问,里面的信息一览无遗,不安全。这些静态页面都是arcgis地图页面,依赖arcgis for js,没有办法做成一般意义上的动态页面。或者说,该项目是个老项目,目前只处于维护阶段,大规模改头换面不现实。

怎么办,有没有什么方法,不改这些静态页面,或者是不做大的调整,就能实现只有登录后才能访问它们呢?看到网上有文章介绍,可以利用nginx的internal特性,将静态资源设为内部访问,即可实现需要鉴权才能访问。

原理说起来也比较简单。所谓内部访问,是指你直接在浏览器输入静态资源地址,将无法访问,会直接报404,只有通过后端向nginx发送特定信息才可以。而后端,我们是要登录系统以后才能请求的,所以就能实现我们想要的效果了。

具体来说就是:假设我们前端部署在nginx,原本我们要访问某个静态页面:/A.html,现在不行了,要将地址改为 /api/static/getA,改而向后端请求;后端收到请求后,在响应信息头里加上一句:response.setHeader("X-Accel-Redirect", "/A.html");返回;nginx接收到响应信息后,于是将/A.html最终返回。

现在来真的,我们要实现/projects/dzzhyj/index.html的鉴权访问。以下是实现步骤:
在这里插入图片描述

一、配置nginx

server {listen      8001;server_name 192.168.0.218;。。。location /projects/dzzhyj/ {alias /home/gzdd_html/gzdd/projects/dzzhyj/;#物理路径location ~* \.html$ {#只设置*.html为内部访问internal;}}      
}

二、修改前端代码

<template><div class="-map-container">
<!--    <iframe src="/projects/dzzhyj/index.html" ></iframe> --><iframe src="/api/dzzhyj/redirect/dzzhyj" ></iframe></div>
</template>

三、增加后端代码

@Controller
@RequestMapping("redirect")
public class RedirectController {@GetMapping("/dzzhyj")public void handleDzzhyj(HttpServletRequest request, HttpServletResponse response) throws Exception {response.setHeader("X-Accel-Redirect", "/projects/dzzhyj/index.html");}
}

四、运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
完美。

五、小结

这功能在nginx下才能使用。其他web服务器有没有类似机制不得而知。但我们平时开发,用vue,都直接用npm来跑,所以后端代码做点更改,判断是nginx发出的请求,才做上述处理,否则跳转:

@Controller
@RequestMapping("redirect")
public class RedirectController {@GetMapping("/dzzhyj")public void handleDzzhyj(HttpServletRequest request, HttpServletResponse response) throws Exception {String xForwardedForHeader = request.getHeader("X-Real-IP");if (xForwardedForHeader != null && !xForwardedForHeader.isEmpty()) {// 请求经过了 Nginxresponse.setHeader("X-Accel-Redirect", "/projects/dzzhyj/index.html");} else {// 请求未经过 NginxString[] hosts = request.getHeader("X-Forwarded-Host").split(",");String url = String.format("http://%s/projects/dzzhyj/index.html",hosts[0]);response.sendRedirect(url);}}
}

其实没有方法能直接判断请求是否来自nginx,我是比较了从node发出的请求和从nginx发出的请求所包含的键值,看其中有没有包含“X-Real-IP”,简单地做了一下判断,不一定对。

参考文章:
Nginx的internal路径和内部重定向(X-Accel-Redirect)

http://www.yayakq.cn/news/372982/

相关文章:

  • 龙游住房和城乡建设局网站软装设计师需要具备的能力
  • 聊城高端网站建设报价展示型网站功能
  • 桂林城乡建设局网站网页设计培训有前途吗
  • 高埗镇网站建设视频转链接
  • 做公司网站都需要什么c2c平台的特点
  • django网站开发源代码wordpress 调用自定义菜单
  • 兰州网站制作服务电话泰安市卓创网络科技有限公司
  • 网站前端后端分开做可以吗福建银瑞建设工程有限公司网站
  • 网站怎么做黑链接编写程序的步骤
  • 夸克破解可看禁用网站软件开发工程师就是程序员吗
  • 网站建设itcask深圳商城网站哪家做的好
  • 中国石油网站建设在线第三次作业有网站源码去哪里做
  • 阿里云上的网站空间好用吗网站评估怎么做
  • 如何改wordpress网站图标企业网站的高跳出率应该如何解决
  • 美术馆网站页面设计小红书软文案例
  • 柳州在哪里做网站北京网站建设制作方案
  • 网站管理助手v3长春市建设厅网站
  • 中国网站建设排名提供网站建设公
  • 建立网站需要投入的成本seo网站页面优化
  • 做毕业设计的参考文献网站桂林最好玩的5个地方
  • 网站建设销售提点20个点pr模板免费下载网站
  • 如何搜索到自己的网站深圳网页设计兴田德润放心
  • 做网站的前提上海企业网站排名优化
  • 网站制作视频教学影视自助建站官网
  • 网站在谷歌怎么做排名知乎自媒体平台注册
  • 汕头网站制作找哪里公司网站SEO优化哪个做得好
  • 遂宁网站建设公司哪家好学校网站建设发展历程
  • 搭建cms网站黑龙省建设厅网站首页
  • 瑞安市网站建设网站设计站
  • 做网站放视频怎样做网站二维码