Mittwoch, 17. Dezember 2014

IE Post empty with NTLM

With NTLM login enabled sometimes data send with POST is missing. This is because IE has an internal timeout and tries to recheck NTLM.

With fiddler you can see the problem. One hacky solution is to catch this request and response with a fake answer. After this the IE will send the normal POST data.

To get the correct NTLM response use fiddle during a NTLM login. Switch the inspector to "Auth" and look for the "Type: 1" response and replace below with long string behind "WWW-Authenticate: NTLM". Place this at the top of your page and it will catch and respond to any IE NTLM request.


$headers = apache_request_headers();
$auth = $headers['Authorization'];
if ($auth && substr($auth,0,5) == 'NTLM ')
{
    $msg = base64_decode(substr($auth, 5));
    if ($msg[8] == "\x01") {
        header('HTTP/1.1 401 Unauthorized');
        header('WWW-Authenticate: NTLM ');
        exit;
    }
}

Note: This might be a security risk. Make sure to check the user Session and send him to your NTLM login is needed.

Montag, 15. Dezember 2014

Nachricht schicken über die linux bash

Wer ist online?

# who
user1    pts/0        2014-12-15 11:33 (12.12.45.34)
user2 pts/1        2014-12-15 11:57 (56.23.53.54)

Nachricht an Benutzer user2 schicken:

# write user2 pts/2
Hallo,
nur mal so!

Ctrl+D zum Abschicken.


Montag, 1. Dezember 2014

Menschen und Roboter

Robot und Frank

Gestern hab ich den Film "Robot und Frank" geguckt und er hat meine Erwartungen voll erfüllt. Ich mag Filme, die sich mit der zunehmenden Verbreitung von Robotern auseinandersetzen. Die kritisch hinterfragen wie sie in die Gesellschaft integriert werden und welche Vor- und Nachteile sich daraus ergeben.


Real Humans

Thematisch die gleiche Richtung schlägt die schwedische Serie Real Humans ein. Diese ist selbst auf schwedisch mit englischem Untertitle noch sehr sehenswert. Inzwischen gibt es jedoch auch Deutschen Ton.



Die zweite Staffel gibt es zwar, aber konnte ich bisher nicht finden.

Donnerstag, 6. November 2014

webid-solutions ing-diba Warteschleife schummeln

Ich liebe Web-Anwendungen, vor allem wenn sie sauber geschrieben sind. Vor allem weil das JavaScript schön Open Source ist und man als Anwender die frei Kontrolle über die UI hat.

So habe ich neulich ein Konto bei der ING-DiBa angelegt und die bequeme Legitimation per Video-Call genutzt. Leider hängt man dabei recht lange auf der Webseite www.webid-solutions.de/diba und wartet auf einen Ansprechpartner. Besonders nervig, dass man nur alle 30 Sekunden neu Versuchen kann und dann wartet man wieder.

Die Warte Zeit kann man aber gut nutzen um eben mal den Source Code auf zu machen und die callSkype() Funktion zu suchen. Dort ist schnell die lästige alert() Meldung, dass man doch 30 Sekunden warten soll ersetzt durch ein automatisches neu versuchen. Einfach F12 und die Funktion in die Console kopieren und schon ist das Warten vorbei:

function callSkype() {
    var xmlhttp;
    var theUrl = "https://webid-gateway.de//service/skypename/cn/000112/ai/160746000";
    var d = new Date();
    var t = d.getTime();

    clickcounter = clickcounter + 1;
    if (clickcounter == 2) {
        document.getElementById("callback_box").style.display                  = "block";
    }
    if (window.XMLHttpRequest) {
        xmlhttp = new XMLHttpRequest();
    } else {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }

    xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState == 4) {
            if (xmlhttp.responseText !== "") {
                window.location = "skype:"+xmlhttp.responseText                       +"?call&video=true";
            } else {
                // nein ich möchte nicht warten
                // sondern es direkt nochmal probieren:
                callSkype();
            }
        }

    }
    xmlhttp.open("GET", theUrl, true);
    xmlhttp.send(null);
    lastClick = t;
}
callSkype();

Dienstag, 16. September 2014

Jetzt ohne Werbung!

Wie angekündigt ist die Google Werbung hier im Blog nun abgeschaltet.

Ich muss jedoch anmerken, dass in den letzten 5 Monaten niemand auf einen Flattr Button gedrückt hat! Wahrscheinlich fehlt dazu hier das passende Publikum. Ich lass vorerst trotzdem Flattr mal noch drin...

Mittwoch, 18. Juni 2014

Passwörter verschicken

Webanwendungen sollte nie Passwörter verschicken sondern nur einen Passwort-Rest Link. Trotzdem kommt es in der Praxis leider manchmal vor das man jemand ein Passwort schicken will und der Empfänger leider kein GPG oder S/MIME hat.
Hier kann man dann ein passwort-geschützes Archiv schicken oder aber wenn sonst wirklich nichts geht einen Dienst wie https://onetimesecret.com/ benutzen. Das am besten jedoch nur, wenn man die Open Source Version selbst installiert hat. Mit https natürlich! Onetimesecret zeigt den Content nur einmal an und dann nie wieder.

Montag, 16. Juni 2014

Bitbucket: Search file size to find big files

To find big files in your repository you can press F12 and search in your browser using the Bitbucket Api. Here is an example:
function getFolder(name){
 $.getJSON(name, function(response)
 { 
  $.each(response.directories, function(i, a)
  { 
   getFolder(name + '/' + a);
  } );
  $.each(response.files, function(i,a){ 
   if (a.size > 1024*1024 ) console.log(name, a);
  });
 });
}

getFolder('https://bitbucket.org/api/1.0/repositories/<user>/<rep-slug>/src/master/');