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.

Kategorien
Diverses

swdirekt.de Bewertung Erfahrungsbericht

Gerade habe mir einen höhenverstellbaren Tisch gekauft bei swdirekt.de und wurde bitter enttäuscht vom Kundenservice.

  1. Beim Kaufvorgang des Tisches ist mir eine PHP Fehlermeldung angezeigt worden mit Root Pfad und allem, was ein Einfallstor für Hacker darstellt und mich über die Sicherheit meiner Daten zweifeln lässt.
  2. Nach kurzem hinsehen habe ich erkannt, das der Shop eine xt:Commerce Version von 2004 nutzt, inkl. aller Sicherheitslücken, die seit dem aufgetreten sind.
  3. Beim Kauf habe ich Zahlung auf Rechnung ausgewählt, weil ich kein Vertrauen in einen solchen Laden hatte.Der Abschluss lief ohne Probleme. Daraufhin hat mich ein Mitarbeiter angerufen und mir gesagt, dass Zahlung auf Rechnung nicht möglich sei für Neukunden und doch bitte vorher überweisen sollte. Klingt schon irgendwie unseriös, ist ja nicht so schwer programmieren so was. Naja, Paypal hat ja Käuferschutz, also Geld geschickt. Der Käufer hat mir bei schneller Zahlung eine Lieferung innerhalb einer Woche versprochen, also schnell das Geld hin. Daraufhin kam erstmal nichts und erst auf Nachfrage nach 2 Wochen die Message: Geld ist da , wird organisiert.
  4. Nächstes Ding war dann, dass mein  echt teurer Tisch (über 600€) per Spedition zu mir versendet werden sollte. Als die Spedition anrief, habe ich erfahren, dass der Shop so nett war, den billig Versand bis vor die Tür zu ordern. Was für mich heißt gut 50kg Tisch in den 5ten Stock zu heben.
  5. Auf Nachfrage beim Shop auf diesen Missstand war nur zu hören, das steht in den AGBs drin. Die Dame meinte frech zu mir, sie würde immer die AGBs lesen, wenn sie etwas bestellt, wieso ich das nicht machen würde. Selbst das Argument, ich hätte mich für die Zahlung per Vorkasse breitschlagen lassen, hat nicht gefruchtet. Am Ende musste ich meinen Tisch selber hochtragen.

Fazit: Ich bestelle nichts mehr bei swdirekt.de.