Преди време открих едно малко и полезно парченце код, което ви позволява да записвате всички $_POST събития във вашия WordPress блог.

Това може да бъде полезно, ако вашият WP-базиран сайт е подложен на хакерска атака. Или ако искате да разберете, откъде идва основният поток от спам (IP адреси).

След като ползвах този код за известно време (и той се оказа много полезен — в моя случай, аз намерих начин да блокирам голяма част от спамботовете директно), ми хрумна и да го подобря малко.

Оригиналният код не показваше timestamps на записваните събития. Аз добавих тази функционалност, като запазих кода почти непроменен. Ето я и update’натата версия:

$posty_ip = $_SERVER['REMOTE_ADDR'];
$the_file = $_SERVER['SCRIPT_NAME'];
$browser = $_SERVER['HTTP_USER_AGENT'];
$date_sub = date('Y-M-d @ H:i (O)');
if ( $posty_ip != "123.123.123.12" && $posty_ip != "123.123.123.23" ) {
  if ( !empty($_POST) ) {
    $fp = fopen( '/home/path-to-log/logfile.html', 'a' );
    foreach( $_POST as $key => $value ) {
	fwrite( $fp, $key.' = '.$value." <br />\n" );
	}
    fwrite( $fp, "file = ".$the_file." <br />\n" );
    fwrite( $fp, "ip = ".$posty_ip." <br />\n" );
    fwrite( $fp, "agent = ".$browser." <br />\n" );
    fwrite( $fp, "date = ".$date_sub." <br />\n" );
    fwrite( $fp, '================================================'." <br /><br />\n\n" );
    fclose( $fp );
  }
}

Реших също така да добавя и знаци за нов ред, тъй като за мен беше по-полезно да форматирам лог файла в базисен HTML формат.

Инструкциите къде (и как) да поставите това парченце код могат да бъдат намерени на оригиналното място. Все пак, добре е да повторя още веднъж: Бъдете внимателни, къде ще поставите самия лог файл на сървъра!

И още — препоръчвам (в случай, че администрирате блога си през http, не през https) да използвате плъгин, който криптира паролите (може да го свалите от wordpress.org). Това не е задължително, но винаги, когато е възможно, е добре да се пращат паролите криптирани, а този плъгин го позволява и без да ползвате https.

Enjoy! :-)

UPDATE (2009/05/01): Промених още малко скриптчето, сега може да записва и user agents:) Ако човек се поразрови, има доста възможности…

Leave a Reply

Your email address will not be published. Required fields are marked *