使用nginx代理https网站,并注入自己js的方法

这篇具有很好参考价值的文章主要介绍了使用nginx代理https网站,并注入自己js的方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近遇到一个变态的问题,客户要我们做的网站收集到的数据直接上传到他们上级的一个数据汇总系统,但是上级系统已经运行了很多年,貌似没有再进行二次开发的可能了,并且别人的系统也不一定给我们对接,那么有什么办法能把我们的数据直接在用户提交表单的时候直接就同步到上级系统里去么?

经过我多次实验,发现了一种简单可行的方式:nginx代理+js注入

由于对方系统使用了https,所以nginx代理后要将响应进行解压后再注入js。

nginx配置如下

server {
			listen       80;
			listen       [::]:80;
			server_name  mytestweb.cn;
			location / {
				proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
				proxy_set_header X-Real-IP $remote_addr;//这两句是透传客户端ip,防止被代理服务器把我们的服务器ip拉黑
				proxy_set_header Accept-Encoding '';#禁用压缩,这一句必须写,否则注入失败
                #这里是注入自己js的方法
				sub_filter '</head>' '<script charset="utf-8" src="//mytestweb.cn/my.js"></script></head>';
				sub_filter_once on; #匹配到第一个就替换,其他不管
				proxy_pass   https://www.baidu.com;#这里是你要代理的网站
			}
	}
	server { #配置https,为啥要配https,因为http不能调用https资源,现在大部分网站都是https,具体视自己情况而定
		listen 443 ssl;
		server_name mytestweb.cn;
		ssl_certificate ./cert/mytestweb.cn.pem; #这里是ssl key文件存放的绝对路径,根据自己的文件名称和路径来写
		ssl_certificate_key ./cert/mytestweb.cn.key; #这里是ssl key文件存放的绝对路径,根据自己的文件名称和路径来写
		ssl_session_cache shared:SSL:1m;
		ssl_session_timeout 5m;
		ssl_ciphers HIGH:!aNULL:!MD5;
		ssl_prefer_server_ciphers on;
        #以上是配置https的,这样保证自己的域名也支持https,https的证书自己去申请
        #以下跟上边是一样的,不用改
		location / {
				proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
				proxy_set_header X-Real-IP $remote_addr;//这两句是透传客户端ip,防止被代理服务器把我们的服务器ip拉黑
				proxy_set_header Accept-Encoding '';#禁用压缩,这一句必须写,否则注入失败
				sub_filter '</head>' '<script charset="utf-8" src="//mytestweb.cn/my.js"></script></head>';
				sub_filter_once on; #匹配到第一个就替换,其他不管
				proxy_pass   https://www.baidu.com;#这里是你要代理的网站
			}
	}

my.js写一行弹窗代码

alert("我是注入的js,现在已经执行了!");

nginx -s reload 重启一下nginx

然后测试一下看

nginx反向代理注入js,https,nginx,javascript

成功注入,现在就可以愉快的在自己的js里写代码了。

---------------------------------------------------

注意:

1、这种方式不适合开启了csp的网站,如果你发现自己的网站被js注入了,可以开启csp保证不被注入。

2、由于本地代理了所有的请求,所以如果并发比较大的情况不适合这种方式,或者你自己弄个牛逼的机器也是ok的文章来源地址https://www.toymoban.com/news/detail-573171.html

到了这里,关于使用nginx代理https网站,并注入自己js的方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 杂记 | 使用Docker和Nginx为网站添加HTTPS访问功能

    HTTPS(Hypertext Transfer Protocol Secure)是一种通过加密通信保护网站数据传输的协议。它是 HTTP 协议的安全版本,通过使用 SSL(Secure Sockets Layer)或 TLS(Transport Layer Security)协议对数据进行加密和认证。在 HTTPS 下,传输的数据在客户端和服务器之间是加密的,确保信息不被窃听

    2024年02月10日
    浏览(29)
  • 本地测试使用自签名证书以开启网站https(例子说明:Nginx、Tomcat)

    原文链接 数字证书是由证书颁发机构(CA)签名并颁发的电子文件,用于建立网络连接的身份认证和加密通信。SSL 证书是数字证书的一种。 SSL 证书包含以下信息: 针对其颁发证书的域名 证书颁发给哪一个人、组织或设备 证书由哪一证书颁发机构颁发 证书颁发机构的数字签名

    2024年02月09日
    浏览(30)
  • lua使用resty.http做nginx反向代理(https请求,docker容器化部署集群),一个域名多项目转发

    下载使用 链接:https://pan.baidu.com/s/1uQ7yCzQsPWsF6xavFTpbZg 提取码:htay –来自百度网盘超级会员V5的分享 ad_load.lua文件

    2024年01月18日
    浏览(49)
  • Nginx之正向代理与反向代理进阶(支持https)

    在【Nginx之正向代理与反向代理】一文中我们实现了将Nginx服务器作为正向代理服务器和反向代理服务器, 但美中不足的是仅支持http协议,不支持https协议 。 我们先看看看http和https的区别: http协议 :协议以明文方式发送数据,不提供任何方式的数据加密。不适合传输一些敏

    2024年02月13日
    浏览(28)
  • Nginx 配置 HTTPS 过程(+反向代理)

    nginx配置HTTPS前置条件 我这里参考了一个网友的文章,有兴趣可以直达:手把手教你Nginx 配置 HTTPS 完整过程_somnus_小凯的博客-CSDN博客_nginx配置https 。 不建议只一端配置https,另一端不配置,因为浏览器会拦截并给你一个白眼: mixed-content 。大意是要你:  前端https页面中不能

    2023年04月08日
    浏览(33)
  • 网站部署SSL证书后无法使用https访问的解决方法

    网站要启用https加密访问,则需安装部署有效的 SSL证书 。但有时我们在服务器上安装部署 SSL证书 后,使用https协议访问网站,可能会出现页面加载缓慢、空白或提示 “无法访问”等问题,这时该如何解决? 网站部署 SSL证书 后无法使用https访问的可能原因及解决方法 1、服务

    2024年02月12日
    浏览(31)
  • Nginx代理https请求的操作过程

    理论很简单,过程很曲折,版本适配的问题要小心。 场景: 要和前端进行联调,我本地后端用了https,证书是自制的,主要是页面里面有一些oauth2认证的地方,需要跳转。 比如https://aaa.com/profile.html,认证通过之后要跳转到这个页面。 前端的电脑,直接访问后台的页面都是正

    2024年01月23日
    浏览(37)
  • kkviewfile 实现nginx反向代理+https

    3.1 如果访问出错,并且报错信息是下图 两种解决方案 第一用我打包好的jar,下载替换就行 代码是 2021年7月6日,v4.0.0 版本 下载地址:链接: https://pan.baidu.com/s/1yqJDa75tokAWQhn_tfCOmA?pwd=ribv 提取码: ribv 第二你自己在gitee拉取代码进行处理 如果拉取中报错 error: RPC failed; curl 18 tr

    2024年02月11日
    浏览(34)
  • nginx 离线安装 https反向代理

    1.1 安装gcc和gcc-c++ 1.1.1下载依赖包 gcc依赖下载镜像地址: 官网:https://gcc.gnu.org/releases.html 阿里云镜像站:http://mirrors.aliyun.com/centos/7/os/x86_64/Packages/ CentOS 镜像站点:https://vault.centos.org/7.5.1804/os/x86_64/Packages/ ​只需下载如下依赖即可: 1.1.2 上传依赖包 下载完成后,将依赖包上

    2024年02月02日
    浏览(42)
  • Nginx常用配置-反向代理-https重定向-端口转发

    二级目录映射 目前前后端项目分离场景多了以后,一般是前端一个端口,后端一个端口。 如前端是https://example.com/index.html,调用的接口是https://example.com:4433 如此部署对于一些小项目未免有些麻烦,当然你在公网环境下也可以选择使用子域名、其他域名进行跨域访问。 这里说

    2024年02月16日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包