Wordpress: Remote Admin Reset Password Exploit | Wie es dazu kommen konnte
Wieder einmal eine Lücke in Wordpress. Ich mach mir mal die Mühe und zeige die Umstände wie es dazu kommen konnte.
Den ganzen Beitrag lesen...
Wieder einmal eine Lücke in Wordpress. Ich mach mir mal die Mühe und zeige die Umstände wie es dazu kommen konnte.
Den ganzen Beitrag lesen...
Die cURL Bibliothek wir gern benutzt um Transfers in Netzwerken zu machen. Auch PHP hat ein cURL Modul welches viele Funktionen von cURL bietet. Um cURL zu nutzen muss dazu erst ein cURL Handle erzeugt werden, dem dann Optionen übergeben werden welche den Transfer beeinflussen.
Wer viele dieser Handles erstellen muss wäre nach meinem Benchmark schneller wenn er sich einen cURL Template Handle erstellt und diesen dann nur noch mit curl_copy_handle() kopiert und fehlende Optionen hinzufügt. Auf diese Weise kann man einen cURL Handle etwa 40% schneller erschaffen als es jedes mal komplett neu möglich ist.
Wer den Benchmark sehen will, einfach weiterlesen.
Den ganzen Beitrag lesen...
Gestern habe ich etwas über "static" Variablen in Funktionen geschrieben, heute kommt gleich eine praktische Anwendungsmöglichkeit.
Wer in seinen Scripten/Programmen oft viele Objekte erzeugen muss, der könnte dies locker 10% bis 30% schneller machen indem man fertige Objekte einfach cacht.
Wie das geht und was es bringt, einfach weiterlesen.
Den ganzen Beitrag lesen...
Wer in der PHP Dokumentation nach 'static' sucht wird diesen Artikel finden: http://www.php.net/manual/de/language.oop5.static.php
Was manche jedoch nicht wissen, das Wort 'static' kann auch in normalen Funktionen verwendet werden kann und dort eine ganz andere Bedeutung.
Den ganzen Beitrag lesen...
PHP ist eine dynamisch getypte Sprache. Der Wert einer Variable kann vom String zum Integer oder Float werden. Manchen Programmieren gefällt dies gar nicht, anderen umso mehr. Doch was viele nicht genau wissen ist, wie in PHP die einzelnen Typen zu boolean castet (convertiert).
Man findet die Antworten zwar in der PHP Dokumentation, doch damit sich das keiner antun muss dort extra zu suchen, nachfolgend ein kleines Script dass uns die Antworten liefert.
Den ganzen Beitrag lesen...
Viele die meinen PHP-Pennerbot nutzen, oder die Klasse verwenden wird folgende Nachricht sicher freuen. Ich habe eine Klasse geschrieben die die aktuellen Pennergame Captchas brechen kann.
Den ganzen Beitrag lesen...
Ich hatte letztens das "Problem" ein Array/Liste in PHP Global zugänglich zu machen. Am liebsten natürlich noch dass man dessen Werte nicht verändern kann, es also mehr oder weniger konstant ist.
Bei den aktuellen Arbeiten an einer Seite stieß ich auf folgendes Problem:
Beim Upload von Dateien soll eine maximale Dateigröße nicht überschritten werden.
Dazu fielen mir mehrere Möglichkeiten ein um diesen Check zu realisieren.
Da die ersten beiden Fälle keinen Sinn machen oder zu Fehleranfällig sind , hab ich den letzten Ansatz weiter verfolgt und musste dabei folgendes feststellen:
Keiner der getesteten Browser hat sich während eines POST File Uploads dazwischenreden lassen.
Den Server habe ich einen 302 Header an die Browser senden lassen, während diese am Hochladen waren. FF und Opera haben stur Ihre "Connection Resettet" Fehlermeldung gezeigt und sich nicht um den 302er Haeder gekümmert.
Doch einzig Opera hat, beim, in dieser Situation, Standardkonformen 413er Header eine vom Server gesendete Seite angezeigt.
Diese Erkentnisse lassen mich jetzt die Maximale POSTsize auf ein relativ hohen Wert einstellen, der hoffentlich von nur recht wenigen Nutzern wirklich jeh überboten wird.
Heute hatte ich mal wieder die Ehre einen Debian Etch Webserver aufzusetzten. Standardmäßig mit apt-get install mysql-server-5.0 Mysql installiert, das neueste stabile phpMyadmin in /var/www entpackt und eingerichtet. Da Mysql5 unter Etch bei der Installation standardmäßig kein root Passwort abfragt wollte ich das schnell per phpMyAdmin machen musste jedoch feststellen dass dies nicht ging.
In der phpMyAdmin Dokumentation fand sich den auch der Grund, der Login mit leeren Passwörtern ist ab Version 3 per default nicht gestattet:
http://www.phpmyadmin.net/documentation/#config
Die Einstellung um dies zu deaktivieren lautet:
Allow attempt to log in without password when a login with password fails. This can be used together with http authentication, when authentication is done some other way and phpMyAdmin gets user name from auth and uses empty password for connecting to MySQL. Password login is still tried first, but as fallback, no password method is tried.
Ich finde diese Einstellung macht Sinn da es sonst bei einer unbewussten Installation von Mysql einem möglichen Angreifer ein unnötiges Tor öffnet.
Dieser Artikel soll der Anfang einer kleinen Lighttpd Artikelreihe sein und hoffentlich so manche Fragen über diesen Webserver aus der Welt schaffen.
In diesem ersten Artikel geht es um die Eigenschaften die Lighttpd anders macht als der Apache2.