Teaser URI-Sperre mit PHP statt htaccess

URI-Sperre mit PHP statt htaccess

Für mehr Kontrolle beim sperren von unliebsamen URI Aufrufen sorgt dieses PHP-Script

home » php » unliebsame uri aufrufe sperren mit php statt htaccess

Inhalt

URI-Aufrufe mit PHP sperren

Die Sperrung von unliebsamen URI in die Webseite hinen habe ich ja bereits gezeigt, mit Hilfe der Sperre in der htaccess werden unliebsame Besucher bereits vor Eintritt in die Webseite gesperrt. Der Nachteil der Methode wa jedoch, das nur wenig Kontrolle möglich ist, denn um zu prüfen welcher Besucher abgewiesen wurde, muss das Serverlog eingesehen werden.

Die Variante mit PHP-Script tut im wesentlichen genau das gleiche, jedoch ist das PHP-Script noch in der Lage unliebsame Gäste in einem Logfile zu protokollieren.

<?php
$excluded_uri = <<<EOD
{domain.tld[/]path[/]}
{domain.tls[/]tag[/]}
{th1s_1s_a_4o4.html}
{[/]xmlrpc}
{[/]tag[/]}
{[/]wp-admin[/]}
{[/]wp-content[/]}
{[/]wp-includes[/]}
{[/]wp[/]}
{[/]_assets[/]}
{[\.]env}
{[\.]php}
EOD;

    $file_for_log = "log-".date('d').".txt";
    $grund        = "";

    foreach(explode("\n", $excluded_uri) as $regex_number => $regex_pattern) 
    {
        if (preg_match($regex_pattern, $_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']))
        {
        $grund = "Path excluded Rule =>>".$regex_pattern."<<=";
            $output = date('Y-m-d H:m:s').'  >> Error 410/404 '.$grund.'  -  '.$_SERVER['REMOTE_ADDR']."\n";

            file_put_contents($file_for_log, $output, FILE_APPEND | LOCK_EX)!==false;

            http_response_code(410);

            header("HTTP/1.1 410");
            echo '<?xml version="1.0" encoding="iso-8859-1">';
            echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">';
            echo '<html xmlns="https://www.w3.org/1999/xhtml">';
            echo '<head>';
            echo '<meta name="robots" content="noindex, follow" />';
            echo '<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">';
            echo '</head>';
            echo '<body>';
            echo '<div class="container">';
            echo '<h1 class="p-5 my-5 text-light rounded" style="background-color: SteelBlue;">Error 410</h1>';
            echo '<p class="lead p-5 m-5">Der Beitrag (URI) wurde gelöscht, bzw. die Suchmaschine wurde mit einem Error 404 angewiesen, diesen Beitrag aus dem Index dauerhaft zu entfernen.</p>';
            echo '<p class="lead p-5 m-5">Sollte es sich um ein persönliches Lesezeichen Ihres Browsers handeln, so können Sie dieses entfernen. Sind Sie der Administrator der verweisenden Webseite, entfernen Sie bitte den Link von Ihrer Seite oder aus dem betreffenden Beitrag oder der Blogroll Ihrer Webseite.</p>';
            echo '<hr>';
            echo '&copy by Oliver Lohse - Administrator - SEO-Toolkit';
            echo '</div>';
            echo '</body>';
            echo '</html>';

            exit;
        }
    }
?>

Code


FlightCMS
2024-01-28
Beitrag,Sortieren,Datum,Titel,ASC,DESC
post