inicio eMail me! Abonnieren

Einträge der Kategorie Programmierung

MySQL root-Passwort zurücksetzen/recovern

Man lernt ja angeblich nie aus – und es ist tatsächlich möglich. Beim Daemon-Start von MySQL kann direkt SQL durchgeschleift werden… unfassbar wie ich finde! Seht selbst:

MySQL root-Pass zurücksetzen

C# Cheat Sheet – Tips und Tricks kompakt

Das mir immerwieder dieselben C# (C Sharp) Fehler unterlaufen, werde ich ein regelmäßig aktualisiertes C# Cheat Sheet anfertigen. Natürlich ist dies individuell auf mich zugeschnitten, aber es könnte manch Anderem ebenso nützlich sein:

C# Cheat Sheet – Tips und Tricks

Updates:
11. Mai ‘09: Code-Highlight, implizierte Variablen


Dateien mit Batchfiles ansprechen und ggf. verarbeiten

Natürlich kann man verschiedene Prozesse, wie z.B. Directorylisting oder Glob-Funktionalität relativ einfach in einer Hochsprache oder sogar einer beliebig anderen interpretierten Sprache abbilden. Doch manchmal sind gute alte Batchfiles schlichtweg komfortabler. Sie lassen sich von fast überall heraus starten, können kleine Helferlein bei Cronjobs bzw. automatisierten Tasks sein und sind zu guter letzt recht einfach zu schreiben.

Der nachfolgende Codeschnipsel soll nur dazu dienen, um zu verdeutlichen, wie effektiv die for-Anweisung in Batch ist:

for /F %%i in ('dir /b /OD C:\*.txt') do call :tuIrgenwasMitDemDateinamen %%i
:tuIrgenwasMitDemDateinamen
echo %1

Nun – was passiert? Der Syntax für die for /F Anweisung lautet wie folgt:

Syntax:
FOR /F ["options"] %%parameter IN ("Text string to process") DO command

Somit wird klar, dass wir durch den Aufruf von ‘dir /b /OD C:\*.txt’ alle TXT-Files als String zurückbekommen. Diese werden Zeilenweise in die Variable %%i gepresst und dann an die “Funktion” :tuIrgenwasMitDemDateinamen übergeben.

heise Security über XSS,CSRF und mehr…!

Nachdem mich einige “Programmierer” von ClanSphere mehrfach beschimpft haben, wie ich denn ach so dreißt eine Anleitung für XSS geben könnte, möchte ich nochmal klarstellen, dass dies alter Kaffee ist. Heise.de hat sich in ihrem Security Center mit XSS, CSRF und weiteren Attacken auseinandergesetzt. Dort wird ausführlich dargelegt, wie Schwachstellen in schlecht programmierten CM Systemen ausgenutzt werden können. Dabei sind nicht nur die “low-budget” CMS verwundbar, sondern auch die “MyIrgendwas” Sites.

Folglich: Artikel sehr zu empfehlen!

Links

heise.de – Security – Einfallstor Browser

XSS Lücke in Clansphere 2008.2

Und wiedereinmal habe ich mich dem Clansphere CMS kurzfristig angenommen, um es wieder durch den Security Wolf zu drehen. Generell natürlich nichts weltbewegendes, aber es erstaunt mich immer wieder, wie anfällig vermeintliche Großprojekte sind. 20-30min brauchte es bis zum XSS, ein paar gekonnte $_GET Suchen über alle Files und ein bisschen Routine JavaScript. (Die betreffende Datei wurde unkenntlich gemacht)


http://www.thesite.de/*********.php?name=">;xsign#

Dabei wird ein alter Bekannter ausgenutzt: die Formulardatenspeicherung von Browsern. Natürlich lassen sich hier auch vielerlei andere XSS Dinge einschleusen.

Links

Link zum Thread

WordPress preg_replace Bug bei langen Texten und Special Chars (p Bug). Weiße Seite, obwohl Text in der Datenbank!

Nach nun gut 3 Stunden des Wühlens in dem Wordpress Spaghetti Code bin ich nun endlich auf die Lösung des “Überlangen Textes” Bugs gekommen. Es ist der “§$%”§$% preg_replace() in formatting.php.

formatting.php Z. 82ff

  $pee = preg_replace(‘/\n?(.+?)(?:\n\s*\n|\z)/s’, "

$1

\n", $pee); // make paragraphs, including one at the end

ersetzen durch:

  $pee = preg_replace(‘/\n?(.+?)(?:\n\s*|\z)/s’, "$1\n", $pee); // make paragraphs, including one at the end

Ich hab wahrlich keine Ahnung, wer auf so einen Mist dort kommt, aber es dient vermutlich dem globalen Allgemeinwohl, dass alle Newlines in p-Tags konvertiert müssen! Der Bug trat in folgendem Überlangen Text auf: Clansuite Chan Log

PHP5: Einzelnes Verzeichnis aus einem Zip Archiv entpacken

Da es kaum solcher nativen Unterstützungen gibt, habe ich einen kleinen Workaround geschrieben. Nicht unbedingt die beste Lösung, aber doch recht effektiv.

Zend Framework v1.6 setzt auf Dojo

Eines der bekanntesten PHP Frameworks bekommt nun JavaScript Support durch Dojo. Auch wenn ich es als persönlicher Mootools Liebhaber nicht so gerne sehe, ist dies ein Schritt in die richtige Richtung. JavaScript, AJAX etc. ist aus dem heutigen World Wide Web nichtmehr wegzudenken. So ist es nur logisch, dass sich auch das Zend Framework in diese Richtung weiter entwickeln muss.

Eine ausführliche Liste aller Neuerungen gibt es in einem PDF Dokument von Zend.

ReMooz WordPress Plugin Bug

Bug #1

Das ReMooz WordPress Plugin besitzt ein Pfad Problem. Dies tritt auf, wenn man mod_rewrite für die Permalinks verwendet. Ein sehr altes Problem, aber leicht zu beheben:

ReMooz.php Zeile 34

define('PLUGIN_PATH', 'wp-content/plugins/WP-ReMooz/');

ersetzen durch:

define('PLUGIN_PATH', trailingslashit(get_option('siteurl')) . 'wp-content/plugins/WP-ReMooz/');

Somit wird aus dem relativen Pfad, welcher durch die zusätzlichen Slashes bei mod_rewrite natürlich ins Leere führt, ein absoluter Pfad.

Bug #2

Das ReMooz WordPress Plugin bricht in seiner ursprünglichen Form die Konventionen des W3C, die da lauten:

Document languages may contain attributes that are declared to be of type ID. What makes attributes of type ID special is that no two such attributes can have the same value; whatever the document language, an ID attribute can be used to uniquely identify its element.

Somit hat man das Problem, dass mehrere id selectoren nicht richtig adressiert werden. Dies wird nur durch die Umstellung auf classes möglich.

Dazu müssen folgende Zeilen geändert werden:

ReMooz.js – Zeile 374

ReMooz.assign('#remooz-photos a', {

ersetzen durch:

ReMooz.assign($$('.remooz-photos a'), {

ClanSuite – the never ending story

ClanSuite ist das von mir wohl am meisten gehasste aber auch zugleich am meisten geliebteste Projekt, was ich je programmieren durfte. Deshalb verdient es auch den ersten Blog Eintrag in der Kategorie “Programmierung”.

Da ich aber viel zu müde bin, um tatsächlich noch Fachkompetentes zu präsentieren, lass ich es einfach.