Bug#217243: Real problem, not wishlist

Andreas Cadhalpun <[email protected]>
Newsgroups gmane.linux.debian.curiosa
Message-ID <[email protected]>
[Forwarding to curiosa, as this is just too good a short story to miss, 
considering how dry bug reports usually are.]

On 30.12.2013 23:16, Gwern Branwen wrote:
> This bug was a very serious, almost fatal, bug for me recently, and I
> thought I would share my story to emphasize that for me, this was not
> a 'wishlist' severity bug.
>
> I research Tor black-markets (see http://www.gwern.net/Silk%20Road )
> because I am interested in them from economic, historical, and
> statistical perspectives. Black-markets are dangerous risky
> enterprises, even when run as Tor hidden-services, and so people like
> me or Nicolas Christin often download or spider them so as to have
> copies to analyze later.
>
> In October 2013, Silk Road was famously busted (to everyone's complete
> surprise). Fortunately, the FBI seizure left the SR forums alone, and
> it became a top priority for me to grab a copy of the forums while I
> still could since they would be invaluable in the post-mortem of SR
> and the wave of arrests everyone expected to follow the bust. The wget
> spider of the public forum went fine. But even more importantly, I
> needed to get a copy of the members-only subforum, the Vendor
> Roundtable, where all the Silk Road drug dealers talked shop, and more
> importantly, turned out to have discovered some of the early bits and
> pieces of how Silk Road/Ross Ulbricht was busted.
>
> I'm not a drug dealer, but I know a few of the SR ones and was able to
> get login credentials. I logged in, checked that I had access to the
> Roundtable, exported my cookies, and read the wget man page for
> guidance:
>
>         -R rejlist --reject rejlist
>             Specify comma-separated lists of file name suffixes or patterns to
>             accept or reject. Note that if any of the wildcard characters, *,
>             ?, [ or ], appear in an element of acclist or rejlist, it will be
>             treated as a pattern, rather than a suffix.
>
> Perfect. Exactly what I needed to avoid being logged out. I threw in a
> `--reject '*logout*'` to cover all possible logout links, and kicked
> the spider off. I watched for a few minutes, everything looked like it
> was going fine with no suspicious 'index.php?logout' files showing up
> or anything, and I went off to deal with other aspects of breaking
> news.
>
> 2 days later, the spider was still running (it's a very big forum and
> Tor has high latency), and I needed to check a particular claim about
> a Roundtable thread. No problem, I had a copy of the Roundtable - I'd
> just check that. NOPE. The thread wasn't there at all. In fact, almost
> *nothing* in the Roundtable had been downloaded at all!
>
> I panicked. No one knew why the FBI hadn't shut down the forums, who
> was running them, or when they would disappear into the digital ether.
> Christin wasn't spidering the Roundtable, and I was it. If I didn't
> have a copy, then likely, no one did. It would be gone permanently.
> Luckily, the forums were still up... but for how long? Minutes, hours,
> or days? What had gone wrong and how could I fix it?
>
> I logged in again, exported cookies, restarted, checked in a few
> hours. No Roundtable. WTF?! I logged in, exported, restarted, watched
> closely... I spotted in the stream a mention of 'index.php?logout'.
> But why? I went back to the `--reject` documentation. Had I called it
> wrong? Made a syntax error? Did `--reject` not do what it was supposed
> to do? But the documentation is perfectly clear: --reject rejects URLs
> from being downloaded. It doesn't do something remotely as absurd as
> download a URL and then delete it! There is no usecase for that in
> combination with rejecting URLs, it's trivially broken for many
> use-cases, and it would *definitely* be documented in the manpage.
>
> I went back, logged in... Repeat 5 or 10 times with various
> invocations of `--reject` and regexps and escalating blood pressure,
> until I checked the downloaded pages and resigned myself that somehow,
> somehow or other, I couldn't begin to explain it, neither the how nor
> the why, wget was logging itself out of the forums. As absurd as it
> sounded, nothing else fit the evidence.
>
> I started googling 'wget reject'.
>
> To discover this bug report, among others.
>
> Oh how I raged that night. 'principle of least surprise', 'betrayal',
> 'crime against posterity', 'moronic', 'deliberately malicious', 'what
> the hell', and more indelicate phrases were uttered.
>
> I was also not pleased to discover that, `--reject` aside, there was
> apparently no way whatsoever to genuinely reject URLs inside wget.
>
> Eventually, I rigged up a hack where I pointed wget to Privoxy, and
> wrote Privoxy rules to block certain URLs including the logout links.
> It's ugly, it's not easy to modify, I'm not really familiar with
> Privoxy syntax, but at least it does, in fact, work. And I was able to
> get a good chunk of the Roundtable before the forums went down. (Not
> all of it, but that's another story which is not wget's but the forum
> software's fault - I think.)
>
> Summary: `--reject` is a problem. It can't be *that* hard to fix,
> there are short patches floating around. Please fix it.
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.