New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mastodon can be used as a DDOS tool #4486

Closed
valentin2105 opened this Issue Aug 1, 2017 · 25 comments

Comments

Projects
None yet
@valentin2105
Contributor

valentin2105 commented Aug 1, 2017

Hi !

Today I found this tweet : https://twitter.com/mattiasgeniar/status/892446659245993984

I tried to post a link on my instance, Mastodon.cloud, and follow the link's web server logs ->

400 instant requests.

Imagine I flood 10 link, I think that go to generate more than 4k requests..
It's not great for link's web server..

Any idea how to mitigate this on futur releases ?
Why Mastodon need to crawl the link ?

Thanks


  • I searched or browsed the repo’s other issues to ensure this is not a duplicate.
  • This bug happens on a tagged release and not on master (If you're a user, don't worry about this).
@angristan

This comment has been minimized.

Contributor

angristan commented Aug 1, 2017

Tested on my account with 1.5k followers (I don't know how many instances).

Result : 578 requets in 20 seconds.

Examples :

2001:41d0:c:ec9::2b43:1d3 - - [01/Aug/2017:23:35:16 +0200] "HEAD / HTTP/1.1" 200 0 "-" "http.rb/2.2.2 (Mastodon/1.5.0; +https://mstdn.io/)"
2001:41d0:c:ec9::2b43:1d3 - - [01/Aug/2017:23:35:16 +0200] "GET / HTTP/1.1" 200 36402 "-" "http.rb/2.2.2 (Mastodon/1.5.0; +https://mstdn.io/)"
62.210.247.240 - - [01/Aug/2017:23:35:16 +0200] "HEAD / HTTP/1.1" 200 0 "-" "http.rb/2.2.2 (Mastodon/1.4.7; +http://oc.todon.fr/)"
163.172.20.35 - - [01/Aug/2017:23:35:17 +0200] "HEAD / HTTP/1.1" 200 0 "-" "http.rb/2.2.2 (Mastodon/1.4.3; +http://mastodon.partipirate.org/)"
2001:41d0:d:2389::7 - - [01/Aug/2017:23:35:17 +0200] "HEAD / HTTP/1.1" 200 0 "-" "http.rb/2.2.2 (Mastodon/1.4.7; +http://mastodon.top/)"
2001:41d0:c:ec9::2b43:1d3 - - [01/Aug/2017:23:35:17 +0200] "GET / HTTP/1.1" 200 36402 "-" "http.rb/2.2.2 (Mastodon/1.5.0; +https://mstdn.io/)"
163.172.185.23 - - [01/Aug/2017:23:35:17 +0200] "HEAD / HTTP/1.1" 200 0 "-" "http.rb/2.2.2 (Mastodon/1.5.0rc3; +https://mastodon.social/)"
62.210.247.240 - - [01/Aug/2017:23:35:17 +0200] "GET / HTTP/1.1" 200 36402 "-" "http.rb/2.2.2 (Mastodon/1.4.7; +http://oc.todon.fr/)"
163.172.20.35 - - [01/Aug/2017:23:35:17 +0200] "GET / HTTP/1.1" 200 36402 "-" "http.rb/2.2.2 (Mastodon/1.4.3; +http://mastodon.partipirate.org/)"
2001:41d0:d:2389::7 - - [01/Aug/2017:23:35:17 +0200] "GET / HTTP/1.1" 200 36402 "-" "http.rb/2.2.2 (Mastodon/1.4.7; +http://mastodon.top/)"
2001:4b99:1:2:216:3eff:feaf:f948 - - [01/Aug/2017:23:35:17 +0200] "HEAD / HTTP/1.1" 200 0 "-" "http.rb/2.2.2 (Mastodon/1.4.7; +http://m.massy.city/)"
188.165.228.227 - - [01/Aug/2017:23:35:17 +0200] "HEAD / HTTP/1.1" 200 0 "-" "http.rb/2.2.2 (Mastodon/1.4.7; +http://mastodon.eliotberriot.com/)"
2001:bc8:3862:4272::42 - - [01/Aug/2017:23:35:17 +0200] "HEAD / HTTP/1.1" 200 0 "-" "http.rb/2.2.2 (Mastodon/1.5.0; +https://mastodon.xyz/)"
163.172.185.23 - - [01/Aug/2017:23:35:17 +0200] "GET / HTTP/1.1" 200 36402 "-" "http.rb/2.2.2 (Mastodon/1.5.0rc3; +https://mastodon.social/)"
2a01:4f8:10a:3e15::2 - - [01/Aug/2017:23:35:17 +0200] "HEAD / HTTP/1.1" 200 0 "-" "http.rb/2.2.2 (Mastodon/1.4.4; +http://framapiaf.org/)"
62.210.247.240 - - [01/Aug/2017:23:35:17 +0200] "GET / HTTP/1.1" 200 36402 "-" "http.rb/2.2.2 (Mastodon/1.4.7; +http://oc.todon.fr/)"
163.172.20.35 - - [01/Aug/2017:23:35:17 +0200] "GET / HTTP/1.1" 200 36402 "-" "http.rb/2.2.2 (Mastodon/1.4.3; +http://mastodon.partipirate.org/)"
2001:41d0:d:2389::7 - - [01/Aug/2017:23:35:17 +0200] "GET / HTTP/1.1" 200 36402 "-" "http.rb/2.2.2 (Mastodon/1.4.7; +http://mastodon.top/)"
2001:41d0:a:fb29::1 - - [01/Aug/2017:23:35:17 +0200] "HEAD / HTTP/1.1" 200 0 "-" "http.rb/2.2.2 (Mastodon/1.4.7; +http://toot.tzim.net/)"
195.154.133.191 - - [01/Aug/2017:23:35:17 +0200] "HEAD / HTTP/1.1" 200 0 "-" "http.rb/2.2.2 (Mastodon/1.5.0; +https://soc.ialis.me/)"
163.172.149.63 - - [01/Aug/2017:23:35:17 +0200] "HEAD / HTTP/1.1" 200 0 "-" "http.rb/2.2.2 (Mastodon/1.5.0; +https://m.dumez.info/)"
2001:41d0:1:9064::1 - - [01/Aug/2017:23:35:17 +0200] "HEAD / HTTP/1.1" 200 0 "-" "http.rb/2.2.2 (Mastodon/1.4.7; +http://antisocial.narinimous.fr/)"
91.121.37.224 - - [01/Aug/2017:23:35:17 +0200] "HEAD / HTTP/1.1" 200 0 "-" "http.rb/2.2.2 (Mastodon/1.4.7; +http://mastodon.at/)"
78.205.21.170 - - [01/Aug/2017:23:35:17 +0200] "HEAD / HTTP/1.1" 200 0 "-" "http.rb/2.2.2 (Mastodon/1.5.0rc2; +https://ma.zy.lc/)"
2001:41d0:2:d230::15 - - [01/Aug/2017:23:35:17 +0200] "HEAD / HTTP/1.1" 200 0 "-" "http.rb/2.2.2 (Mastodon/1.5.0; +https://hostux.social/)"

screenshot_01-08-2017_23-47-56

@angristan

This comment has been minimized.

Contributor

angristan commented Aug 1, 2017

@valentin2105 Mastodon needs to crawl for the preview. For example : https://mstdn.io/@angristan/5262121

screenshot_01-08-2017_23-43-41

@ykzts

This comment has been minimized.

Collaborator

ykzts commented Aug 1, 2017

duplicate of #3518

@ykzts ykzts marked this as a duplicate of #3518 Aug 1, 2017

@ghedipunk

This comment has been minimized.

ghedipunk commented Aug 1, 2017

I wouldn't call it a duplicate.

Related, absolutely. Not duplicate.

The issue with #3518 is that a single server is making 3 different requests for the same resource.

The issue in this is that hundreds of servers are requesting the same resource, as soon as they get a notification of the toot.

@valentin2105

This comment has been minimized.

Contributor

valentin2105 commented Aug 1, 2017

Imagine you got 10 account on 10 instances and you post 10 links on each.
It would be a big mess.

@Gargron

This comment has been minimized.

Member

Gargron commented Aug 1, 2017

I can totally see this being a problem, but I also don't see a solution to it, because people want previews. An idea could be to randomly delay the fetching of the preview, however, you would get complaints from people "why doesn't the preview show up?" when they immediately check it. Anyone have any other ideas?

@ghedipunk

This comment has been minimized.

ghedipunk commented Aug 1, 2017

Perhaps "trust, but verify." Also, humans are a great source of randomness.

Bear with me as my assumptions about how the federation works may not be completely accurate -- the details shouldn't matter.

Have the originating server send metadata about the link's preview along with the toot.

When the client requests the preview, their own server can then verify the link and update the preview if necessary.

This way, there's always something to show up front. Since the Web client doesn't attempt to show the preview until the user clicks on a toot, we have a random wait -- on the order of seconds, minutes, or years -- so we aren't creating a thundering herd based only on the toot hitting the federated servers.

Also, if nobody is even going to look at the preview, one never gets loaded, saving a few completely unnecessary requests.

The only real concern is a malicious server sending incorrect information in the toot's metadata... That's why I say to verify.

(This would also give users the ability to set a preferred preview image, as they're able to do on FB and G+, but that really belongs in a feature request rather than a discussion about a bug report)

@Hexalyse

This comment has been minimized.

Hexalyse commented Aug 1, 2017

I was thinking about the same thing : couldn't the preview be generated when the toot is posted, by the server from where it's posted... then other instances would fetch this preview from the originating instance, as they do for media attachments ?

Just a random idea tho. I don't know if it would fit in the mastodon federating scheme.

@bortzmeyer

This comment has been minimized.

bortzmeyer commented Aug 21, 2017

Calling 400 HTTP requests a "dDoS" seems very exaggerated.

@ghedipunk

This comment has been minimized.

ghedipunk commented Aug 22, 2017

Someone running Wordpress on a stripped down VPS without any CDNs mitigating traffic spikes would be very unhappy to see 400 HTTP requests hit in an instant.

Many hosts automatically reboot VPS servers if they exceed their memory allotment, bringing the site down for minutes... and on Mastodon, the first few minutes after a link is posted accounts for 95%+ of the visits that the site is going to get from that toot.

Arguably, the people who buy the cheapest VPS are the ones who need that traffic the most; by rebooting their server each time someone links to them on Mastodon, you're not just DOSing them, you're creating a bad user experience, driving away potential customers.

A DDOS doesn't have to last for days, harnessing the power of millions of misconfigured routers and IP cameras to be effective... It just has to come from more than one source at once and deny normal users use of the service.

@bortzmeyer

This comment has been minimized.

bortzmeyer commented Aug 22, 2017

@ghedipunk If I had to run a site on a "stripped down VPS", I would run a static site, for which 400 requests is nothing, even on a Raspberry Pi. But my main point is that generating 400 requests is very simple for any attacker. Mastodon is not really needed.

@LogalDeveloper

This comment has been minimized.

LogalDeveloper commented Aug 22, 2017

This is not an issue just about 400 HTTP requests. The main issue here is that as Mastodon gets bigger and more instances are created, the larger and more serious the attacks can become. Another part of this is that while the attacks can be on purpose by a malicious person, they can also be on accident by an innocent person with a lot of followers who simply wants to share a meme they liked a lot.

@ghedipunk

This comment has been minimized.

ghedipunk commented Aug 22, 2017

You're experienced in web hosting, as are the vast majority of people who would participate in this thread here on Github.

However, looking at small business sites, it's very clear that we're in the minority.

We know about Cloudflare and using nginx as a TLS terminator in front of Varnish-Cache that does intelligent edge-side includes on Apache/PHP generated content...

We know what design decisions to make on a completely static HTML only site so that if we need to update the site's layout, we can do it quickly.

We know that if you want to sell things online, you have to resize your 48000x28000 pixel product images before displaying them to the users.

And, we know that there are users who don't know these things.

This isn't about helping us, the technical elites who can run a successful site off of a Raspberry Pi. It's about being good neighbors.

@mherrb

This comment has been minimized.

mherrb commented Aug 23, 2017

I really don't see where the problem is. The distributed nature of mastodon will spread the requests over a (small for humans but large for the network) interval and when you publish some link on a public media, you expect traffic coming back to the site in question. Otherwise there's little interest on publishing it.
And when the number of mastodon instances will grow, the load will also be spread over a wider interval since it will take more time for the toot to propagate to all instances.

@bortzmeyer

This comment has been minimized.

bortzmeyer commented Aug 23, 2017

Indeed, when you post a link on Twitter, you get more requests (not from Twitter itself, because of its centralized nature, but because of all the bots that read Twitter and act).

@snarfed

This comment has been minimized.

snarfed commented Jun 6, 2018

i noticed this recently too. >1k requests in <45s, >25qps. not a disaster, my site handled it fine, but still, noticeable. small thread on it here: https://mastodon.technology/@snarfed/100119606571241751 , cc @ashfurrow @neekz0r.

d931a7f3acc5b062

(qps numbers in the graph are artificially reduced due to a 60s+ aggregation interval.)

@neekz0r

This comment has been minimized.

neekz0r commented Jun 6, 2018

Haha.. the joys of having the same handle on multiple platforms.

Yeah, to me I think this should be considered a little more serious because theoretically this can be used as an amplification attack.

@MightyPork

This comment has been minimized.

Contributor

MightyPork commented Jun 12, 2018

Here is my capture of this phenomenon if anyone's interested (removed IP addresses). There are a few real users, but mostly it's mastodon servers.

Click to expand
19:45:41 +0000] "HEAD / HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://glitch.social/)" 
19:45:41 +0000] "HEAD / HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1rc3; +https://vulpine.club/)" 
19:45:41 +0000] "HEAD / HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://mastodon.infra.de/)" 
19:45:41 +0000] "HEAD / HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://toot-lab.reclaim.technology/)" 
19:45:41 +0000] "HEAD / HTTP/1.1" 200 0 "-" "http.rb/2.2.2 (Mastodon/2.0.0; +https://sprite.land/)" 
19:45:41 +0000] "HEAD / HTTP/1.1" 200 0 "-" "http.rb/3.0.0 (Mastodon/2.3.3; +https://wandering.shop/)" 
19:45:41 +0000] "HEAD / HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://octodon.social/)" 
19:45:41 +0000] "HEAD / HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://social.tchncs.de/)" 
19:45:41 +0000] "HEAD / HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://mastodon.macsnet.cz/)" 
19:45:41 +0000] "HEAD / HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://niu.moe/)" 
19:45:41 +0000] "HEAD / HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1rc3; +https://dev.glitch.social/)" 
19:45:41 +0000] "HEAD / HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1rc3; +https://touhey.org/)" 
19:45:41 +0000] "HEAD / HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://mastodon.social/)" 
19:45:41 +0000] "HEAD / HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://metalhead.club/)" 
19:45:41 +0000] "HEAD / HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://mastodon.host/)" 
19:45:41 +0000] "HEAD / HTTP/1.1" 200 0 "-" "http.rb/3.0.0 (Mastodon/2.3.3; +https://hackers.town/)" 
19:45:41 +0000] "HEAD / HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://mastodon.zombocloud.com/)" 
19:45:41 +0000] "HEAD / HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://birb.site/)" 
19:45:41 +0000] "HEAD / HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://mastodon.at/)" 
19:45:41 +0000] "HEAD / HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://mstdn.io/)" 
19:45:41 +0000] "HEAD / HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1rc3; +https://oldbytes.space/)" 
19:45:41 +0000] "HEAD / HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://mastodon.xyz/)" 
19:45:41 +0000] "HEAD / HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://chaos.social/)" 
19:45:41 +0000] "HEAD / HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://mastodon.mit.edu/)" 
19:45:41 +0000] "GET / HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://mastodon.infra.de/)" 
19:45:42 +0000] "GET / HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://glitch.social/)" 
19:45:42 +0000] "HEAD / HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://toot.website/)" 
19:45:42 +0000] "GET / HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://mstdn.io/)" 
19:45:42 +0000] "HEAD / HTTP/1.1" 200 0 "-" "http.rb/3.0.0 (Mastodon/2.3.3; +https://freedom.horse/)" 
19:45:42 +0000] "GET / HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://metalhead.club/)" 
19:45:42 +0000] "GET / HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://octodon.social/)" 
19:45:42 +0000] "GET / HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1rc3; +https://touhey.org/)" 
19:45:42 +0000] "GET / HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://mastodon.macsnet.cz/)" 
19:45:42 +0000] "GET / HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1rc3; +https://vulpine.club/)" 
19:45:42 +0000] "GET / HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://mastodon.social/)" 
19:45:42 +0000] "GET / HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://niu.moe/)" 
19:45:42 +0000] "GET / HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://chaos.social/)" 
19:45:42 +0000] "GET / HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://social.tchncs.de/)" 
19:45:42 +0000] "GET / HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://mastodon.at/)" 
19:45:42 +0000] "GET / HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1rc3; +https://oldbytes.space/)" 
19:45:42 +0000] "GET / HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://mastodon.xyz/)" 
19:45:42 +0000] "GET / HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://mastodon.host/)" 
19:45:42 +0000] "HEAD / HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1rc1; +https://social.wxcafe.net/)" 
19:45:42 +0000] "GET / HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://birb.site/)" 
19:45:42 +0000] "GET / HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://toot.website/)" 
19:45:42 +0000] "HEAD / HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.0-tp0.1; +https://tootplanet.space/)" 
19:45:42 +0000] "GET / HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1rc1; +https://social.wxcafe.net/)" 
19:45:42 +0000] "GET / HTTP/1.1" 200 76 "-" "http.rb/3.0.0 (Mastodon/2.3.3; +https://wandering.shop/)" 
19:45:42 +0000] "GET / HTTP/1.1" 200 76 "-" "http.rb/2.2.2 (Mastodon/2.0.0; +https://sprite.land/)" 
19:45:42 +0000] "GET / HTTP/1.1" 200 76 "-" "http.rb/3.0.0 (Mastodon/2.3.3; +https://hackers.town/)" 
19:45:42 +0000] "GET / HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://mastodon.zombocloud.com/)" 
19:45:42 +0000] "GET / HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1rc3; +https://dev.glitch.social/)" 
19:45:42 +0000] "HEAD / HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://asonix.dog/)" 
19:45:42 +0000] "GET / HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://mastodon.mit.edu/)" 
19:45:42 +0000] "HEAD / HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://freeradical.zone/)" 
19:45:42 +0000] "GET / HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://toot-lab.reclaim.technology/)" 
19:45:42 +0000] "GET / HTTP/1.1" 200 76 "-" "http.rb/2.2.2 (Mastodon/2.0.0; +https://sprite.land/)" 
19:45:42 +0000] "GET / HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.0-tp0.1; +https://tootplanet.space/)" 
19:45:42 +0000] "GET / HTTP/1.1" 200 76 "-" "http.rb/3.0.0 (Mastodon/2.3.3; +https://freedom.horse/)" 
19:45:43 +0000] "HEAD / HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.0-cybre; +https://cybre.space/)" 
19:45:43 +0000] "GET / HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://asonix.dog/)" 
19:45:43 +0000] "GET / HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.0-cybre; +https://cybre.space/)" 
19:45:43 +0000] "GET / HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://freeradical.zone/)" 
19:46:08 +0000] "GET / HTTP/1.1" 200 65 "https://cloudwithlightning.net/secrets-and-pies" "bad horse" 
19:46:20 +0000] "GET / HTTP/1.1" 200 65 "https://cloudwithlightning.net/secrets-and-pies" "bad horse" 
19:46:24 +0000] "GET / HTTP/1.1" 200 65 "https://cloudwithlightning.net/secrets-and-pies" "bad horse" 
19:47:07 +0000] "GET / HTTP/1.1" 200 76 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0" 
19:47:07 +0000] "GET / HTTP/1.1" 200 76 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0" 
19:47:08 +0000] "GET / HTTP/1.1" 200 76 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0" 
19:47:46 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0" 
19:47:59 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://glitch.social/)" 
19:47:59 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/2.2.2 (Mastodon/2.0.0; +https://sprite.land/)" 
19:47:59 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1rc3; +https://dev.glitch.social/)" 
19:47:59 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://social.tchncs.de/)" 
19:47:59 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://mastodon.zombocloud.com/)" 
19:47:59 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://birb.site/)" 
19:47:59 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1rc3; +https://vulpine.club/)" 
19:47:59 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://mastodon.at/)" 
19:47:59 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.0.0 (Mastodon/2.3.3; +https://wandering.shop/)" 
19:47:59 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://mastodon.mit.edu/)" 
19:47:59 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://mstdn.io/)" 
19:47:59 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://niu.moe/)" 
19:47:59 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://toot-lab.reclaim.technology/)" 
19:47:59 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://toot.website/)" 
19:47:59 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://mastodon.social/)" 
19:47:59 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://social.tchncs.de/)" 
19:47:59 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://birb.site/)" 
19:47:59 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1rc3; +https://touhey.org/)" 
19:47:59 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.0.0 (Mastodon/2.3.3; +https://hackers.town/)" 
19:47:59 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://mastodon.infra.de/)" 
19:47:59 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://glitch.social/)" 
19:47:59 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://mastodon.xyz/)" 
19:47:59 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://mstdn.io/)" 
19:47:59 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://chaos.social/)" 
19:47:59 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.0-tp0.1; +https://tootplanet.space/)" 
19:47:59 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.0-cybre; +https://cybre.space/)" 
19:47:59 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://metalhead.club/)" 
19:47:59 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://mastodon.macsnet.cz/)" 
19:47:59 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1rc3; +https://oldbytes.space/)" 
19:47:59 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://niu.moe/)" 
19:47:59 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://mastodon.at/)" 
19:47:59 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://mastodon.host/)" 
19:47:59 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/2.2.2 (Mastodon/2.0.0; +https://sprite.land/)" 
19:47:59 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://mastodon.social/)" 
19:47:59 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://toot.website/)" 
19:47:59 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://mastodon.zombocloud.com/)" 
19:48:00 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1rc3; +https://vulpine.club/)" 
19:48:00 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.0.0 (Mastodon/2.3.3; +https://freedom.horse/)" 
19:48:00 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.0-cybre; +https://cybre.space/)" 
19:48:00 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1rc3; +https://touhey.org/)" 
19:48:00 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://mastodon.mit.edu/)" 
19:48:00 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://freeradical.zone/)" 
19:48:00 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1rc3; +https://oldbytes.space/)" 
19:48:00 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://metalhead.club/)" 
19:48:00 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.0.0 (Mastodon/2.3.3; +https://wandering.shop/)" 
19:48:00 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://mastodon.infra.de/)" 
19:48:00 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://mastodon.macsnet.cz/)" 
19:48:00 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1rc1; +https://social.wxcafe.net/)" 
19:48:00 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://mastodon.host/)" 
19:48:00 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://chaos.social/)" 
19:48:00 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://mastodon.xyz/)" 
19:48:00 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://toot-lab.reclaim.technology/)" 
19:48:00 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1rc1; +https://social.wxcafe.net/)" 
19:48:00 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1rc3; +https://dev.glitch.social/)" 
19:48:00 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://octodon.social/)" 
19:48:00 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://asonix.dog/)" 
19:48:00 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/2.2.2 (Mastodon/2.0.0; +https://sprite.land/)" 
19:48:00 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://octodon.social/)" 
19:48:00 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.0.0 (Mastodon/2.3.3; +https://hackers.town/)" 
19:48:00 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.0-tp0.1; +https://tootplanet.space/)" 
19:48:00 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.0.0 (Mastodon/2.3.3; +https://freedom.horse/)" 
19:48:00 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://freeradical.zone/)" 
19:48:01 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://asonix.dog/)" 
19:48:49 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/2.2.2 (Mastodon/2.0.0; +https://retro.social/)" 
19:48:49 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/2.2.2 (Mastodon/2.0.0; +https://retro.social/)" 
19:48:49 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.0.0 (Mastodon/2.3.3; +https://social.literati.org/)" 
19:48:50 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/2.2.2 (Mastodon/2.0.0; +https://retro.social/)" 
19:48:50 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/2.2.2 (Mastodon/1.4.1; +http://mastodon.club/)" 
19:48:50 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.0.0 (Mastodon/2.3.3; +https://social.literati.org/)" 
19:48:50 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/2.2.2 (Mastodon/1.4.1; +http://mastodon.club/)" 
19:48:50 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://mst3k.interlinked.me/)" 
19:48:50 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://lou.lt/)" 
19:48:50 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://lou.lt/)" 
19:48:50 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://lou.lt/)" 
19:48:51 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://lou.lt/)" 
19:48:51 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/2.2.2 (Mastodon/1.4.1; +http://mastodon.club/)" 
19:48:51 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://mst3k.interlinked.me/)" 
19:48:51 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://masto.donte.com.br/)" 
19:48:51 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://mastodon.technology/)" 
19:48:51 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.0.0 (Mastodon/2.3.2; +https://awoo.space/)" 
19:48:51 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://masto.donte.com.br/)" 
19:48:52 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1rc3; +https://tabletop.social/)" 
19:48:52 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://mastodon.technology/)" 
19:48:52 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.0.0 (Mastodon/2.3.2; +https://awoo.space/)" 
19:48:52 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1rc3; +https://tabletop.social/)" 
19:48:52 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/2.2.2 (Mastodon/2.0.0; +https://snabeltann.no/)" 
19:48:52 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/2.2.2 (Mastodon/2.0.0; +https://snabeltann.no/)" 
19:48:52 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://znark.us/)" 
19:48:53 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://witchey.club/)" 
19:48:53 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/2.2.2 (Mastodon/2.0.0; +https://snabeltann.no/)" 
19:48:53 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://witchey.club/)" 
19:48:53 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://sn.angry.im/)" 
19:48:53 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://znark.us/)" 
19:48:53 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://sn.angry.im/)" 
19:48:53 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.0.0 (Mastodon/2.3.2; +https://pentacl.es/)" 
19:48:54 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/2.2.2 (Mastodon/1.6.1 +27 (bf7ce63); +https://is.a.qute.dog/)" 
19:48:54 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.0.0 (Mastodon/2.3.2; +https://kelnet.social/)" 
19:48:54 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://trunk.mad-scientist.club/)" 
19:48:54 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://elekk.xyz/)" 
19:48:54 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://trunk.mad-scientist.club/)" 
19:48:54 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://trunk.mad-scientist.club/)" 
19:48:54 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://opensocial.africa/)" 
19:48:54 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://trunk.mad-scientist.club/)" 
19:48:54 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://opensocial.africa/)" 
19:48:54 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://sn.angry.im/)" 
19:48:54 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.0.0 (Mastodon/2.3.2; +https://pentacl.es/)" 
19:48:54 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://elekk.xyz/)" 
19:48:54 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.0.0 (Mastodon/2.3.2; +https://kelnet.social/)" 
19:48:54 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://mastodon.sdf.org/)" 
19:48:54 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/2.2.2 (Mastodon/1.6.1 +27 (bf7ce63); +https://is.a.qute.dog/)" 
19:48:55 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://bsd.network/)" 
19:48:55 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://sn.angry.im/)" 
19:48:55 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://mastodon.sdf.org/)" 
19:48:55 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.0.0 (Mastodon/2.2.0; +https://mess.casa/)" 
19:48:55 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/2.2.2 (Mastodon/1.6.1 +27 (bf7ce63); +https://is.a.qute.dog/)" 
19:48:55 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://bsd.network/)" 
19:48:55 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.0.0 (Mastodon/2.3.3; +https://toot.cafe/)" 
19:48:56 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.0.0 (Mastodon/2.2.0; +https://mess.casa/)" 
19:48:56 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.0.0 (Mastodon/2.3.3; +https://toot.cafe/)" 
19:48:56 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://chat.cdstm.ch/)" 
19:48:56 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://chat.cdstm.ch/)" 
19:48:57 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://cmx.im/)" 
19:48:57 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://cmx.im/)" 
19:48:58 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.0.0 (Mastodon/2.3.3; +https://sdfn-01.ninjawedding.org/)" 
19:48:58 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://mastodonten.de/)" 
19:48:58 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/2.2.2 (Mastodon/2.0.0; +https://pleasehug.me/)" 
19:48:58 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.0.0 (Mastodon/2.3.3; +https://sdfn-01.ninjawedding.org/)" 
19:48:58 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://mastodonten.de/)" 
19:48:58 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/2.2.2 (Mastodon/2.0.0; +https://pleasehug.me/)" 
19:48:58 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/2.2.2 (Mastodon/2.0.0; +https://pleasehug.me/)" 
19:48:58 +0000] "GET / HTTP/1.1" 200 76 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.111 Safari/537.36 OPR/46.3.2246.127744" 
19:48:59 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.0.0 (Mastodon/2.2.0rc2; +https://edge.mstdn.jp/)" 
19:48:59 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.0.0 (Mastodon/2.3.1; +https://weirdgone.pro/)" 
19:48:59 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://social.nasqueron.org/)" 
19:48:59 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://social.nasqueron.org/)" 
19:48:59 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://coisland.xyz/)" 
19:49:00 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.0.0 (Mastodon/2.3.3; +https://mstdn.beer/)" 
19:49:00 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.0.0 (Mastodon/2.3.1; +https://weirdgone.pro/)" 
19:49:00 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.0.0 (Mastodon/2.2.0rc2; +https://edge.mstdn.jp/)" 
19:49:00 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/2.2.2 (Mastodon/2.0.0; +https://dragon.style/)" 
19:49:00 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://coisland.xyz/)" 
19:49:00 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/2.2.2 (Mastodon/2.1.3.-vcity; +https://vcity.network/)" 
19:49:00 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.0rc3; +https://sleeping.town/)" 
19:49:00 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/2.2.2 (Mastodon/2.1.3.-vcity; +https://vcity.network/)" 
19:49:01 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.0.0 (Mastodon/2.3.3; +https://mstdn.beer/)" 
19:49:01 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.0.0 (Mastodon/2.3.3; +https://weirder.earth/)" 
19:49:01 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/2.2.2 (Mastodon/2.0.0; +https://dragon.style/)" 
19:49:01 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.0rc3; +https://sleeping.town/)" 
19:49:01 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/2.2.2 (Mastodon/2.1.2; +https://nethole.us/)" 
19:49:01 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://hostux.social/)" 
19:49:01 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://hostux.social/)" 
19:49:01 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://beepboop.one/)" 
19:49:01 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.0.0 (Mastodon/2.3.3; +https://weirder.earth/)" 
19:49:01 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1rc3; +https://lgbtq.cool/)" 
19:49:01 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1-mek; +https://social.mecanis.me/)" 
19:49:01 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://beepboop.one/)" 
19:49:01 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://tenforward.social/)" 
19:49:01 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/2.2.2 (Mastodon/2.0.0; +https://dragon.style/)" 
19:49:02 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.0.0 (Mastodon/2.2.0; +https://mastodon.hong.io/)" 
19:49:02 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/2.2.2 (Mastodon/2.1.2; +https://nethole.us/)" 
19:49:02 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1rc3; +https://lgbtq.cool/)" 
19:49:02 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1-mek; +https://social.mecanis.me/)" 
19:49:02 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://mathstodon.xyz/)" 
19:49:02 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.0.0 (Mastodon/2.2.0; +https://mastodon.hong.io/)" 
19:49:02 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.0.0 (Mastodon/2.3.3; +https://mstdn.beer/)" 
19:49:02 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://mathstodon.xyz/)" 
19:49:02 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/2.2.2 (Mastodon/2.1.3; +https://social.coop/)" 
19:49:02 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1rc1; +https://scifi.fyi/)" 
19:49:02 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/2.2.2 (Mastodon/2.1.3; +https://seacow.social/)" 
19:49:02 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://nulled.red/)" 
19:49:02 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/2.2.2 (Mastodon/2.1.3; +https://social.coop/)" 
19:49:02 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://nulled.red/)" 
19:49:02 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://tenforward.social/)" 
19:49:02 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.0.0 (Mastodon/2.2.0; +https://Mr.Lees.Greater.Hong.Kong.International/)" 
19:49:02 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.0.0 (Mastodon/2.3.3; +https://mastodon.rocks/)" 
19:49:02 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://mstdn.fr/)" 
19:49:02 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://anticapitalist.party/)" 
19:49:02 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.0.0 (Mastodon/2.3.3; +https://mastodon.rocks/)" 
19:49:02 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://mstdn.fr/)" 
19:49:02 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1rc1; +https://scifi.fyi/)" 
19:49:02 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.0.0 (Mastodon/2.2.0; +https://Mr.Lees.Greater.Hong.Kong.International/)" 
19:49:02 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1rc3; +https://monsterpit.net/)" 
19:49:02 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://anticapitalist.party/)" 
19:49:02 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://linuxrocks.online/)" 
19:49:02 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1rc3; +https://monsterpit.net/)" 
19:49:02 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://share.elouworld.org/)" 
19:49:02 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://mstdn.jp/)" 
19:49:02 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.0rc3; +https://selfy.army/)" 
19:49:02 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://share.elouworld.org/)" 
19:49:03 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.0rc3; +https://selfy.army/)" 
19:49:03 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/2.2.2 (Mastodon/2.1.3; +https://seacow.social/)" 
19:49:03 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://ephemeral.glitch.social/)" 
19:49:03 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://haupt.bahnhof.cz/)" 
19:49:03 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.0.0 (Mastodon/2.3.3; +https://mstdn.beer/)" 
19:49:03 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://haupt.bahnhof.cz/)" 
19:49:03 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://koyu.space/)" 
19:49:03 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://ieji.de/)" 
19:49:03 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://ieji.de/)" 
19:49:03 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://koyu.space/)" 
19:49:03 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.0rc5; +https://geeks.one/)" 
19:49:03 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://linuxrocks.online/)" 
19:49:03 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.0rc5; +https://geeks.one/)" 
19:49:03 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://ephemeral.glitch.social/)" 
19:49:03 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://fosstodon.org/)" 
19:49:03 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.0rc3; +https://soc.ialis.me/)" 
19:49:03 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1rc2; +https://icosahedron.website/)" 
19:49:03 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.0rc3; +https://soc.ialis.me/)" 
19:49:03 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://fosstodon.org/)" 
19:49:03 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://social.tcit.fr/)" 
19:49:03 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1rc2; +https://icosahedron.website/)" 
19:49:03 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://mastodon.codingfield.com/)" 
19:49:03 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://mstdn.jp/)" 
19:49:04 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://social.tcit.fr/)" 
19:49:04 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://mastodon.codingfield.com/)" 
19:49:04 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://cybr.es/)" 
19:49:04 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://cybr.es/)" 
19:49:04 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://campaign.openworlds.info/)" 
19:49:04 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://hex.bz/)" 
19:49:04 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://campaign.openworlds.info/)" 
19:49:04 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://writing.exchange/)" 
19:49:04 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://todon.nl/)" 
19:49:04 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://functional.cafe/)" 
19:49:04 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://tiny.tilde.website/)" 
19:49:04 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://functional.cafe/)" 
19:49:04 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://writing.exchange/)" 
19:49:04 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://todon.nl/)" 
19:49:04 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://slime.global/)" 
19:49:04 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.0.0 (Mastodon/2.3.3; +https://social.weho.st/)" 
19:49:04 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://framapiaf.org/)" 
19:49:04 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://mamot.fr/)" 
19:49:04 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://tiny.tilde.website/)" 
19:49:04 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://framapiaf.org/)" 
19:49:04 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://hex.bz/)" 
19:49:04 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://slime.global/)" 
19:49:04 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.0.0 (Mastodon/2.3.3; +https://social.weho.st/)" 
19:49:04 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://mamot.fr/)" 
19:49:04 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://screech.social/)" 
19:49:04 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.0.0 (Mastodon/2.3.3; +https://mastodon.conxtor.com/)" 
19:49:04 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.3.3; +https://switter.at/)" 
19:49:04 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://screech.social/)" 
19:49:04 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.0.0 (Mastodon/2.3.3; +https://mastodon.conxtor.com/)" 
19:49:04 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://lgbt.io/)" 
19:49:05 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.3.3; +https://switter.at/)" 
19:49:05 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://lgbt.io/)" 
19:49:05 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.0.0 (Mastodon/2.3.3; +https://toot.cat/)" 
19:49:05 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.0.0 (Mastodon/2.3.3; +https://mastodon.srv.hagen.coffee/)" 
19:49:05 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://mastodon.eifelcoworking.space/)" 
19:49:05 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.0.0 (Mastodon/2.3.3; +https://mastodon.srv.hagen.coffee/)" 
19:49:05 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://mastodon.eifelcoworking.space/)" 
19:49:05 +0000] "GET / HTTP/1.1" 200 76 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.111 Safari/537.36 OPR/46.3.2246.127744" 
19:49:06 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://knzk.me/)" 
19:49:06 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.0.0 (Mastodon/2.3.3; +https://toot.cat/)" 
19:49:07 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.1; +https://knzk.me/)" 
19:49:07 +0000] "GET / HTTP/1.1" 200 76 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.111 Safari/537.36 OPR/46.3.2246.127744" 
19:49:09 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.0rc5; +https://horsecr.app/)" 
19:49:09 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.0rc5; +https://horsecr.app/)" 
19:49:09 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.3.0 (Mastodon/2.4.0; +https://pawoo.net/)" 
19:49:09 +0000] "GET / HTTP/1.1" 200 76 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.111 Safari/537.36 OPR/46.3.2246.127744" 
19:49:10 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.1.1 Safari/605.1.15" 
19:49:10 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.3.0 (Mastodon/2.4.0; +https://pawoo.net/)" 
19:49:10 +0000] "GET /favicon.ico HTTP/1.1" 404 143 "https://test.ondrovo.com/index.php" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.1.1 Safari/605.1.15" 
19:49:22 +0000] "HEAD /index.php HTTP/1.1" 200 0 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://eldritch.cafe/)" 
19:49:22 +0000] "GET /index.php HTTP/1.1" 200 76 "-" "http.rb/3.2.0 (Mastodon/2.4.0; +https://eldritch.cafe/)" 
19:49:34 +0000] "GET / HTTP/1.1" 200 76 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.111 Safari/537.36 OPR/46.3.2246.127744" 
19:49:59 +0000] "GET / HTTP/1.1" 200 76 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.111 Safari/537.36 OPR/46.3.2246.127744" 
19:50:36 +0000] "GET / HTTP/1.1" 200 76 "https://chaos.social/web/accounts/21070" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.117 Safari/537.36" 
19:50:36 +0000] "GET /favicon.ico HTTP/1.1" 404 200 "https://test.ondrovo.com/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.117 Safari/537.36" 

It's may not be a huge deal now, but if the network grows and this keeps happening, it might be problematic. Consider when eg gargron boosts a toot - basically the entire fediverse will query that page within seconds to minutes (to make thumbnails nobody will even look at unless they open the toot in the detailed view).

@Gargron

This comment has been minimized.

Member

Gargron commented Jun 12, 2018

To those suggesting that the sending server provide the link preview:

  • Can the sending server be trusted about that?
  • Does the sending server know what we want from a link? Think Pleroma vs Mastodon vs Pixelfed vs Misskey. Think OpenGraph vs OEmbed vs some technology that doesn't exist yet but will in the future
@ashfurrow

This comment has been minimized.

Collaborator

ashfurrow commented Jun 12, 2018

Can the sending server be trusted about that?

Yeah that's for sure been my concern. We've seen instances running malicious code modify payloads when federating before.

@MightyPork

This comment has been minimized.

Contributor

MightyPork commented Jun 12, 2018

@baby-gnu

This comment has been minimized.

baby-gnu commented Jul 5, 2018

Maybe the preview could be delayed until someone select the toot for display?

This way, each server will query the URL only when one of it's own users display the toot, human does the randomised delaying.

@Tagadda

This comment has been minimized.

Tagadda commented Jul 5, 2018

Can we attach the preview to the toot as we attach custom emoji and media ?

This way, bots could even create embed view, or enriched toots. (as embed stuff on Discord)

@lfuelling

This comment has been minimized.

Contributor

lfuelling commented Jul 5, 2018

Has anyone ever tried this out on a large scale?

I can't believe that the requests would be enough to cause a DoS.

@Gargron

This comment has been minimized.

Member

Gargron commented Jul 5, 2018

It's not quite a DoS but it can saturate a small web server that only has a few threads to work with. So it's a problem.

@MightyPork's suggestion is probably the most viable one.

@Gargron Gargron referenced this issue Jul 13, 2018

Closed

Delay link crawling for previews #8015

2 of 2 tasks complete

Gargron added a commit that referenced this issue Aug 25, 2018

Gargron added a commit that referenced this issue Aug 25, 2018

Spread out crawling randomly to avoid DDoSing the link (#8445)
* Spread out crawling randomly to avoid DDoSing the link

Fix #4486

* Remove trailing whitespace

kyori19 added a commit to kyori19/mastodon that referenced this issue Sep 20, 2018

Spread out crawling randomly to avoid DDoSing the link (tootsuite#8445)
* Spread out crawling randomly to avoid DDoSing the link

Fix tootsuite#4486

* Remove trailing whitespace
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment