Skip to content
中国时间线 edited this page Jul 12, 2020 · 3 revisions

欢迎来到时代透镜的Wiki,这里分享一些开发技术文章,方便那些希望开发类似项目的朋友。

开发和部署Telegram Bot的文章

我搞了一个向时间线提交新闻事件的电报机器人,功能很简单,就是你发给它一个链接,它会让你选择话题、类型、影响力,然后会把新闻链接文章的标题内容图片抓取出来生成一个yaml文件,并且提交到github 的repository. 如果你也想开发自己的电报机器人,我在这里分享几篇我觉得很有帮助的技术文章。

  1. Learn to build your first bot in Telegram with Python 这是最好的入门示例,而且作者提供了github repo,如果你熟悉Python这门世界上最流行的编程语言,可以照着文章做一遍,就能创建一个简单的回复你狗狗图片的机器人了。
  2. How I wrote a Telegram bot for Bitbucket using Heroku and Python. 这篇博文很短,但是它提到了两篇文章一步步介绍如何部署你的机器人到heroku的免费计划,非常实用。
  3. 第三篇属于进阶篇,其实只是Github上一段python代码,但是它包含了如何利用有限状态机(FSM)来处理对话中的复杂逻辑,要开发正经点的功能的话,这是绝佳基线代码。
  4. 当然不能忘了推荐这个python库,开发python电报机器人必备库。

向大家推荐一个Heroku+云数据库的敏感web应用和论坛搭建方案

非程序员请自动忽略本文

开发一个电报机器人、部署一个论坛或翻墙的梯子对程序员来说通常不是什么难事,但如果该应用或论坛是"敏感"的, 完全匿名化的部署就是一个难题 。比方要部署2049bbs这样一个论坛,有三样东西难免会跟自己的实名身份挂钩:服务器、域名、数据库。2049bbs的站长或许有过人胆量和借壳下蛋的独门绝技来保护自己免受中共追踪,但这种做法无疑是把自己的性命和隐私交到了海外的跨国公司手中,并不是真正的匿名部署。

要素一:主机

首先来说 服务器(又名 主机 )。论坛或web应用都是动态的,而动态网站必须要有自己的主机。相比之下,作为静态页面的博客类敏感网站门槛低得多,去wordpress注册一个免费博客(如iYouPort)或github pages那种静态页面网站(比如端点星达摩俱乐部,以及在下的中国时间线)就可以了。虽然github等代码托管平台可以利用github action或者travis-ci.org之类服务自动化很多工作,但是这种静态页面即便是玩出花来,功能跟动态网站或web应用没有可比性。

其实对于非敏感网站而言主机根本就不是个事儿,每个月花一杯咖啡的钱就能租到一台云主机,甚至直接用自己的家用电脑都可以。但之所以 反制中共舆论战 的事业没能在广大程序员中遍地开花,缺乏对赵弹免疫的真匿名主机可能是最大的瓶颈,连编程随想也坦言自己之所以用公共博客平台就是因为不用花钱,而一旦刷卡花钱就不是真匿名了。

好消息,好消息,江南皮革厂的老板离婚了,现清仓一批 美国云端大厂heroku提供的免费云主机,编程语言 Node.js, Ruby, Java, PHP, Python, Go, Scala, Clojure任你选择,提供免费的二级域名和https https://<your-web-application>.herokuapp.com,全部免费,样样免费,24小时在线的真匿名动态应用不再是梦,连编程随想都可以更上一层楼了。

要素二:域名

如果没有 域名 ,就只能用类似http://206.189.252.32:8085/的纯IP地址去访问论坛。纯IP地址一来很难记住,二来暴露自己主机的IP大大增加了攻击面,比如中共黑客部队可以用DDOS瘫痪你的应用或网站、利用某些0day漏洞入侵你的主机,同时IP地址还暴露你的主机提供商,为黑客挖掘你的真实身份提供重要线索,如果你用自己家电脑作主机那就更是直接暴露身份了。

上述威胁是可以通过购买域名来解决,比如2049bbs的主机就藏在Cloudflare背后。2049bbs.xyz这样的一级域名必须得花钱买,虽然域名商提供收费服务保护你的隐私,但不是真匿名就始终不安全,万一中共御用黑客某天获取了域名商的交易记录,那你的真实身份就暴露了。所以要想轻松愉快的开展反对中共的网络人民战争,必须得「真匿名部署」,而「真匿名部署」就不得不放弃一级域名,选择免费的二级域名,比如这样的。

https://<your-web-application>.herokuapp.com
https://<your-github-username>.github.io
https://<your-gitlab-username>.gitlab.io

挂在github, gitlab, heroku 等云端大厂下的二级域名也没什么不好,除了稍微长一点,该有的保护都自带了,不必担心受到黑客攻击。

要素三:数据库

同样,对非敏感网站而言,数据库根本就不是个事儿,直接在主机建一个本地数据库就行了。但heroku的免费计划是不提供数据库的,要开启数据库功能得提供信用卡信息。当然heroku已经能满足类似staticman这样不需要数据库的应用了,但数据库对论坛或更复杂的应用而言还是必须的。

数据库的问题没有前面两个要素那么严重。因为web应用或论坛的数据库访问都是在后台,黑客只有攻入你的heroku主机才能看到你的数据库在哪儿。如果你认为heroku主机足够安全,直接用花钱租的主机或者跟实名挂钩的Google Cloud来做后台数据库也问题不大,前提是你信任Google或主机商不会出卖你。不过万一中共在主机商或Google内部有内鬼,你还是会暴露。

所以,终极方案出炉了, 好消息,好消息,江南......

直接搜索关键词 free database host 就能找到一堆提供免费数据库的主机商,对于一般的论坛而已肯定是够用了,像2049或品葱的数据库也就几十M。

总结

有了不跟信用卡挂钩的免费主机、免费二级域名、免费数据库,你就做到了「真匿名」,即便中共攻破了所有的服务器和提供商,最多也就是破坏你的应用或网站而已,绝对没办法查到你的真实身份。只要你严格的通过Tor实施「真匿名部署」,中共要查到你的真实身份得先攻陷CIA才行。中共御用黑客真能攻陷CIA的网络的话,先抓一堆党政军内的CIA线人和间谍,再要称霸全世界,轮得到抓你或者编程随想这种小咖吗?

「真匿名部署」动态应用,希望掀起一股风暴,让Telegram机器人、反共论坛、以及各种创意的动态服务遍地开花,让我们从中共手中抢回更多本来属于公民的信息权和言论自由。

Git项目匿名安全措施

端点星事件蔡伟和陈玫被捕,TerminusBot为蔡伟的分析 https://github.com/2049bbs/2049bbs.github.io/blob/master/README.md

如何查看某个git项目的所有作者和邮箱

git shortlog -sne --all

导致蔡伟泄漏身份的github用户名和邮箱 tsai1993 caiw15@mails.tsinghua.edu.cn 导致陈玫泄漏身份的github邮箱 cmmei chanmei007@gmail.com

造成身份泄漏的可能原因:敏感项目未与日常计算机隔离,在使用git时因疏忽而使用了默认的全局设置,即日常的git用户名和邮箱。

解决方案

  1. 所有敏感项目都在虚拟机中进行,与日常用电脑完全隔离,使用双虚拟机方案通过Tor访问网络。
  2. 对每个git项目单独配置局部用户名和密钥对
git config --local user.email "youremail@example.com"
git config --local user.name "Your Name"
git config --local core.sshCommand "ssh -i ~/.ssh/project-specific-private-key -F /dev/null"

参考 https://superuser.com/questions/232373/how-to-tell-git-which-private-key-to-use/868699