给 Windows 加个 虚拟磁盘挂载服务,让 MBP 支持 D盘

新入一台 MBP,硬盘 256G 的仅用 MacOS 有点浪费,使用 Bootcamp 安装了 新版 Win10。用来做 日常的开发。

装好系统,又发现新问题了。Windows 2008 IIS 中的 PHP 设置,在 web.config 设置的,PHP安装在D盘,而通过 Bootcamp 安装好系统 只能有 一个 分区。

尝试分区时 发现 了 VHD,创建虚拟磁盘 后 实现了 Macbook Pro 通过 Bootcamp  增加多个分区的功能。 继续阅读

FrameController.js – 优雅的处理单页多框架(iframe)窗口管理同步问题

做后台时,不可避免的会遇到 内嵌 iframe 的情况。最近的 一个项目 有客户反馈无法保存,提示 token 错误,。经过沟通发现 是因为打开了 多个内嵌页(iframe),会出现此问题(使用ThinkPHP5自带方法 token(),每次调用都会生成新的Token)。修复方法也很简单,直接在 新增内嵌页时,将新生成的token进行广播。

这种情况在 后台 开发中会经常遇到,把 代码 提取出来,做了一下简单的封装,做成开源项目(https://gitee.com/mqycn/FrameController.js)。

考虑到后台可能要兼容非常老的平台,特别针对 IE7、IE8 做了兼容处理,基本可以实现所有浏览器的兼容。运行效果如下: 继续阅读

不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况。

今天 登陆 自己的VPS,卸载了用不到的.net环境(用 aspnet_regiis.exe -u 把net环境卸载),卸载后 php 环境竟然也不能访问了。提示:不能在此路径中使用此配置节。如果在父级别上锁定了该节,便会出现这种情况。查阅资料后,使用用 appcmd 解锁解决。

继续阅读

快速修复 smarty 站点 XSS问题

最近一朋友,网站被频繁挂马(JS判断百度来路,跳转到博彩)。帮朋友分析了下,这套程序年代久远有庞大,最老的代码写于10年前。朋友自己开发的系统,不支持上传,没发现什么的漏洞。想到XSS的问题,排查工单系统,证明猜测正确。系统过于庞大(超过5万行…),而且没有,全部检查一遍不太现实。看到了 smarty 的 assign(),批量查找出来,替换 过滤 后的数据就可以了。

实际操作中有出现了点小问题,assign 传递的数据,有数组、有字符串,帮朋友写了个 适应任意数据格式的 过滤函数给朋友,解决了问题:代码如下: 继续阅读

一个脚本学会 Promise

感觉之前 对 Promise 理解错误(见之前 2016年的文章:http://www.miaoqiyuan.cn/p/promise),今天周末,抽时间看了 Promise 的文档,确实时理解差太多了。

粗略的看了一个文档,简单的了解了 Promise使用。对于 react-native 中的 API 项目,非常适用( 其实fetch就是一个 Promise实例)。

用 Promise 定义好接口,调用时 最好能统一处理错误,规范为 设计好的数据格式。 文档中 没有 catch 后,能否返回 then的方法。测试结果不能,因为 调用 catch 后,已经时resolved了。如果 catch 继续返回一个 新的 Promise,按 定义的 数据格式,返回一个错误的json, 无视错误,继续操作就完美了。尝试写了一个脚本,实现了我的想法。脚本如下: 继续阅读