<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Gabriel Weinberg's Blog - Latest Comments in How-to stop most people from spidering your site and stealing content</title><link>http://yegg.disqus.com/</link><description>Startups &amp; stuff...</description><atom:link href="https://yegg.disqus.com/how_to_stop_most_people_from_spidering_your_site_and_stealing_content/latest.rss" rel="self"></atom:link><language>en</language><lastBuildDate>Wed, 16 Sep 2009 07:34:57 -0000</lastBuildDate><item><title>Re: How-to stop most people from spidering your site and stealing content</title><link>http://www.gabrielweinberg.com/blog/2009/09/how-to-stop-most-people-from-spidering-your-site-and-stealing-content.html#comment-16705402</link><description>&lt;p&gt;I should have mentioned initially that these are static sites, like &lt;a href="http://www.ivegotafang.com/" rel="nofollow noopener" target="_blank" title="http://www.ivegotafang.com/"&gt;http://www.ivegotafang.com/&lt;/a&gt; that just involve just static HTML. I could of course still do some session stuff via JS, but what I was trying to say above is this method has worked well in practice for the last few years. I have my logs tailed all the time, so I usually see anything egregious immediately.&lt;/p&gt;&lt;p&gt;In the Apache config, recognized robots currently get sent a redirect to the Pakistani governement site, which is really slow. I've considered doing that for all returns, but just haven't yet. I did that for the reasons you said.&lt;/p&gt;&lt;p&gt;With regards to getting around it, certainly it's pretty easy to do so, and I mentioned Tor at the end of the post. All I can say is repeat that I watch the logs and at least for my site this simple super system deters most. Now maybe that has to do with the nature of the content and if I wanted to add something for say Duck Duck Go I'd have to get more sophisticated.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Gabriel Weinberg</dc:creator><pubDate>Wed, 16 Sep 2009 07:34:57 -0000</pubDate></item><item><title>Re: How-to stop most people from spidering your site and stealing content</title><link>http://www.gabrielweinberg.com/blog/2009/09/how-to-stop-most-people-from-spidering-your-site-and-stealing-content.html#comment-16689694</link><description>&lt;p&gt;Anyone doing serious scraping will just use Tor or other anonymization tactics on their IPs.  If you really want to block them, a couple of suggestions:&lt;/p&gt;&lt;p&gt;-  Tie results to sessions rather than URL parameters.  Tie the session to the IP.  It makes it much harder to go through a result set across the multiple IPs.  In the past, this could cause issues with some users as they came from places like AOL that shifted their IPs, but that is pretty rare now.&lt;br&gt;-  If you DO recognize someone scraping, I would strongly recommend sending back bogus data rather than 404 or some other errors.  In automated systems, that is much more of a pain in the ass to detect that there is a problem.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">robdimarco</dc:creator><pubDate>Tue, 15 Sep 2009 20:50:28 -0000</pubDate></item><item><title>Re: How-to stop most people from spidering your site and stealing content</title><link>http://www.gabrielweinberg.com/blog/2009/09/how-to-stop-most-people-from-spidering-your-site-and-stealing-content.html#comment-16680012</link><description>&lt;p&gt;(2nd attempt at comment, delete if dup)&lt;/p&gt;&lt;p&gt;Just as a first round of (not terribly effective) defense, you can hash your primary key field or URL:&lt;/p&gt;&lt;p&gt;&lt;a href="http://blog.michaelgreenly.com/2008/01/obsificating-ids-in-urls.html" rel="nofollow noopener" target="_blank" title="http://blog.michaelgreenly.com/2008/01/obsificating-ids-in-urls.html"&gt;http://blog.michaelgreenly....&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://stackoverflow.com/questions/67890/whats-the-best-way-to-hash-a-url-in-ruby" rel="nofollow noopener" target="_blank" title="http://stackoverflow.com/questions/67890/whats-the-best-way-to-hash-a-url-in-ruby"&gt;http://stackoverflow.com/qu...&lt;/a&gt;&lt;/p&gt;&lt;p&gt;And the usual first setup step,  limits on port 22, 80, 443 in iptables, still worth mentioning&lt;/p&gt;&lt;p&gt;&lt;a href="http://kevin.vanzonneveld.net/techblog/article/block_brute_force_attacks_with_iptables/" rel="nofollow noopener" target="_blank" title="http://kevin.vanzonneveld.net/techblog/article/block_brute_force_attacks_with_iptables/"&gt;http://kevin.vanzonneveld.n...&lt;/a&gt;&lt;br&gt;&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Gene tani</dc:creator><pubDate>Tue, 15 Sep 2009 18:35:12 -0000</pubDate></item></channel></rss>