URI-Sperre mit PHP statt htaccess

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

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
0

Ein eigenes CMS programmieren I.

In diesem mehrteiligen Workshop entwickeln Sie ein eigenes kleines Content Management System mit einer Flatfile Datenbank und Markdown Parser - inkl. Download.

Ein eigenes CMS programmieren II.

In der zweiten Hälfte des Workshops, geht es darum, das kleine CMS noch weiter auszubauen und vollwertig zu machen. Sie binden die Template-Engine Smarty ein.