Web

流氓域名服务商

帮同学管理一些域名,有一个是同学在一家小域名服务商购买的,他们网站使用极其不方便,想转移出来到我喜欢用的服务商。之前听说过有很多域名服务商很流氓,我用过很多家也遇到过一些行为增加各种难度不让用户转出,可是我真的第一次见这么流氓的,全官网找不到任何转出域名的按钮以及帮助文档介绍。用关键词搜索全网站唯一域名转移的帮助贴是教导用户怎样将其他服务商的域名转移到他家。无奈只能求助客服,于是我收到如下操作步骤: 域名转出第一步:域名转移需要你的会员已实名及手机邮箱认证完成60天后才能提交,需通过万维网会员实名,实名步骤-登录会员中心,右侧-认证状态中上传会员实名资料,并操作email绑定及手机认证,待三者都通过60天后,登录会员中心,提交有问必答,我要提问,说明具体域名申请转出。通过后,请到会员中心-产品管理-域名管理,点击具体域名右边的转出链接,下载申请书,谢谢! 域名转出第二步,快递证明材料到我司: 1.提供由会员注册者及域名持有人共同签章(个人请亲笔签名,组织请加盖公章)的《域名转出万维网的申请表》(第一步下载的申请表); 2.域名持有人证明:个人则提供亲笔签名的身份证正反面复印件(注册者为个人请补充提供手持身份证照片到);组织则提供加盖公章的单位证件(营业执照或其他)复印件和联系人身份证正反面复印件,注意在上面注明用途“仅作为****域名*年*月*日转出的凭证”; 3.经办人亲笔签名的身份证正反面复印件; 4.会员注册者证明:如是个人则提供亲笔签名的身份证正反面复印件(注册者为个人请补充提供手持身份证照片到);如是组织则提供加盖公章的单位证件(营业执照或其他)复印件,注意在上面注明用途“仅作为****域名*年*月*日转出的凭证”; 5.所有资料需邮寄到我司,我司收到资料审核无误后我司尽快帮您办理。 注意:1、域名新注60天内不可转移; 2、域名续费60天内不能办理转移; 3、国际域名距离到期不满60天不能转,国内域名不满15天不能转移; 4、办理过转移、修正及过户的域名24个内不能转   他们网站有个按钮叫做过户,一开始我以为就是转移只是他们叫法不同,后来看了客服才知道那个按钮应该是他们站内的换绑。如果我失误点错点击了那个按钮,那么按照他们的要求我2年内都别想再转出他们家了,期间还得给他们续费。没错我说的这家我遇到的最流氓的域名服务商叫做中国万维网。

Shopify 配合Langify给每个增加“添加到购物车”按钮

这篇用来记录一个细节,是我一个月前给一个Shopify网站给每个商品添加一个“Add to cart” 按钮。时隔几天过然现在很多细节我想不起来了,甚至我都找不到当时参考的一篇论坛的文章。不过我记得在跟着论坛文章弄好后,由于我帮忙管理的网站使用了Langify实现双语页面,而Shopify给的教程是适用于默认单语言。于是在网站选择了第二语言后,由于网站路径后边多了/zh-cn/于是“Add to Cart”按钮的动态效果就失效了。 如果遇到这个问题的朋友,一定会在官方论坛指导下去Github下载一段他们的JS代码,其中为了让代码在Langify语言插件第二语言也有效,我加入一部分识别用户使用语言的代码。简单来讲就是获取用户当前rul,然后通过“/”分割取出网址后第一个路径名。当有Langify翻译成中文的情况下,这个第一个路径名就是‘zh-cn’。于是根据这一点判断这段脚本需要的正确的购物车地址是什么。是没有语言路径的“/cart”还是有语言路径的“/zh-cn/cart/”。 这个需求特别的小众,首先Shopify是很小众的一个领域,另外使用了Langify进行网页翻译的就少了。第三是需要在每个商品加上这么一个按钮。最后还有我是用中文写的记录,而不是说用英文发表在官方论坛。所以说这篇记录更多是写给自己备份,帮助别人的概率也是极低极低的。 <script> /** * Module to ajaxify all add to cart forms on the page. * * Copyright (c) 2015 Caroline Schnapp (11heavens.com) * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html * */ var pathname = window.location.pathname; var langCode= pathname.split(“/”); //langCode[1] console.log(langCode[1]); //var …

Shopify 配合Langify给每个增加“添加到购物车”按钮 Read More »

WordPress图片(自动)重命名

我的Wordpress这些年来积累了不少上传的图片,在开始的时候我没有用脚本和插件对其进行重新命名,所以有部分图片名保持原样很不规范,现在通过插件实现了上传的资源会重新以很长的一个随机数名替换。一方面降低文件上传漏洞带来的潜在风险,另一方面也是让所有文件有统一格式,整体变得优雅。当然问题出现了四五年,我现在才着手去处理,也与我最近要自己搭建CDN图床有关系。   前:测试图片现在在Wordpress媒体库名称为3740951600705741.png. 后:通过工具将图片更名,现在图片名称为2686089563928897.png,正文以及封面使用到这个图片的地方,也由插件自动更新了地址,更改文件名不影响之前发布的帖子,完美。   在这里我分享一下我在文件上传自动重命名,以及现在手动重命名用到的插件,这是我对比了无数插件后挑选出的最满意的方案: wp_upload_rename, 图片上传自动重命名应该是很多同学的痛点,我尝试了好多好多插件,还包括在主题function中使用脚本。都有何种各种各样的不满意。很多其他插件要不收费,要不就不能满足我的重命名要求,而使用function脚本,主题文件又不能轻易升级,因为会造成function中自己添加的脚本丢失的可能性以及兼容性。而这个插件简单明了没有花里胡哨的功能,还是免费,并且可以自定义重命名后的格式,简直是喜欢的不得了。也因为功能简单,源码在Github也是开元,所以减低了插件带来漏洞的风险,有一定PHP基础的小伙伴甚至可以自己改良插件,因为真的没几句代码很简单。这个也是我第一个主动想并且去实施给作者赞助的插件。对于文件重命名有需求的同学,真的强烈推荐。 Phoenix Media Rename 这个是我今天用到的插件,主要用于手动更改一个图片的名称,以及像我一样,在安装上个插件前以及上传过很多图片,对于这些历史问题,就可以用这个插件再手动处理一遍。这个插件也是没有什么花里胡哨的功能,安装后在媒体库会多几个按钮,用法如同我下边截图,在1号框给入新的名称,在2里边选择更改文件名,以及文件在Wordpress里边的标题名,我一边都改。然后Apply一下,插件就将储存在服务器上照片的名字,以及博文引用到照片地方的地址,都自动更新了,特别棒。 Compress JPEG & PNG images 这个插件在我认为也是必备的,设置好之后可以自动压缩上传的图片。很多照片比如手机原图都达到五六兆,而Wordpress默认直接使用用户上传的文件不做任何处理。这就有个问题首先是加载速度,比如一个博文放了几张手机拍的照片,一下自这个网页体积达到了几十兆,打开慢不说,那些手机流量打开的同学因为一个网页,一个月流量没有了。另外还有隐私问题,手机照片有很多元数据比如GPS,这样会泄露很多个信息。而这个插件在压缩的时候会将这些数据清楚,也是很实用的一个功能。这个插件用到了他们的服务器,量大的话需要购买他们的额度,但是作为个人站免费压缩额度已经完全够用了,没记错的话免费额度为每个月400张。我相信对于绝大多数同学来说,真的是完全够用了。 这是我玩Wordpress四五年在图片处理上整理出来的,我认为最值得推荐的插件。如果我的帖子有能帮到你的话,给我留个言让我知道你来过。笔芯♥  

Coding Pages 自定义域名不能任性使用了

最近尝试下在Coding Pages下托管一个静态网站,而Coding网站流程有所更新,搜索出来的教程贴很多都步骤不一样失效了。费了好大劲弄好,在绑定域名时候发现与之前流程也不一样,必须让开启腾讯的CDN,新人礼包3个月每个月有CDN的20G流量,之后是流量费:免费流量额度 0.25 GB/万次,超额流量单价 1.00 元/GB。之前是只要网站上给Coding打个广告就可以免费用,而现在现在Coding Pages只要想用自定义域名,因为CDN的原因,是非常可能被收费。     对于CDN免费流量额度0.25GB/万次我没有太多的认知,我不太清楚这个额度是怎么样一个水平,在正常使用的情况下,免费额度能覆盖多数网站用户。如果有同学了解的话,也可以留言给大家科普一下。

生活黑客‧一‧忘带钥匙

我一般出门比较小心细心,从小到大没丢过钱包手机饭卡,甚至没怎么忘记过拿钥匙(好像有讲究不能这么说,呸呸呸。)我记忆中唯一的一次忘带钥匙是大约两年前,当时还住在Erlangen,还好是合租,钥匙落在屋里,等一等室友回来了,就可以帮我开门。 虽然事情很小,但是当时把我惊到了,我怎么会出现出门忘记带钥匙这种事情,这种情况怎么会在我这里发生,这是不可能的啊。有个前提我得先介绍一下,我从小有一个很好的习惯,出门时候检查一下手机钱包钥匙,回家然后把钥匙放在指定地点。这个习惯感觉已经深入到我的潜意识中,每次出门都是条件反射般将这一系列检查动作就做了,从而保证了我从来没有配过钥匙,补办过饭卡,以及去大街上找钱包。直到上次我的第一次我回家发现钥匙不在身上。 我实在想不通,二十多年的条件反射,为啥当天出门就没检查到钥匙并没有随身带。于是我仔细复盘了整个过程,这个事情一点都不简单,反而很有意思。 刚才讲了我出门会有一个肌肉记忆般检查动作,那是可以同时完成的,手一摸就行了。每次回到家的几个动作确是有先后顺序,我先用钥匙打开门,然后随手放在我的桌子上指定处,然后将背包放下了,衣服鞋子脱掉。至此整个回家动作实施完成。而忘带钥匙那天,早晨切切实实我检查过是带着的,晚上五点钟我回到屋子也用钥匙开了门,然后一系列回家动作开始,我将钥匙放在桌子上后,本来需要继续放下背包,换掉衣服鞋子,可是这个时候恰恰同学联系我出去有点事情,于是我就直接出门了,而这个时候我竟然没有做出门检查这一些列肌肉记忆动作。 我反思当时在我的脑中,虽然已经开始进行了进家动作,可是脑中的按个状态还是处于离家状态,而这个时候进家动作还没完成,钥匙刚放下,来了一个外部中断,脑子告诉我还是离家状态,不符合离家物件检查的前提条件,于是我就没想起来需要检查手机钥匙钱包。这个错误是由于那个外部中断正好卡在了我归家动作的图中,放下了钥匙,而由于脑中的那个标志位需要整套动作完成才做转变,所以那时候虽然放下钥匙,但是状态是离家,于是造成了出门忘带了钥匙。 用出门进门顺序图表示是: 这是我的顺序图,稳定运行了二十多年没出过错。那天的情形是在钥匙放桌上和放下背包间出现了一个外部中断,而我没有出入门顺序保护机制,我以为我的状态还是离家,于是遇到了罕见的bug。这个在程序开发中对应概念叫做临界区和锁。像我出门在入门,以及状态更改的这一小段事情,属于危险操作应该被归到临界区,同时对于这个动作系列进行上锁。简单点说就是这连着的三五个动作必须一次性完成,中间不能打断。而我生活中遇到的Bug就是我忘了上锁了。 我用计算机思维复盘我遇到的事情还是很有意思的,这样的罕见Bug其实也不止我自己遇到,这在程序开发很常见。比如说XBox 360的脉冲破解就是利用这个原理。正常CPU运行代码是有严格的权限等级校验不可能运行自制代码,这个脉冲破解的原理,就是焊一个硬件连接在CPU上,当CPU启动系统时候自检时候外部硬件输入一个脉冲,这个脉冲破坏了原有的CPU自检的流程,从而获得了CPU的高权限,从而引导到自制的代码上,实现了对于CPU的控制。 还有一个例子是我记得去年一款虚拟货币服务商被黑客攻击,损失了好多好多钱。人们复盘被黑过程,也是和上边的流程很像,他们在进行交易以及余额修改的动作操作的时候,没有进行合理的上锁,黑客用计算机高频操作,将虚拟货币转出后,在服务商还没来得及将交易状态更改以及余额减去,黑客就又发送了取消交易的命令。而服务商那端看到的状态没有交易和没有余额变动,同时取消掉了该有的交易记录和余额变动。黑客钱已经转出去了可是账户余额没变。于是黑客重复操作就这样黑掉了服务商好多钱。 还有一个例子更加抽象,是我看知乎讲的一个黑客挑战赛,每个队拿一个自己的项目让别人去黑,其中一个队伍拿了一个火箭,是真的火箭,好像是印度那边的民用小型火箭,其中控制系统都是特制的,开发人员也是顶级的,所以抗黑能力很强。最后没有人将他们组的项目攻下,后来公布正确答案的时候,火箭开发人员讲他们的一个CPU中断有漏洞,利用这个中断可以实现对于硬件的控制权。和Xbox 360破解很像了。 这是我生活黑客第一篇,用计算机思维来分析生活,一次忘记带钥匙引发的思考。

生活黑客‧零‧开篇

小时候到现在有很多生活的细节用到了后来计算机思维,于是想着弄一个随笔系列,记录一些我用工科思维分析生活中遇到的事情。

DNS污染解封记

失败了,国内DNS服务器再努力广播,也抵不上某个神秘的力量的大力污染。感觉到了两股力量的对抗,长时间观察下来,神秘力量胜利了。

WordPress 域名搬家

最近思考一个问题,我很多地方使用Shuspieler作为昵称,我的博客也是用的一级域名加上一个文件夹跳转的https://shuspieler.com/blog 。特殊情形可能还会用作域名邮箱比如,那么进行社会工程挖掘太容易就找到shuspieler.com站点了。虽然这个地方我没有想要做成私有,特地去隐藏,那样的话我也不会做公开站点,就像我在About Me 里记录的那样。只是想让一切随缘,就让这个站点独立存在这个互联网世界中,与我的真实身份没有关联。于是我想找个方法使我不隐藏这个博客地址的情况下,与真实身份剥离,给社会工程匹配增加一些难度。 于是我想将Blog与主页分离,使用blog.shuspieler.com二级域名,而在主页shuspieler.com放一个其他静态页面,比如写上我喜欢的话,或着美丽的诗词。这样当有人用昵称搜索进入主页shuspieler.com就可以欣赏一下我给他们摘抄的文摘,或者说是特殊情况通过邮箱后缀进来的也是同样效果,而对于blog.shuspieler.com这里就有了门槛,做到了一方面我不愿意私有化,又不愿意过度公开的需求。 之前wordpress搬过几次家,真的很麻烦,需要考虑的点实在太多了。今天我记录一下我这次本机搬家的过程吧,有可能自己未来还会用到,放在这里也可能会帮助到别人。 首先在DNS服务器添加blog到服务器IP的映射。 接下来的这个图是我之前的wordpress后台看到的地址,我放在了一个一级域名下的一个文件夹:http://shuspieler.com/blog 网站加密我是用Cloudflare实现的,所以这里是服务器http协议,这样的简化配置为搬家省了不少事情。 我需要搬到的地址为:http://blog.shuspieler.com ,服务器不变,只是换个域名映射。为了保险,我不是先做搬家,而是先复制一个一模一样的网站,当新的地址一切正常后,再将之前的删除。对于数据库,我也复制了一个一模一样内容的,新地址与新数据库连接,不去霍霍旧的数据。数据库搬家我用到了SQLyog这个软件,这个软件在多个MySQL服务器之间复制数据库特别好用,输入源地址目标地址,稍微点击几下,就能将整个数据库在两个MySQL服务器间实现复制。我是本地复制也是同样的道理,只是Connection是new,目标服务器和源服务器相同。由于里边信息太敏感了,好多东西都让我划掉了。但是真的对于简单整体数据库迁移这个工具很好用,推荐。唯一不足的是收费软件,但是有一定时间试用期,已经够用了。 对于新的数据库,建议单独设置一个用户,只对这个数据库有访问权限,以防黑客通过wordpress而越权看到其他数据库的信息。我没系统学习过MySQL,新用户设置用SQLyog毫无疑问也是可以实现,但是我习惯用phpmyadmin,我选择了和数据库名一样的用户名,然后在这里可以方便的对同同名数据库授予本数据库内的权限。同时这里主机名也选成localhost,只能本地连接,进一步降低潜在风险。 接下来的一步算是风险操作。但是有我们克隆了一个新的数据库,在新的里边尝试,如果有损坏的话,也还是有退路的。这里我们要更新路径,数据库之前记录的地址都需要更新成新的链接,我们在phpmyadmin通过SQL命令实现批量更换: UPDATE wp_options SET option_value = replace(option_value, ‘http://old.com’, ‘http://new.com’) WHERE option_name = ‘home’ OR option_name = ‘siteurl’; UPDATE wp_posts SET guid = replace(guid, ‘http://old.com’,’http://www.newurl’); UPDATE wp_posts SET post_content = replace(post_content, ‘http://old.com’, ‘http://new.com’); UPDATE wp_postmeta SET meta_value = replace(meta_value,’http://old.com’,’http://new.com’); UPDATE wp_usermeta SET meta_value = …

WordPress 域名搬家 Read More »

WordPress 上传图片时 async-upload.php出现520 Bug的原因及解决方案

在更换主机服务商,以及将博客搬家后,在上传图片时总是报一个错,不管是在编辑文档的页面,还是在多媒体管理页面。给出的信息是图片后处理失败,可能的原因是服务器忙,图片太大,或者是尺寸超标。然而诡异的是,当刷新页面的时候,这个图片是成功上传到服务器的,并且压缩更名等后处理步骤也已经完成。可是就是每次会有这么一个烦人的错误警示。而且很影响记录内容的连贯性,每次需要插入一张照片的时候,就需要刷新一下才能显示,那么我文章没写完,插入图片刷新就会把我没保存的文字给弄没,很是不方便。 在Chrome控制台显示的HTTP错误是这样: moxie.min.js:1 POST http://域名.com/blog/wp-admin/async-upload.php 520 我根据这个错误提示开始找原因,服务器忙首先排除。因为服务器是我自己的,忙不忙我清楚。另外这个问题也不是一换到这个主机商就出现了,而是用了一段时间才出现,所以这个方面不再考虑。第二是我的图片太大,这个是有可能,我服务器没有在这一条进行配置使用的是默认选项,最大照片不能超过2M,但是我最近上传的照片都是截图,体积很小,并且尝试了至少有几十张图片吧,大大小小不同格式都试过了,都是同样的错误。第三个原因也不可能了,尝试那么多图片,全部都没超过2500像素。 我谷歌查资料,这个问题出现的频率很低,查到的相关网页寥寥,很多都集中在三个可能原因的后两个,我尝试过改过像素限制,以及体积限制,都不能解决我的问题。stateOverflow基本上每个相关的帖子我都看过,每一个回答挨着尝试。wordpress官方论坛也有相关帖子,可惜在我这里统统失效。我前前后后查了有三次四想要把这个问题解决,每次都好打一会儿时间各种尝试,可是真是邪门儿了,上百个页面看过后就是没有一个奏效的方法,关键的关键是我最近并没有怎么捣鼓博客程序,也不是由于我自己搞坏的。 今天又一次忍不了了,劳动节假期宅在家也不能出门,下决心一定要把这个烦人的bug给解决掉。终于在这个页面找到了我遇到问题的真正原因 https://www.wpbeginner.com/wp-tutorials/how-to-fix-the-http-image-upload-error-in-wordpress/ 这个页面介绍了4中解决上传图片时候出现HTTP错误的方法,第一第二讲的可能是网络原因,以及服务器限制文件大小的原因。这个在我这里已经排除了,因为我清楚我的服务器图片大小限制,以及几个月了一直有这个错误也不是网络的原因。文中第三条引起了我的注意,文中讲WordPress使用两种方法来处理图片,一个是PHP的GD库,另一个是Imagick库。Wordpress会选择一个服务器上安装了的库去使用。并且文中讲到Imagick总所周知不稳定,经常引起莫名其妙的HTTP错误。我受到启发想起来,我在博客搬家后前期没有遇到我这篇文章的bug,是后来遇到的。在使用服务器一段时间后,我通过wordpress官方健康度检测,当时我记得推荐我安装Imagick库,说可以提高wordpress性能。我当时确实就安装了。会不会就是这个库的原因,以至于后来wordpress开始使用Imagick处理图片,从而出现我遇到的这个bug。 于是我从服务器上将这个库卸载,然后重启Apache: sudo apt remove php-imagick sudo service apache2 restart 曙光终于出现了,困扰我半年的一个bug终于小时了,真的是这个库的原因。 上边那个教程第三点讲我们可以通过修改主题functions.php文件,从而指定wordpress使用GD库而不是Imagick。我相信这个应该也是可以解决问题的。文中第四点讲Imagick在使用服务器资源的时候可能出问题,尤其在共享主机上。Imagick会尝试使用多线程从而提升图片处理效率,而有些主机上限制多线程的使用,从而出现报错的情况。通过修改.htaccess让Imagick只是用1个线程而避免报错。这个可能就是我遇到的问题的根本原因了,我现在使用的是一家小运营商,很便宜资源很足,3.99欧每个月,4GB双核,300GB的HDD+SSD Boosting,流量还无限,并且机房离我住的地儿还近,就几十公里。稍微熟悉点主机市场的同学都知道,这个价格就像是骗钱的一样让人难以置信。不过确实他们说到的这些真的足量,用起来很香。但是在看不见的地方,可能他们为了节省成本,就限制的比较紧,我猜测我的问题应该就是他们对于多线程做了限制的原因。 我复盘这个怪异问题出现的原因,首先是我安装了Wordpress作为可选项的一个库Imagick,这个不安装完全不影响wordpress的使用。另外我使用了一家极为不知名的服务商,各个事情都是有代价的,可能在绝大多数知名主机商对这个并没有做出限制,而我恰巧遇上了。第三是我是使用新服务器过了一段时间才安装的Imagick,开始使用的是GD也没有错误提醒。并且Imagick也是Wordpress推荐的,导致我遇到问题时候压根没考虑过是服务器的限制,我把所有的经历都放在在Wordpress找错上了。 我最终的解决办法,并不是在wordpress指定使用GD库,或者修改服务器配置让Imagick只使用一个线程。我是直接讲Imagick在服务器上给卸载了。。。因为这个库是个提升性能锦上添花的,我想先看看没有这个库用一段时间什么感觉,在有必要的时候,我再选择安装。    

查询网易邮箱注册时间

登陆邮箱后,右键查看源文件,然后查询关键词:user_creation_date 就可以看到注册时间。   Reference: https://my.oschina.net/bairrfhoinn/blog/195454