WordPress логване на $_POST requests

Преди време открих едно малко и полезно парченце код, което ви позволява да записвате всички $_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:) Ако човек се поразрови, има доста възможности…

0 comments |



Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
Your e-mаil address will never be showed.


[ optimiced.com е виртуалният дом на Мишел, уеб/графичен дизайнер от слънчева прашна София | powered by WP & DreamHost | also available in English ]

0.574 / 27 / 24.5