Safari 13 去除 Google 搜索结果跳转

使用 Xcode 创建一个新的 Safari 插件项目

在 Safari 9 以前,我们只要下载一个 safariextz 文件双击它,就能让 Safari 加载这个插件了。好处肯定是很方便,但也不太安全(随处都能下载到的插件,很可能是被篡改过的)。

所以后来,Apple 就不再允许用户直接下载插件给 Safari 安装了,必须通过 Mac Apple Store 下载 App,然后 App 里以插件的形式提供 Safari 插件,配合 App[……]

点击跳转以继续阅读

避免 WordPress 被用作反射放大攻击

之前我写过一篇文章,使用 fail2ban 防止 Bind9 被用于 DNS 放大攻击,万万没想到,原来 Wordpress 本身也可以用来进行放大攻击,原理就是它的 Pingback 机制。

Pingback 是 Wordpress 的一个网站之间互相通知工具,比如 A 博客引用了一个 B 博客文章的链接,那么 Wordpress 就可以自动帮你通知 B 博客,告诉博主你引用了他的文章。

这[……]

点击跳转以继续阅读

iOS 正确设置 status bar style 颜色

在开发 iOS App 时,很多应用都要根据当前 App 内容颜色来设置 iOS 系统状态栏 的配色,黑色或者白色——尤其是在 iOS 13 系统支持了黑色模式后。

通常,别人会告诉你这么做:

但这会触发警告: Deprecated in iOS 9 。那么有没有其他办法呢?有,官方推荐的写法是[……]

点击跳转以继续阅读

当 Mailgun 不再免费,你如何安置你的域名邮箱?

之前我写过一篇文章:《 使用 Mailgun 创建你的免费域名邮箱 》Mailgun 有一个很有意思的功能就是收件路由,通过这个功能设定,你可以将任意发来的邮件转发到你设定好的邮箱当中,这样就不需要为每一个域名设置一个邮箱服务了,只需要通过 Mailgun 就可以将对应的邮件转发的需要的邮箱——毕竟,平时我们可能也就使用这些域名邮箱做个基本的验证。

最近,Mailgun 不再免费了,免费用户[……]

点击跳转以继续阅读

Swift Python 互通 Json 数据签名

最近很流行自签证书进行 HTTPS 解密,然后就有不少人通过修改苹果的内购回执实现对 App 的破解。实际上验证购买应该是 App 连接服务器,服务器来和苹果的服务器进行通信,然后将结果发送给 App 的——但不少开发者(包括个人开发者以及企业开发者)懒得去专门维护服务器,所以直接用 App 和苹果的服务器进行通信,这就给中间人攻击提供了机会。

中间人攻击,就是说当 A 和 B 进行通信[……]

点击跳转以继续阅读

Swift Debug EXC_BAD_ACCESS in AppDelegate

 

不少人在开发中都会遇到 EXC_BAD_ACCESS ,很遗憾,这一次 Xcode 不会给出任何详细的解决方案。

通常来说,这是由于内存错误造成的。简单来说就是你创建了对象 A,但在后来访问的时候,内存里 A 这块区域已经被系统挪做他用了,比如放了对象 B 在这里——你的 A 只剩下指针,实际内容已经不存在了。

这时就会出现类似这样的崩溃:
[crayon-662[……]

点击跳转以继续阅读

使用 Supervisor 将你的 Python 程序变成服务

不少朋友都是用 Flask 框架来写小服务器的,方便又快捷,还能一键运行,很舒服。不过,如果你真的想把你的服务部署到服务器上,那你就会发现其实还有一些功课要做,这篇文章里,我们主要来谈谈如何将写好的程序在服务器上变成一个服务而不是终端里执行的命令。

如果我们用 Python 写了一个网站应用,那么它就需要一直运行来监听 HTTP 请求,如果在终端直接执行
[crayon-662c37417[……]

点击跳转以继续阅读

macOS app 自动化上传发布到 AppCenter

之前我曾经写过macOS app 实现自动化 notarize 脚本,由于我的输入法使用微软的 HockeyApp 进行崩溃统计,所以我还需要把 app 上传到这里进行一次“发布”,好让 HockeyApp 能够收到对应版本的错误统计。

如今,微软的 HockeyApp 已经更新成了 AppCenter,自动化命令也十分友好,其实这个操作也可以加入到你的自动化脚本里边,一步到位。

点击跳转以继续阅读