Suche
Suche Menü

target=_blank – eine unterschätzte Sicherheitslücke bei sozialen Medien

T3N hat einen interessanten Artikel zu target=_blank veröffentlicht.
Wird ein Link mit target=_blank geöffnet, öffnet sich ein neues Browserfenster. Durch den dabei ausgeführten Befehl window.opener erhält die sich neu öffenende Seite Zugriff auf das bisherige Browserfenster. So ist es möglich via Javascript möglich den Inhalt der Ursprungsseite zu verändern. Gefährdet sind hier vor allem soziale Medien wie Facebook.

Klickt man z.B. bei Facebook auf einen Link, so kann die Zielseite die noch offene Facebookseite manipulieren, so dass man z.B. das Passwort eingeben muss, welches direkt bei den bösen Buben landet.

Als Webseitenbetreiber mit Kundenlogin welcher target=_blank verwendet, kann man seine Benutzer wie folgt schützen:

<a href="http://www.seite.com" target="_blank" rel="noopener noreferrer">Neue Seite</a>

Mit dem rel=“noopener noreferrer“ setzt man den window.opener auf Null. Somit erhält die neue Seite keinen Zugriff mehr auf die bisherige Seite.

Ob man als User von diesem Problem betroffen ist, kann man auf dieser Seite testen:
https://mathiasbynens.github.io/rel-noopener/

Beim Cross-Origin Beispiel warnt mich Firefox, dass die Ursprungsseite Seite plötzlich umleiten will. Dazu gibt es einerseits eine Einstellung: „Erweitert“ › „Allgemein“ die Option „Warnen, wenn Webseiten versuchen umzuleiten oder neuzuladen“
Außerdem gibt es noch das AddOn RequestPolicy. RequestPolicy warnt unabhängig von dieser Einstellung.

Einfacher Slider mit jQuery

Auf Stack Overflow habe ich vor kurzem einen einfachen Slider entdeckt. Der Slider nutzt jQuery ohne weitere Plugins.

<html>
<head>
<style>
html,
body {
  margin: 0;
  padding: 0;
  width: 100%;
  height: 100%;
  font-family: sans;
}
.track {
  position: relative;
  height: 400px;
  width: 100%;
}
.slide {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-position: center center;
  -webkit-background-size: cover;
  -moz-background-size: cover;
  -o-background-size: cover;
  background-size: cover;
}
.ipsum {
  display: inline-block;
  padding: 10px;
  background-color: rgba(255, 255, 255, .75);
}
</style>

</html>
<body>
<div class="jCaroFade track">
  <!-- Slides -->
  <div class="slide" style="background-image:url('https://c1.staticflickr.com/1/550/20180902929_88c507f552_h.jpg');">
    <p class="ipsum">SLIDE ONE</p>
  </div>
  <div class="slide" style="background-image:url('https://c1.staticflickr.com/1/277/19726574813_cf2aa22221_b.jpg');">
    <p class="ipsum">SLIDE TWO</p>
  </div>
  <div class="slide" style="background-image:url('https://c1.staticflickr.com/1/488/20178281609_c1e34be0b2_b.jpg');">
    <p class="ipsum">SLIDE THREE</p>
  </div>
  <div class="slide" style="background-image:url('https://c1.staticflickr.com/1/414/19744665244_c099ce816c_h.jpg');">
    <p class="ipsum">SLIDE FOUR</p>
  </div>
</div>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>$('.jCaroFade').each(createFader);

function createFader(i, elem) {
  var track = $(elem);
  var firstSlide = track.find('.slide').eq(0);
  var loop = 0;

  firstSlide.nextAll().hide();
  setInterval(function() {
    loop++;
    firstSlide = firstSlide.fadeOut(500, function() {
        $(this).appendTo(track);
      })
      .next()
      .fadeIn(500);
  }, 3000);

}
</script>
</body>
</html>

Eine Demo des Sliders kann auf jsFiddle angeschaut werden.

HTML5Shiv – neue URL

Diverse Templates verwenden um die Kompatibilität von HTML5 mit IE9 oder älter zu ermöglichen, die JavaScript Bibliothek HTML5Shiv. Diese wurde zu Beginn auf GoogleCode gehostet.

<!--[if IE]><script src="https://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->

Das Projekt wird mittlerweile auf Github gehostet. Um HTML5Shiv wieder zum laufen zu bringen, muss die URL angepasst werden. Eine Möglichkeit dazu ist die Verwendung des CDN von Cloudflare. Auf CDNJS.com findet man dazu den Link.

Somit ist der Code neu:

<!--[if IE]><script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.js"></script><![endif]-->

Ein weiterer Vorteil ist die Einbindung via SSL. Mittlerweile werden viele Seiten mit SSL betrieben was die Einbindung von externen Scripten per SSL erfordert.

TYPO3 7.6 – Inkonsistenter Inhalt in Sprache „Français“ gefunden

Vor kurzem habe ich mit einer TYPO3 Seite welche von 6.0 auf 7.6 aktualilsiert wurde, das Problem, dass bei verschiedenen Seiten die Warnung „Inkonsistenter Inhalt in Sprache „Français“ gefunden“ angezeigt. Auf diesen Seiten war das sortieren oder neu einfügen von französischen Inhalten nicht mehr möglich. Bisher wurden auf dieser Seite teils Seiten identisch übersetzt, teils mit differierenden Inhalten in den beiden Sprachen Deutsch und Französisch gefüllt.

Folgende Zeile im pageTS deaktiviert das Handling der inkonsistenten Sprachen deaktivieren:

mod.web_layout.allowInconsistentLanguageHandling = 1

KeeWeb – Keepass Selfhosted als Webseite

Gestern habe ich bei Cashy einen Beitrag über KeeWeb gelesen. KeeWeb ist eine WebApp welche lokal eine Keepass Datei öffnen und bearbeiten kann. Es ist auch möglich auf eine Keepass-Datei zuzugreifen, welche in der Dropbox abgelegt ist.

Die Installation bei cyon ist denkbar einfach.

  1. neue Subdomain, z.B. keeweb.domain.ch erstellen
  2. die Subdomain per SSL absichern. Bei einer unverschlüsselten Verbindung warnt KeeWeb
  3. Verzeichnis Passwort schützen
  4. von der KeeWeb Seite die notwendigen 2 Dateien herunterladen
  5. Die beiden Dateien index.html und manifest.appcache auf den Webserver laden

Wenn nun auch Dropbox eingebunden werden soll, muss im Developer Bereich von Dropbox eine App erstellt werden. Als Return-Path muss die URL von keeweb.domain.ch angegeben werden.

  1. App-Key kopieren
  2. sich per SSH mit dem Server verbinden (bei cyon in jedem Hostingpaket inklusive) und in das Verzeichnis von KeeWeb wechseln
  3. den Befehl "sed -i.bak s/qp7ctun6qt5n9d6/your_app_key/g index.html" ausführen (ohne Anführungszeichen)

Danach kann auch von Dropbox eine Datei geöffnet werden.

Spannender Ansatz. Ob dies nun perfekt sicher ist, darüber lässt sich streiten. Die Daten werden lokal im Browsercache abgelegt (abgesehen von Dropbox). Es ist auf jedenfall eine gute Möglichkeit unterwegs oder auch von einem eingeschränkten Firmen-PC aus auf einen Keepass-Conteiner zugreifen zu können.

CMSMS: Smarty Code aus einem String entfernen

Vor kurzem musste ich aus einem Text den allenfalls enthaltenen Smartycode entfernen. Dies geht mit folgendem Regex Snippet:

{$entry->content|regex_replace:"/{[^]]*}/":''|tbTruncateBetter:500:' ...'}

In diesem Beispiel kürze ich mit tbTruncateBetter (ein Plugin des ToolBox Moduls) einen Text auf 500 Zeichen. Nun kann in diesem Text ein Smarty-Tag wie z.B. {Gallery dir =“/irgend/eine/gallery“}  vorkommen. Diese möchte ich in der gekürzten Übersicht natürlich nicht laden. Deshalb habe ich vor den Aufruf von tbTruncateBetter das Regex eingefügt, welches den Smarty-Tag entfernt.

Nochmals kurz:

{$variable|regex_replace:"/{[^]]*}/":''}

 

Philipp Maloney „Auf der Flucht“ als Lego-Stop-Motion Film

Vor ein paar Tagen habe ich via Leumund.ch den Lego-Stop-Motion Film der Maloney-Folge „Auf der Flucht“ gesehen. Laut dem Erschöpfer des Films, Joel Richard, hat er dafür über 1500 Stunden aufgewendet. Für eine Sekunde im Film hat er im Schnitt ca 1 Stunde aufgewendet. 

Philip Maloney – Auf der Flucht, Teil 1

Philip Maloney – Auf der Flucht, Teil 2

Philip Maloney – Auf der Flucht, Teil 3

Beitrag der Tageschau

Das Schweizer Fernsehen hat in der Tageschau zur Fertigstellung des letzten Teils die Arbeit von Joel Richard dokumentiert und vorgestellt:

Tagesschau Beitrag

btAdminer 1.6.0 veröffentlicht

Gerade eben habe ich die Version 1.6.0 von btAdminer im Forge veröffentlicht.

Changelog:

  • Update auf Adminer 3.7.1
    Adminer 3.7.1 (released 2013-06-29):
    Increase click target for checkboxes
    Use shadow for highlighting default button
    Don’t use LIMIT 1 if inline updating unique row
    Don’t check previous checkbox on added column in create table (bug #3614245)
    Order table list by name
    Verify UTF-8 encoding of CSV import
    Notify user about expired master password for permanent login
    Highlight table being altered in navigation
    Send 404 for invalid database and schema
    Fix title and links on invalid table pages
    Display error on invalid alter table and view pages
    MySQL: Speed up updating rows without numeric or UTF-8 primary key
    Non-MySQL: Descending indexes

    Add Korean translation

Der btAdminer kann wie gewohnt hier heruntergeladen werden:
http://dev.cmsmadesimple.org/project/files/1023

Ich habe ja nichts zu verbergen

Man hört ja oft wenn es um Überwachung geht: „Ich habe ja nichts zu verbergen“. Ist dem wirklich so? Das obige Video zeigt auf, was Überwachung bedeutet und gibt jedem die Möglichkeit seine eigene Antwort darauf geben zu können.

Denn: Wer sagt denn was richtig und falsch ist? Wer fälschlicher Weise in die Mühlen der Überwachung gerät, kann noch lange sagen: „Ich habe nichts zu verbergen“. Wenn dadurch eine Verhaftung erfolgt, eine Einreise verweigert wird, oder eine Stelle gekündet wird, so ist derjenige wohl der Erste der dagegen Protestieren wird.

Nachtrag: Im Spiegel ist ein interessanter Bericht über Michael Blume erschienen. Michale Blume wurde 2003 (!) vom Verfassungsschutzt verdächtigt ein Islamsympatisant zu sein. Nachwirklungen davon spürt er noch heute.