使用nginx实现跨站脚本

最近在做一个系统整合的项目,目的是把某政府机关中的N个系统进行深度整合。由于这些系统分属于多家不同公司,无法拿到系统的源代码。
初步构思是使用Frame/IFrame将对方的系统加载到页面中,然后用Javascript模拟用户的操作去获取或设置某些信息,以达到深度整合的目的。
技术上没有什么太难得地方,但是发觉Javascript无法操作Frame/IFrame内容是不同域的页面中的DOM,报出的错误提示的“没有权限”。Google了一下,原来这种操作被成为跨站脚本(XSS),是被浏览器禁止的。
解决这个问题的思路是使用代理服务器,将其他系统映射到整合系统所在的服务器上。这样在浏览器看来所有的系统都是同一台服务器的,就解决了XSS的限制。
我们在这里选用nginx做代理,首先去nginx.org下载程序,nginx支持Windows和*nix操作系统。在开发环境中,我们选用Windows版本。
下载完成后,打开conf/nginx.conf,将旧的server节点完全删除。在删除的位置上添加下面代码

server {
listen 8081;
location / {
proxy_pass http://192.168.1.10:8000;
}

这段配置信息的作用告诉nginx创建一个服务,监听在8081端口上,当用户访问该Web服务根目录的时候,代理到http://192.168.1.10:8000端口。
配置完成后,现在就可以在页面中的Frame/IFrame中访问http://server_addr:8081/了,也可以用Javascript操作Frame/IFrame中的DOM元素。
整合多个系统就配置多个server节点,将每个系统配置在不同的端口上既可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值