玛格丽特苏

关于dabr的三个hack和一些闲话(邀请开通,去除超短推提示,架设在子文件夹下)

replied by 13 people from #推特第三方 on December 17th, 2009

还在担心你的私人dabr被滥用么?还在担心你的dabr暴露在所谓的“发邮件获取API”的网络钓鱼之下么?还在惊诧自己隐秘的空间莫名其妙就被墙掉了么?还在忧郁省吃俭用节约米买的空间莫名其妙就收到流量警告或者信用卡账单么?

这些破烂事的来自于国人总是得了便宜卖乖,总是不尊重他人隐私,总是把自私的行为提升到比如GPL的高度。如今一切的口舌,无力的谴责,不舍的放弃都让它随风而去吧。

dabr的具体介绍苏不细表,相信知道这东西的都知道,不知道这东西的说了反而会无耻的蹭别人的。苏只是想说dabr的project有三位开发者,其中一个是家喻户晓的@yegle,但是另外一位david.carrington也不白给,本文的代码部分就出自他手。在此向这位敏锐的抓住了中国人的性格并先知先觉的给出解决方案的智者致以最高敬意。

打开你的私人dabr的config.php,浏览一下,会发现所有的代码都写在一个<?php ?>之内。

下面在这个<?php ?>里面插入如下代码:

/*MAKING DABR INVITE ONLY
The function below would need to be added to your config.php file
and then you need to play around the with list of allowed users.
*/
function config_log_request() {
// This function is called from menu.php if it exists
// Ignore people that aren't logged in
if (!user_is_authenticated()) return;
// Create a *lowercase* list of allowed users
$allowed_users = array(
  'doublechou',  //你想要邀请的推友的推号
);
// Or a file-based alternative if you prefer not to keep tampering with config.php:
// $allowed_users = file('../allowed_users.php');
// Check if the current user is in our allowed user list
if (!in_array(strtolower(user_current_username()), $allowed_users)) {
// They're not, kick them out!
user_logout();
die("Sorry, you're not on the list of allowed users for this site.");
}
}

上传,搞定。这样无论是oauth方式还是普通登录,如果推号没有在邀请名单上,就会转到一个空白页,上书一行大字:对不起,你丫是来蹭流量的吧。

update: 这么做是不违反GPL协议的,因为源码始终是GPL的,你还是可以改,我只是利用GPL的源码创造我私人的空间。

如何去除dabr的小于30字节的超短推提示。

相信拿推特作为IM的朋友都觉得小于三十字节这个提示很烦恼。本来就是不耐烦的回复比如“哦”,“知道了”,“同意,阅”,“好的”,还要再点一下鼠标。

去除的方法是:打开/common 目录中的twitter.php, 搜索shorttweet,会发现一个js_counter函数,把function shorttweet() { }这个函数删除即可。

如何架设dabr到子文件夹下。

因为你的某个空间可能已经架设了别的程序,比如Wordpress,那么放在子文件夹下是个不错的选择。另外子文件夹也比较不好猜,可以有效防止猜测你dabr地址的恶意推友。比如@yegle的dabr的地址就非常难猜。

只需要在你的config.php下把define(‘BASE_URL’,$base_url, ‘/’);改成define(‘BASE_URL’,'http://dabr.co.uk/subfolder/”);这样的格式,然后再相应修改你的twitter oauth client里面的call back url就可以咯。

下面是一些闲话。

最近推特上出现了一些“发邮件获取API地址”的推,另外还有一些自以为是的愤青在推特上搜集推友的API与第三方,放在不安全的网页上。这种行为苏定义为损己不利人。

首先你的传播行为可能会给你带来一杯温暖的咖啡或者不经意的人间蒸发,其次你的行为对其他一些无关的推友的个人利益和人身安全造成了威胁。

让我们来分析一下。

发邮件获取API地址。大家扪心自问一下,gmail就是绝对安全的吗?即使它是绝对安全,你绝对相信背后回复邮件的人发送给你的网站吗?

先分析一下可能会提供这种服务的人的种类。首先,绝对不是把推特当作信息发布工具的人。因为这种人本身就是信息源,他们没那个时间。其次,绝对不是Geek。人是有层次感的生物,geek都去开发第三方了,不屑于做这种没技术含量的事情。第三,提供这个服务的人潜意识里面都希望推上人越来越多。那么这种人心中必然是想表现,延伸的说,他们并不在意别人,只是在意别人怎么看自己。先不说推特上人越来越多在现在的现实下会带来多么鱼龙混杂。一个热心帮助你的人本身就不在乎你。你还敢接受他的帮助吗?

再分析一下他提供的内容。一假设是API。你知道这些API的所有者是否有意愿开放给你使用呢?苏可以肯定的说,几乎都是没意愿的。因为有意愿的话,就根本不需要第三个人通过邮件发送,他自己就会告诉你。二假设是第三方。你知道这些第三方的作者是否觉得他的第三方达到可使用状态了呢?苏还可以肯定的说,不主动开放的第三方基本都是不能用的。然后一群架设不成功的小白小白白围攻作者,怎么用不了,行不通,正如@yegle所说,他提供的代码里从来不会输出这样的字符串。这种行为无疑拖慢了进度,影响了开发者的心情。三假设什么都不是。是啊,我想出名,只需要找个随机字符串生成函数,http://***.com(org,net)/api,填空游戏么,几十个里面放一个真的就可以了。何必费时费力的找API呢。四假设是木马。如果是苏的话,绝对给你个手机和电脑木马下载站,因为你是绝对相信对方的,所以你87.51%的概率都不会意识到你中招了,多么安全的挂马方式呀!到时候你将无处遁形。至于用你的信息干什么,可能是跨省抓捕,也可能是网银诈骗,太多了。

当然苏没有想要一棒子打死一片,还是欢迎推广自己的API的人的,听好,是自己的。但是请推广自己API的人心里要有承担后果的准备,能力和决心。另外不欢迎这种邮件的方法,因为你们完全可以互加好友,一封DM。邮件大部分都是用来工作的,推特则是个人生活,相信大家都懂。

至于放在网页上,这个苏就差暴粗口了。

首先,大部分个人站长都没有https。即使有,也白扯。

其次,大部分个人站长都是踏着他人尸骨过桥。最明显的例子就是某垃圾站长公开了@Showfom的rabr导致其被墙,而该站长获取了大量的流量。

第三,大部分个人站长的手法都特别低级。你完全可以拍一个使用各种翻墙工具,API,第三方翻墙的视频,上传到已经被墙的国外视频网站,比如youtube,然后分发通过网页代理翻墙访问的地址。该地址被墙,不影响网页代理,也不影响你,也不影响youtube。因为网页代理都有好多个服务器,它既然做了代理,就要每天面对被墙,有经验有能力;你个人的罪名只不过是散发一条链接;youtube本身已经被墙,还能危害到它什么呢?或者你可以做一个flash,一张图片。反正是无法被搜索引擎爬取内容的东西。直接明码写,你是想它死的快点吗?

不知道为什么,总有些人总是想借营销推特之名营销自己。苏简单指点你们一句,推特在如今国内的网络环境下,只能口碑营销。你们,完全是像电视广告,近似在GFW的114和CCAV晚7:00的channel 1上做推特的广告了。推特没有死于政治,死于自以为懂政治懂宣传,怀着满腔个人英雄主义热血的所谓愤青的手里。

  1. December 17th, 2009 at 16:58
    Reply | Quote | #1

    ╮( ̄▽ ̄”)╭ 常用的hosts已经给封了,不知道少妇那个还能坚挺几天。不知道我的主机商准不准我搭建大波,不知道那~

  2. 东尼
    December 17th, 2009 at 17:13
    Reply | Quote | #2

    玛格丽特,啧啧,写的不错,受益匪浅。

  3. December 17th, 2009 at 17:18
    Reply | Quote | #3

    这个邀请开通的方法有点绝情,找不到漏洞了

  4. December 17th, 2009 at 18:50
    Reply | Quote | #4

    @胡一刀
    主机商在乎的是流量和恶意程序,你流量不超标,空间的php支持dabr运行,就可以。少妇的hosts是多少,mail我一份呗。还有你一个大男人,居然会打一些我都不会打的颜文字。

    @bolo
    呵呵,你要上我可以邀请你啊。国内就这样,你考虑他们,他们不考虑你。所以也不必有什么愧疚,理解是相对的。

  5. December 18th, 2009 at 09:00
    Reply | Quote | #5

    @玛格丽特苏 貌似我的主机商不允许,难道怕资源占用过大? 颜文字么~活跃活跃气氛喽

  6. December 18th, 2009 at 09:57
    Reply | Quote | #6

    嘎嘎

  7. December 18th, 2009 at 10:27
    Reply | Quote | #7

    我的解决办法:在主机端对相关目录强制做http验证,包括自架的api和dabr都有这个验证。对dabr来说,只是每次登录时多输一次密码的问题,而且大部分浏览器都能记住密码,影响不大。对api来说,将用户名和密码设置的和twitter的一致,并不影响api访问user相关的内容,倒是public的东西会受影响,看取舍吧。

    这方法还可以防止爬虫和网络嗅探。

  8. December 18th, 2009 at 19:30
    Reply | Quote | #8

    至今搜索我的域名,排前面的都是曾经共享的一个api地址,然后那个列表被“广为传播”
    很多人做事都不用脑子的,想想就不再共享了,只给几个熟悉的人用,何必丫跟自己过不去

  9. December 18th, 2009 at 21:54
    Reply | Quote | #9

    大冷天,周末到这里借人气暖和下呵呵

  10. December 19th, 2009 at 00:46

    @胡一刀
    不是资源占用大,是http请求过于频繁。

    @Showfom
    嘎屁,要不是姐姐帮你出头,你至今不知道是怎么被封的。。

    @Googol
    http明文传输不防嗅探。cookie其实就是一个文本文档。

    @lfeng
    拿别人的东西学雷锋,国人乐此不疲呀~ //BTW,阁下是不是Ifeng大大?

  11. December 19th, 2009 at 14:00

    @玛格丽特苏 呃。。。确实是推上的lfeng,8过只是无名小虾米一只。。。

  12. liyang
    December 21st, 2009 at 23:13

    谁给推荐个空间

  13. June 15th, 2010 at 17:19

    前面两个hack都用上了..以前貌似被别人盗用了我的大波,经常提示各种错误..然后加了限制就好了..