Kategorien
PHP

PHP XML toArray Funktion SimpleXMLElement

Die einfache Methode

Zum Parsen von XML kann man die folgende Funktion verwenden, die erstaunlich gut funktioniert 🙂 Der Trick ist, die Daten erst nach Json und dann zurück in ein Array zu wandeln

class xmlArray extends SimpleXMLElement {

      public final function toArray ()
     {
         $json = json_encode($this);
         return  json_decode( $json,TRUE );
    }
}
$xml = new SimpleXMLElement ("<?xml ......>");
$array = $xml->toArray();
Kategorien
PHP

PHPUnit Tests Web Interface für Kunden mit VisualPHPUnit

Wenn man seinen Kunden eine einfache Weboberfläche zum Ausführen von PHPUnit Tests bereit stellen will, kann man auf das sehr gute und einfach zu installierende VisualPHPUnit zurückgreifen.

Kategorien
HTML5

Parallax Effekt

Eine faszinierender Effekt, in dem sich ohne Flash nur mit HTML5 der Vordergrund unterschiedlich schnell bewegt im Vergleich zum Mittel- bzw. Hintergrund.

Bsp gefällig? egopop, unit51, stephband

Die Bibliothek zum Erstellen eigener Webseiten gibt es hier. Achtung, es wird zwingend jQuery in einer niedrigen Version (1.2.6) benötigt, es kann also zu Problemen kommen in manchen Fällen.

Kategorien
Apache Webserver WordPress

WordPress Sicherheit: sicheres Login

Die sicherste Methode seinen Block zu schützen vor unerlaubten Login ist die Verwendung einer .htpasswd Authentifizierung.

Die Standard Login Seite von WordPress ist nicht sicher, weil Hacker Programme besitzen, die wahrlos Passwörter ausprobieren. Wenn dann noch der Login Namen bekannt ist, weil bei WordPress der Namen des Authors unter den meisten Blog Posts steht, sollte man Wert auf Sicherheit legen.

Auf jeden Fall sollten die automatischen Fehlermeldungen abgeschaltet werden bei falschen Passwort oder falschem Login, welche gefährliche Hinweise geben. Dafür muss nur in die functions.php folgender Code eingegeben werden:

add_filter( 'login_errors', create_function('$a', "return null;"));

Ich empfehle einen .htpasswd Schutz für das /wp-admin/ – Verzeichnis anzulegen.

Die .htaccess Datei gehört auch in das Root – Verzeichnis, bspw:

<Files "wp-login.php">
AuthName "backend"
AuthType Basic
AuthUserFile Root-Pfadwordpress/.htpasswd
require valid-user
</Files>

Der notwendige Root-Pfad kann folgender Maßen bestimmt werden:

echo getcwd(); 

In die .passwd kommen Login und passwort in gehachter Form. Am besten den htpasswd Generator dafür benutzen und die Daten vorher notieren.

Die Leserechte sollten auf 0444 gesetzt werden für diese beiden Dateien, damit Sie nicht überschrieben oder gelöscht werden können.

Sinnvoll ist auch die Leserechte für kritische Dateien und alle php-Dateien einzuschränken in der „Haupt“ .htaccess:

<FilesMatch "(\.htaccess|\.htpasswd|wp-config\.php|liesmich\.html|readme\.html)">
  order deny,allow
  deny from all
</FilesMatch>

Dies ist besonders wichtig, um Hacker-Bots abzuwähren, die folgender Maßen vorgehen:

Sie suchen im Netz auf Seiten nach bestimmten WordPress-Seiten und verwendeten unsicheren Plugins, z.B. habe ich solche Anfragen protokoliert, was auf Sicherheitslücken der Plugins hindeutet:

"wp-content/themes/clockstone/readme.txt" 
"wp-content/plugins/complete-gallery-manager/readme.txt"

(Diese Themes bzw. Plugins werden bei nicht benutzt)

Kategorien
JavaScript

Javascript confirm

Mit dem Javascript Confirm-Snippet kann elegant eine Sicherheitsabfrage eingefügt werden z.B. in Backendbereiche, die kritische Optionen ausführen und bevor der User eine Bestätigung der zu ausführenden Aufgabe tätigen muss:

<a href="deleteAll.php" onclick="return confirm('Möchtest Du diese schwerwiegende Option wirklich ausführen?')">Test</a>
Kategorien
PHP

PHP einfacher Textvergleich

Man kann mittels PHP einfach einen Prozentsatz berechnen, wie gleich 2 Texte bzw. Dateien sind. Dabei wird ein Wert von 0 bis 1 berechnet, mit 1 = Texte sind gleich und 0 für keine Ähnlichkeiten.  Ab PHP4 verfügbar.

$stringOk = file_get_contents("file1.dat");
$stringNotOk = file_get_contents("file2.dat");
if(strlen($stringOk))
{
echo  similar_text($stringOk, $stringNotOk)/  strlen($stringOk);
}
Kategorien
Java

Java Corba Client Server Kommunikation

Corba (Common Object Request Broker Architecture) ist vergleichbar mit RMI, nur komplizierter und umfänglicher, was auch der Grund ist, warum es in der Praxis nur eine kleine Nische einnimmt.

Aufbauend auf einer Middleware (ORB – Object Request Broker), die die Service verwaltet und für die Authentifikation der Benutzer zuständig ist, kann der Benutzer Services nutzen, die auf einem anderen PC laufen. Das System hat folgende Vorteile:

  • betriebsystemunabhängig
  • programmiersprachenunabhängig, durch die IDL (Interface Definition Language), mit dieser Schnittstelle können die Benutzer mit der Middleware kommunizieren
  • skaliebar, Dienste können problemlos repliziert und Ressourcen (Server) hinzugefügt werden, lose Bindung der Services
  • migrierbar, da der ORB die Dienste über den Namen und nicht über die IP verwaltet, was bei URLs natürlich genauso ist
  • nebenläufig, Prozesse laufen in eigenen Threads
  • robust, durch zentrales Failure Handling
  • verbindungslos, Service kann zu einem beliebigen Zeitpunkt genutzt werden, beliebig oft
Kategorien
Java

Java RMI Client Server Kommunikation

Über eine zentrale Registry melden sich Client und Server an. Dieser MArktplatz oder ORB (Object Request Broker) verwaltet die Dienste und vergibt die Zuschläge für die Nutzung der registrierten Dienste.

Kategorien
Java

Java RPC/Reflection Client Server Kommunikation

Das Parkhausbeispiel unter Verwendung eines RPC (Remote Procedure Call). Dabei wird über Reflection die Klasse auf dem Server zur Laufzeit instanziiert und eine beliebige Methode mit Parametern aufgerufen, die der Client bestimmen kann.

Kategorien
Java

Java Client/Server Kommunikation Socketverbindung

Das Parkhaus Besipiel unter Verwendung einer Socketverbindung über einen Port.