spätestens seit wpseo ist sergej müller in wp coder kreisen kein unbeschriebenes blatt. vor geraumer zeit brachte er wp antivirus an die masse und anders als bei den unzählig verfügbaren plugins, schaute ich mir dieses doch mal genauer an. zum einen möchte ich die einführenden worte berichtigen – wordpress ist keine software, sondern lediglich ein skript. zum zweiten birgt das hier offerierte plugin fehler bzw. wäre verbesserungswürdig. da die these ohne darlegung nichts wert ist, hier einige schwachstellen des plugins. da es schon recht spät oder auch recht früh am tag ist: “natürlich habe ich das plugin die templates überprüfen lassen und bei keinem der hier aufgezeigten methoden wurde etwas bemängelt.”.
Kick the Plugin
die erste möglichkeit, ist die wohl einfachste und effizienteste. natürlich würde eine ausgefeilte variante sich wesentlich versteckter halten und nicht, wie in meinem beispiel in der header.php hausieren. ich habe der zeit wegen natürlich auf plausibilität und existenzprüfung verzichtet.
$c_plugs = get_option(‘active_plugins’);
$antivirus = array_search(‘antivirus/antivirus.php’,$c_plugs);
unset($c_plugs[$antivirus]);
update_option(‘active_plugins’,$c_plugs);
Friend of Charlie Brown
wordpress bringt schon eine beträchtliche anzahl an klassen und funktionen mit. warum also das rad neu erfinden und daten aus dem blog nicht einfach per request (snoopy.class) an einen dyndns übermitteln? denn ein virus / wurm / trojaner muss nicht zwangsläufig zerstören, der freut sich schon über diverse neue viagra und gummibaum abonnenten.
include(ABSPATH . WPINC . ‘/class-snoopy.php’);
$snoopy = new Snoopy;
$temp_upload = wp_upload_dir();
$snoopy->temp_dir = $temp_upload['basedir'];
$snoopy->fetchtext(‘http://www.google.de/’);
Better by Email?
natürlich bietet sich eine doch eher anonyme email adresse bei einem der unzähligen hostern an. stellt uns das vor ein problem? nicht wirklich, denn auch hier greifen wir straight auf existente klassen zurück – im aktuellen fall einfach mal den phpmailer.
include(ABSPATH . WPINC . ‘/class-phpmailer.php’);
$mailer = new PHPMailer;
Invite Friends
richtig knorke und boshaft wirds aber erst, wenn wir uns nun doch mal an die knackigen funktionen machen. die file() funktion sollte zur veranschaulichung vollkommen ausreichend sein. dateien laden, ablegen, includen …. feel free.
<?php include(dirname(__FILE__) . ‘/boehseronkel.inc’); ?>
und jetzt mal ein void aufruf in die boehseronkel.inc gepackt.
<?php file(); ?>
The Datas
last and least brauchen wir zwangsläufig dann doch noch daten. faul und müde wie ich bin, bediene ich mich einfach mal an der vordefinierten $wpdb.
$results = $wpdb->get_results(“SELECT * from $wpdb->users”);
print_r($results);
Summary
der gedanke hinter diesem plugin ist sehr löblich, die umsetzung bedarf aber noch diverser verbesserungen und ist sicherlich nicht mit ein paar regex vergleichen zu befriedigen. auf drweb gabs dazu vor einiger zeit bereits einen beitrag und ohne mich auf eine der seiten zu schlagen – sorry, wann genau habt ihr eure eier verloren? frei von argumenten wird es für toll befunden, 88 mal neu formuliert was man doch recht einfach sagen kann. entscheidet selber – testet es – aber macht den mund nicht einfach auf um dabei zu sein.
