{"id":253,"date":"2003-06-22T15:31:12-04:00","date_gmt":"2003-06-22T23:31:12+00:00","guid":{"rendered":"http:\/\/peterjanes.ca\/wordpress\/?p=253"},"modified":"2003-06-22T15:31:12-04:00","modified_gmt":"2003-06-22T23:31:12+00:00","slug":"uh-uh-dude","status":"publish","type":"post","link":"https:\/\/peterjanes.ca\/blog\/2003\/06\/22\/uh-uh-dude\/","title":{"rendered":"Uh-uh,&nbsp;dude"},"content":{"rendered":"<div class='e-content'><p>Just got hit by a poorly-behaved bot, apparently something to do with <a title=\"Dude, Check This Out\" href=\"http:\/\/www.duderesearch.com\/product\/\">this<\/a>, which I&#8217;ve banned outright.  Let&#8217;s look at what it did wrong to deserve this:<\/p>\n\n<ul>\n<li>It doesn&#8217;t have a <samp>User-Agent<\/samp> string.<\/li>\n<li>It doesn&#8217;t send a valid <samp>Accepts<\/samp> header (it was trying to retrieve an RSS file and got HTML).<\/li>\n<li>It doesn&#8217;t recognize <samp>&lt;!DOCTYPE html PUBLIC &#8220;-\/\/W3C\/\/DTD XHTML 1.1\/\/EN&#8221; &#8220;http:\/\/www.w3.org\/TR\/xhtml11\/DTD\/xhtml11.dtd&#8221;&gt;<\/samp>, instead attempting to parse it like a link.<\/li>\n<li>It doesn&#8217;t attempt to throttle its requests or recognize duplicates or errors, making over 30 requests in 8 seconds to 6 URLs, only two of which are valid at all or referred to in links from the files it <em>did<\/em> retrieve.<\/li>\n<\/ul><\/div><div class=\"syndication-links\"><\/div>","protected":false},"excerpt":{"rendered":"Just got hit by a poorly-behaved bot, apparently something to do with this, which I&#8217;ve banned outright. Let&#8217;s look at what it did wrong to deserve this: It doesn&#8217;t have a User-Agent string. It doesn&#8217;t send a valid Accepts header (it was trying to retrieve an RSS file and got HTML). It doesn&#8217;t recognize &lt;!DOCTYPE&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"mf2_syndication":[],"venue_id":0},"categories":[3],"tags":[],"kind":false,"_links":{"self":[{"href":"https:\/\/peterjanes.ca\/blog\/wp-json\/wp\/v2\/posts\/253"}],"collection":[{"href":"https:\/\/peterjanes.ca\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/peterjanes.ca\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/peterjanes.ca\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/peterjanes.ca\/blog\/wp-json\/wp\/v2\/comments?post=253"}],"version-history":[{"count":0,"href":"https:\/\/peterjanes.ca\/blog\/wp-json\/wp\/v2\/posts\/253\/revisions"}],"wp:attachment":[{"href":"https:\/\/peterjanes.ca\/blog\/wp-json\/wp\/v2\/media?parent=253"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/peterjanes.ca\/blog\/wp-json\/wp\/v2\/categories?post=253"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/peterjanes.ca\/blog\/wp-json\/wp\/v2\/tags?post=253"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}