<?php
 
/**
 
 * File containing example 5(check referer with "www" and without "www") use DefensiveAttack.
 
 *
 
 * @package     DefensiveAttack
 
 * @version     1.0.0
 
 * @copyright     Copyright (C)2006 TheLordOfWeb. All rights reserved.
 
 * @license     http://www.gnu.org/copyleft/gpl.html GNU Public License
 
 * @filesource
 
 */
 
 
//Load class DefensiveAttack
 
require("class.php5.DefensiveAttack.php");
 
 
/**
 
 * MyDefensiveAttack class for php 5.x
 
 *
 
 * 
 
 * @package     MyDefensiveAttack extends by DefensiveAttack
 
 * @author         TheLordOfWeb    <http://thelordofweb.atspace.com/>
 
 * @version     1.0.0
 
 * @copyright     Copyright (C)2006 TheLordOfWeb. All rights reserved.
 
 * @license     http://www.gnu.org/copyleft/gpl.html GNU Public License
 
 * @example        example_5.php
 
 */
 
class MyDefensiveAttack extends DefensiveAttack {
 
    
 
    /**
 
     * My host name 2 with "www" or not
 
     *
 
     * @access protected
 
     * @var string
 
     */
 
    protected   $mMyHostName2   =   '';
 
    
 
    /**
 
     * MyDefensiveAttack constructor
 
     *
 
     * @access public
 
     * @param  string hostname
 
     * @see    parent::__construct()
 
     */
 
    public function __construct($myHostName  =  null) {
 
        
 
        parent::__construct($myHostName);
 
 
        $pos    =   stripos($this->mMyHostName,'www.');
 
        
 
        $this->mMyHostName2   =   (false !== $pos AND 0 === (int)$pos) ? substr($this->mMyHostName,4) : "www." . $this->mMyHostName;
 
        
 
    }
 
    
 
    /**
 
     * Check referer for my url address with "www" and without "www"
 
     *
 
     * @access public
 
     * @return bool
 
     */
 
    public function CheckReferer() {
 
 
        return (strcmp($this->mMyHostName,$this->mReferer) == 0 OR strcmp($this->mMyHostName2,$this->mReferer) == 0) ? true : false;
 
        
 
    }
 
    
 
}
 
 
//Create object
 
$def_attack     =   new MyDefensiveAttack('mysite.com');
 
 
//Check referer if I do not want direct access to my site
 
if (false === $def_attack->CheckReferer()) {
 
    print "Access deny " . '<a href="example_5.php" >Use link</a>';
 
} else {
 
    print "Access allow";
 
}
 
 
 
?>
 
 
 |