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

tomcat做的网站打不开了wordpress登陆头像

tomcat做的网站打不开了,wordpress登陆头像,上海品牌网站开发,移动网站开发面试以下篇幅将会描述不同前提下对应的调试策略#xff0c;当然也有可能不是最优解#xff0c;望斧正 →_→ 前言 何谓「安全域名限制」#xff1f; 以微信 JS-SDK 的使用为例#xff0c;每个公众号被限制最多可设置三个安全域名#xff0c;且必须能被腾讯服务器所验证#…以下篇幅将会描述不同前提下对应的调试策略当然也有可能不是最优解望斧正 →_→ 前言 何谓「安全域名限制」 以微信 JS-SDK 的使用为例每个公众号被限制最多可设置三个安全域名且必须能被腾讯服务器所验证这意味着域名必须绑定在一台可被外网访问的服务器上然后只允许在这几个域名下才能使用 JS-SDK这就是安全域名限制。 这种策略应用还相对比较广泛大概可以等同于三方提供的 API 需要让你配置 IP 白名单。 下图大致描述了 JS-SDK 域名验证的过程其中 WeixinWebview 为微信客户端内的浏览器BuServer 为我们自己的业务服务器WeixinClient 为微信 App 以下流程的前提是 BuServer 已经具有签名所需的 access_token、jsapi_ticket 等信息。 建立在这个基础上我们想绕过这个安全策略大概有两种方案 常规操作将一个固定的域名作为测试专用填入安全域名列表里占掉一个坑「这边当然可以专门申请个测试账号」然后通过解决内网穿透「ngrok、花生壳之流」便可以实现非常规操作通过修改 DNS 解析实现将特定资源「或所有资源」的请求重写到本地开发服务上 常规操作 通过 ngrok / 花生壳内网穿透一般工具都会给你临时域名固定的域名需要付费将域名填入微信安全域名列表中并将验证文件放入 Web 容器里进行验证完成了上面两步你就可以愉快的调试啦 非常规操作 从上文流程图中可以看到 JS-SDK config 信息是通过当前请求页面的 URL jsapi_ticket appid ...... 按照一定规则进行签名得到的然后将这个 config 传入微信客户端进行校验是否合法。 整个验证过程中我们能 hack 的是将请求的资源转发到开发服务器上从而能调试本地的代码。 围绕「将请求的资源转发到开发服务器」可以想到下面两个方案 将请求拦截转发到开发服务器上利用 DNS 解析将安全域名解析到开发服务器上「俗称 DNS 劫持」 方案一 抓包工具转发 本文不过多赘述可以通过 CharlesFiddler 这些抓包工具对指定的请求进行转发从而达到目的。 方案二 DNS 劫持 可以先看下图 DNS 解析过程 要实现 DNS 劫持最现实的是通过修改开发机的 hosts 文件将安全域名解析到本地开发环境 ip 上。 HTTP 请求的劫持 如果你的网站提供的是 HTTP 服务只需要修改开发机中 hosts 文件将安全域名指向开发服务。看到这里就差不多了可以自己去实践了。 HTTPs 请求的劫持 但是目前大多数商业网站都 HTTPs 化了因此并不能简单的通过 DNS 劫持把请求转发到本地的 HTTP 服务上。 如果你的安全域名是一个 HTTPs 服务那可能有点麻烦。首先我们来看看一次像 HTTPs Server 请求的时间线 如上图可以看到当像 HTTPs Server 发起一个 HTTP 请求时将会被永久重定向成 HTTPs 请求然后响应头中会有一个特殊的头「strict-transport-security」这个头是告知浏览器该域下的所有请求都将使用 HTTPs 访问。因此接下来如果再发起一个 HTTP 的请求浏览器将会内部重定向至 HTTPs 请求。 上文对 HTTPs 请求的描述是为了引出当你安全域名对应的是 HTTPs 服务时会遇到如下问题 将安全域名 DNS 劫持到本地 HTTP 服务后在浏览器中访问仍旧是 HTTPs 请求基于 1 我们想到清浏览器缓存但是微信开发者工具无法进入 chrome://net-internals/#hsts 清理 Q1以 Chrome 为例进入 chrome://net-internals/#hsts清除安全策略。 Q2在微信开发者工具中我们并不能进入这个页面也就意味着如果安全域名在该工具中有安全策略缓存则你无法将它劫持到一个 HTTP 服务「这边如果有什么方案可以告诉我」。 为了解决这个问题我们只能引入终极解决方案通过一个 HTTPs Server 对请求做一个转发具体流程如下 ProxyServer 做了两件事 配置了安全域名对应的 SSL 证书支持了 HTTPs 请求将安全域名下的请求转发到对应开发服务上 如果这个 ProxyServer 是作为一个通用服务存在则需要考虑如何代理到不同开发者启动的开发服务上。 最开始我们计划通过 querystring 来制定需要代理到的开发服务的地址实际情况是一个页面中所有依赖该域下的请求都得转发因此 querystring 的方法不能很方便的实现这个功能。 因此最后通过 cookie 来实现这个需求通过 cookie 指定开发服务器地址这样该域下的所有资源请求都会带上该 cookie就能实现自定义转发到上游服务了。 最终使用该方案调试微信 JS-SDK 需要做如下两步 更改 hosts 文件将安全域名劫持到代理服务上设置 cookie 指定需要代理到的上游服务 这样一来该代理服务就可以作为通用服务所存在任何开发者有绕过安全域名限制做一些调试都可以使用这个服务。 FAQ Q1. 常规操作的优劣 Pros 步骤比较少容易搞适合偶尔需要调试 Cons 固定域名要钱?啊不固定域名又要经常改但是一个月又只有三次修改机会啊微信安全域名池子没坑怎么办啊。。。「申请个测试账号也不是不行但是这样后端 access_token、jsapi_ticket 相关接口都得修改」不够通用其他三方登录有安全域名设置并不能复用 针对 Cons 1 有更优解可以结合 DNS 劫持在微信后台绑定安全域名时使用花生壳验证域名然后其实不需要再使用花生壳了可以修改 hosts将验证的域名劫持到本地开发服务这样既不用操心 HTTPs 也不用付费要固定域名。有兴趣的小伙伴可以尝试尝试。 Q2. 非常规操作又有什么优势 Pros: 不需要额外的域名意味着不用改安全域名配置服务端代码也不用动通用有类似安全域名策略的三方服务通杀对于普通开发者来说日常开发调试成本很低也不需要什么特殊权限 Cons: 搭建流程相对复杂点需要服务器资源 Q3. 真机微信里怎么调试啊 祭出 CharlesMac 用 CharlesWin 用 fiddler 开代理如果是 HTTPs 则还需要配置证书信任这个步骤本文不再赘述可自行 Google。 Q4. 怎么申请测试账号 https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?actionshowinfotsandbox/index 小结 解决方案上常规方案的额外成本较低但是在多个开发者协同开发公众号的情况下综合成本较高非常规方案比较适合多个开发者需要调试微信 JS-SDK一劳永逸。 在整个过程中其实可以了解到 DNS 劫持的概念、实际应用以及对 HTTPs 的进一步了解。 最后如果喜欢可以关注公众号「茶杯盖」 更多专业前端知识请上 【猿2048】www.mk2048.com
http://www.yutouwan.com/news/119868/

相关文章:

  • 网站运营编辑themeforest wordpress
  • 网站建设公司做前端开源saas多用户建站系统
  • 手机网站相册代码山西省住房城乡建设厅网站首页
  • 网站建设 域名业务 邮箱做装修的网站是不是骗人的
  • 德州建设街小学网站centos打开wordpress
  • 辽阳免费网站建设公司网站开发工程师是干嘛的
  • 物流网站建设计划书临沂市建设局兰山区网站
  • 济南建网站东莞专业网站推广策划
  • 请问下网站开发怎么弄南昌p2p网站建设公司
  • 网上拿货做哪个网站好建网站带app多少投资
  • 正定城乡建设局网站手机百度问一问
  • 在服务器网站上做跳转页面如何获得网站
  • wordpress多站点 用户西安关键词排名软件
  • 个人网站也要备案吗tomcat如何部署wordpress
  • 不让网站在手机怎么做2个淘宝可以做情侣网站么
  • 用自己的计算机做服务器建网站iis网站正在建设中
  • wordpress导航对齐修改都江堰seo
  • h5网站建站株洲网站制作建设
  • 成都网站建设公司服务商网站流量 seo
  • 贵阳市白云区官方网站c2c电子商务网站有哪些
  • 网站开发和app开发哪个难山东手机响应式网站建设设计
  • 电商网站订烟平台没有网站可以做百度推广吗
  • 怎样看网站的建设时间表在线营销系统
  • 淘客怎么样做网站前端实战项目11套
  • 南昌网站建设方案公司起名字大全免费测分1518
  • 做网站怎么导入地图如何优化网络环境
  • 动态视频素材网站竞价排名深度解析
  • 变更备案网站可以访问吗muse怎么做网站
  • 价格低的跑车优化网站排名解析推广
  • 低价格网站建设东阳市网站建设