解决网络劫持

angularjs做的网站,用户反映路由跳转时总是回到首页。
尼玛这个问题真恶心啊,远程调试半天,发现是他的网络被劫持了。
然后自动给我把html也没换成了如下一个页面


img_e674f9bfe37eb0d61edc4ed31ac4fea6.png
image.png

第一行代码就是跳转首页。cnm

<script language="javascript">
setTimeout("location.replace(location.href.split(\"#\")[0])",2000);
</script>

网上搜索都是一句话:

img_afb57d6883fa756cd6666b359cd1a518.png
image.png

翻译过来就是: angularjs升级到1.6.3,cookie也升级到1.6.3, ui-router升级到0.4.2 。
网上有人说原因是这个:

问题是怎么只劫持ui-view加载的模板,ng-include进来的模板就没有劫持。
【对比ng-include的请求和ui-view的请求,发现Accept是不同的】
ng-include的是:Accept:application/json, text/plain, /

img_3043545f834b0d55e52f91c505506d44.jpe

而ui-view 的是 Accept:text/html
img_79455705bfa563775cb4ed609612d473.jpe

应该是这样的,劫持,基本劫持的是html页面,如果accept 为application/json,他的理解就是json而不是html, 而 accept为text/html时,自然就被劫持了。
但只是知道了这个,仍然不知道怎么去改,因为这请求时ui-view里面封装的,不大好改。

然后终极办法是升级网站为https。
好吧,那我就升级吧。

升级方法如下

linux tomcat配置https

[root@centos apache-tomcat-6.0.37]# keytool -genkey -alias tomcat -keyalg RSA -keystore /root/tomcat/apache-tomcat-6.0.37/conf/.keystore
输入keystore密码:  
再次输入新密码: 
您的名字与姓氏是什么?
  [Unknown]:  free4lab
您的组织单位名称是什么?
  [Unknown]:  free4lab
您的组织名称是什么?
  [Unknown]:  free4lab
您所在的城市或区域名称是什么?
  [Unknown]:  beijing
您所在的州或省份名称是什么?
  [Unknown]:  beijing
该单位的两字母国家代码是什么
  [Unknown]:  CN
CN=free4lab, OU=free4lab, O=free4lab, L=beijing, ST=beijing, C=CN 正确吗?
  [否]:  y

输入<tomcat>的主密码
    (如果和 keystore 密码相同,按回车):  
[root@centos apache-tomcat-6.0.37]# cat conf/.keystore
然后修改tomcat配置文件server.xml

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
               maxThreads="150" scheme="https" secure="true"
               clientAuth="false" keystoreFile="/root/tomcat/apache-tomcat-6.0.37/conf/.keystore" keystorePass="yourpassword"  sslProtocol="TLS" />

访问效果如下:


img_9ddc0c1b00248b23b9bf4724072642b2.jpe

通过curl访问,就忽略验证证书这一步

[root@f0 huahui]# curl --insecure https://192.168.1.190:8443/hello huahuiyangssl https

这样浏览器访问就相对安全了,浏览器和服务端进行了非对称加密的握手,然后协商对称加密的密钥,然后进行相对快速的对称加密传输。
即时密文在网络传输中被截获,因为无法获知对称密钥,所以这个http api就是安全的!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值