blog.bartlweb - a technologist's external brain

Alle Artikel

Cross-Site Scripting (XSS) mit Hilfe von iFrames

Will man zwischen einem iFrame und der Hauptseite Daten mittels JavaScript austauschen oder Funktionen auf der anderen Seite aufrufen benötigt man den ansatz von Cross-Site Scripting (XSS).

Dabei gibt es allerdings von Anfang an folgende Einschränkungen:

  • Die Hauptseite und der iFrame müssen von der selben Domain aufgerufen werden.
  • Dabei ist es auch nicht erlaubt zwischen Subdomains zu kommunizieren
  • und zuletzt muss auch der Port (also http/https) übereinstimmen.

Erfüllt man diese Bedingungen steht einem Regen austausch nichts mehr im Wege. Dabei kann dann aus dem iFrame heraus eine Funktion der Hauptseite mittels folgendem Code aufgerufen werden:

Datein aus dem SVN-Repository ausnehmen

Hin und wieder gibt es den einen oder anderen Grund einzelne Dateien nicht mit ins SVN-Repository einzuchecken. Für diesen Fall gibt es die SVN-Eigenschaft svn:ignore.

svn:ignore wird für einzelne Dateien oder Ordner gesetzt und kann sowohl vollständige als auch mit Wildcard versehene Dateinamen aufnehmen.

Beispiele

* -> alles ausnehmen
test.txt -> Die Datei "test.txt" ausnehmen
*.txt -> Alle Dateien mit der Endung ".txt" ausnehmen
cache_* -> Alle Datein die mit "cache_" beginnen ausnehmen

SSL-Zertifikat in Zimbra per Konsole installieren

Zimbra bietet zwar die Möglichkeit per Administrations-Oberfläche ein SSL-Zertifikat zu installieren. Leider wird dabei aber nicht immer in 2048-bit starker Privatekey erzeugt. Um diese Manko zu umgehen kann man den Key auch manuell erzeugen und danach das angeforderter SSL-Zertifikat per Konsole installieren.

Unter Zimbra liegen der Privatekey und die Zertifikate unter: /opt/zimbra/ssl/zimbra/commercial/

PrivateKey generieren

Generieren Sie zunächst einen neuen Privatekey.

openssl genrsa -out domainname.key 2048

Zertifikatsanfrage erstellen

Danach erstellen sie einen "Certificate Sign Request" den die SSL-Zertifikat ausstellende Organisation benötigt.

Typo3-Cache aus einer Extension heraus löschen

In Ausnahmesituation kann es erforderlich sein den Frontend-Cache einer Seite oder auch aller Seiten aus einer Typo3-Extension heraus zu löschen. Setzen Sie diese Lösung mit bedacht ein, da bei zu häufigem Einsatz die Ladezeiten Ihrer Website stark steigen können.

alle Cache-Tabellen leeren

$TCE = t3lib_div::makeInstance('t3lib_TCEmain');
$TCE->admin = 1;
$TCE->clear_cacheCmd('all');

gesamten Seiten-Cache löschen

$TCE = t3lib_div::makeInstance('t3lib_TCEmain');
$TCE->admin = 1;
$TCE->clear_cacheCmd('pages');

Cache einer bestimmten Seite löschen

$TCE = t3lib_div::makeInstance('t3lib_TCEmain');
$TCE->clear_cacheCmd(<pid>);

Beispiel: Cache für die Seite mit ID 3 löschen

$TCE = t3lib_div::makeInstance('t3lib_TCEmain');
$TCE->clear_cacheCmd(3);

Automatischer Download von neuen Updates in WSUS 3.0 funktioniert nicht richtig

Der WindowsServerUpdateServices-Server (WSUS) benutzt für den Download der Updates den Windows-Dienst BITS (Intelligente Hintergrundübertragung). Leider funktioniert der automatische Download nicht immer korrekt und die Downloads verbleiben fehlerhaft in der Warteschlange von BITS.

Abhilfe schafft der Neustart des BITS-Dienstes. Dabei wird der Status aller Downloads zurückgesetzt und BITS kann seine Arbeit wieder aufnehmen.

Für den täglichen Betrieb von WSUS empfiehlt es sich daher per Batch und "Aufgabenplanung" den BITS-Dienst einmal pro Tag neuzustarten.

BITS-Dienst per Konsole neu starten

net stop bits
net start bits

BITS-Aufträge auflisten

bitsadmin /list /allusers

Automatisches Ersetzen von Sonderzeichen in WordPress deaktivieren

WordPress ersetzt gewisse Satzzeichen wie Anführungszeichen durch spezielle "hübschere" Sonderzeichen. Diese Verhalten mag für reinen Text vielleicht gewünscht sein, für Code-Schnippsel ist Sie aber meistens nicht gewünscht. Des weiteren kann es bei der Darstellung im Browser zu Problemen kommen.

Um WordPress dieses Verhalten abzugewöhnen ist ein kleiner Eingriff in den Quellcode nötig (Achtung: bei einem Update muss der Vorgang wiederholt werden)

 

Kommentieren Sie dazu in der Datei wp-includes/formatting.php im oberen Abschnitt die folgenden Zeilen aus:

nützliche Firefox-Extensions

Firefox-Extensions gibt es wie Sand am Meer. Aus dieser Flut die wirklich nützlichen zu Filtern ist oft gar nicht so einfach. Darum hier eine kleine Liste mit Extensions für Alltag und Webentwicklung.

Extensions für den Alltag

Flashblock

Flashanimationen werden beim Aufruf der Seite standardmäßig geblockt und erst durch Anklicken dieser geladen und abgespielt.

Undo Closed Tab

ergänzt die Navigationsleiste um einen Button mit dem kürzlich geschlossene Tabs komfortabel wieder hergestellt werden können.

PDF Download

fragt bei PDF's nach ob diese heruntergeladen, im Browser oder im externen Reader geöffnet werden sollen.

Einzelne Dateien per .htaccess schützen

Apache bitte nicht nur die Möglichkeit ganze Verzeichnisse per .htaccess mit einem Passwort zu schützen. Es ist auch möglich einzelne Dateien oder Dateiarten zu schützen.

Einzelne Datei

<FilesMatch "bar.html">
  AuthType Basic
  AuthName "Authentication required"
  AuthUserFile /www/password.htpasswd
  require valid-user
</FilesMatch>

Regular Expression

Es ist jedoch auch möglich einen regulären Ausdruck zu verwenden. Dadurch können z.B. nur Datein mit einer bestimmten Endung geschützt werden.

<FilesMatch "\.(gif|jpe?g|png)$">
   ...
</FilesMatch>

vorbelegtes Eingabefeld bei Focus automatisch leeren

Gerade bei Suchfeldern ist das Eingabefeld gerne mit dem Wort "Suchen" vorbefüllt. Damit beim Klicken in das Feld der Text automatisch verschwindet bzw. beim Verlassen wieder hergestellt wird und dabei der Text auch noch direkt aus dem HTML-Code ausgelesen wird gibt es folgendes Code-Snippet:

inputtext = $("input#search").val();
jQuery("input#search").focus(function() {
if(this.value==inputtext) this.value='';
});
jQuery("input#search").blur(function() {
if(this.value=='') this.value=inputtext;
});

Browser und Betriebssystem per JavaScript ermitteln

Oft werden für verschiedene Browser unterschiedliche JS-Befehle benötigt oder es muss unterschiedlich viel mit JS realisiert werden, hier hilft das Skript "Browser detect" mit dem sich nicht nur Browser-Typ und Version abfragen lassen, sondern auch noch das verwendete Betriebssystem.

Anwendung

  • Initialisieren
    BrowserDetect.init();
  • Browser-Typ abfragen
    BrowserDetect.browser
  • Browser-Version abfragen
    BrowserDetect.version
  • Betriebssystem abfrage
    BrowserDetect.OS

Rückgabewerte

  • Browser
    OmniWeb, Safari, Opera, iCab, Konqueror, Firefox, Camino, Netscape, Explorer, Mozilla
  • Version
    z.B.: 6 oder 7 für IE6 bzw. IE7
  • OS
    Windows, Mac, Linux

Skript

Zu finden ist das Skript sammt umfangreicher Dokumentation unter: http://www.quirksmode.org/js/detect.html