Login   Register  
PHP Classes

File: index.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Nico den Boer  >  Anti-Harvest Download  >  index.php  >  Download  
File: index.php
Role: Example script
Content type: text/plain
Description: Usage example
Class: Anti-Harvest Download
Serve files for download preventing harvesting
Author: By
Last change:
Date: 3 years ago
Size: 2,328 bytes


Class file image Download
 * <p>
 *   Script to safely serve a file for download.
 *   And, most important, block downloads for bots to save bandwidth on our server
 * </p>
 * <p>
 *   No harvesting allowed!
 * </p>
 * <p>
 *   Usage:
 * </p>
 * <ul>
 * <li>Upload this script to your webserver, for example in /var/www/yoursite.com/download/</li>
 * <li>Fill in the config section</li>
 * <li>Add links to your web pages, like <a href="http://www.yoursite.com/download/?file=test.mp3">Download</a></li>
 * <li>Use a good tool like <a href="http://www.mrunix.net/webalizer/">webalizer</a> to analyze the traffic</a></li>
 * <li>Some time, keep a close look on low level to your web server logs. Check all succeeded downloads, to
 *     be sure there are no more bots downloading your prohibited files.</li>
 * <li>If you have <a href="http://redis.io/"><redis</a> (in Ubuntu repository as redis-server) installed on
 *     your server, then this script can also keep track of the number of downloads, so users which are
 *     harvesting but not identified as bots will be blocked too.
 *     See <a href="http://github.com/nrk/predis/">predis</a> for PHP client</li>
 * </ul>
 * <p>
 *   This script written using the (free and OpenSource) ShishKabab PHP IDE,
 *   <a href="http://www.shishkabab.net/skphpide.html">shishkabab.net</a>
 * <p>
 * @author Nico den Boer <nico@nicodenboer.com>, <www.nicodenboer.com>, <www.denboer-ims.nl>
 * @version 1.0.1
 * @package AntiHarvestDownload

 * Class with protoctor
require(dirname(__FILE__) . '/class.protector.inc.php');

$p = new protector();

//    Path where the files to download actually are

//    If you like, set user agents known as bots.
//    See constructor of class about the format of the array
// $p->setAgents(array(
//     ));

//    If you like, set hosts known as bots
//    See constructor of class about the format of the array
// $p->setHosts(array(
//     ));

// If you like, you can use redis for memcaching to detect harvesting:
// $p->setPredis(
//     '/tmp/libs/predis/Predis.php',
//     5 * 60, // all visits of more than 5 minutes back will be ignored
//     5 // if >5 visits during the timeframe above (5 minutes), then we have found a bot
//     );

//    In this case, pay special attention to line 240 in the class file!