PHP-Funktion: Passwort-Check bei haveibeenpwned.com

Mittwoch, 16. August, 2017

Anbei eine Funktion, die mit der API von haveibeenpwned.com ein Passwort prüft, ob dieses als gehackt gilt.
Wenn die Funktion true zurückliefert, wurde das Passwort gefunden (sprich: wurde gehackt). Diese Funktion kann man z.B. in einer Applikation einbauen, wenn man Benutzer ihr Passwort setzen lässt. Wenn die Funktion true liefert, dann wäre die Benutzereingabe als unsicher zurückzuweisen.

/**
* check password in an online database; it returns true if the password
* was found in the database
*
* @see https://haveibeenpwned.com/API/v2
* @param string   $sPassword   password to check
* @param boolean  $bShowDebug  show debug infos or not (default: false)
* @return boolean
*/
function haveibeenpwned($sPassword, $bShowDebug=false){
   
    // --- make the request
    $sCheckPwUrl='https://haveibeenpwned.com/api/pwnedpassword/'.sha1($sPassword).'?originalPasswordIsAHash=true';
    $context = stream_context_create($opts);
    $sPwReturn = file_get_contents(
            $sCheckPwUrl, false,
            stream_context_create(
                array(
                    "http" => array(
                        "method" => "GET",
                        "header" => "User-Agent: php-check-4-my-password\r\nAccept: application/vnd.haveibeenpwned.v2+json\r\n"
                    )
                )   
            )
    );
    $aRespHeader=$http_response_header;
   
    echo $bShowDebug ? '<pre>'.$sCheckPwUrl.'<br>'
            . 'Header: '.print_r($aRespHeader, 1).'<br>'
            . '$sPwReturn = '.$sPwReturn.'<br>'
            .'</pre>' : '' ;
   
    // --- check result
    $bFound=array_search('HTTP/1.1 200 OK', $aRespHeader)!==false;
    echo $bShowDebug ? (
            $bFound ? 'ERROR: The password was found in the database :-/'
                : 'OK: seems not to been hacked yet :-)'
            ) : '';
    return $bFound;
}

weiterführende Links:

  1. https://haveibeenpwned.com/
  2. haveibeenpwned.com - API

PHP-Klasse cdnorlocal

Dienstag, 25. Juli, 2017

Eigentlich begann es als Abfallprodukt. Ich brauchte da in einer Web-Applikation eine Klasse … und habe halt jene kleine Klasse geschrieben: wenn ein Verzeichnis für eine Bibliothek im Vendor-Verzeichnis lokal existiert, dann wirf eine lokale URL zurück. Wenn nicht, dann eine zu einem CDN Hoster. Sowas packt man an sich als Funktion in einen 3 Zeiler.

Damit kann ich abstrahieren, wo eine benötigte Bibliothek tatsächlich liegt. Mein Produkt-Download wird klein, weil ich Bibliotheken nur extern verlinke, statt mit in den Download zu packen. Soll das Produkt auf einem System ohne Internet-Anbindung verwendet werden, kann man die Bibliotheken aber optional lokal legen und auf einen Internet-Zugang verzichten.

Tja und dann kam mir der Sinn, noch eine Admin dafür zu schreiben: ich will live in einer API nach Bibliotheken browsen, Details einsehen, Versionen wechseln, Bibliotheken zu “mir” herunterladen.

Ach so Versionen … da gibt es bei gefragten Produkten in relativ kurzen Intervallen neue Releases. Sei es jQuery, Font-Awesome, Plugins … eigenlich habe ich selbst gar keine Kontrolle über all jene Updates … und wenn was neu ist, dies in meinen Applikationen zu aktualisieren.

Und wenn man Versionen lokal hat und sie schon mal lokal erfragen als auch remote die aktuellste ermitteln kann … machen wir noch einen Versions-Checker für sämtliche lokal gemachten Bibliotheken auf einmal dazu. Es kam eins zum anderen. Ich glaube, ich habe mal ein Grundgerüst. Das wird später einmal eine gute Hilfe, den Überblick über alle meine Bibliotheken und deren Versionen zu behalten.

Browsing (Rendering der API Such-Abfrage bei CDNJS):

2017-07-25-cdnorlocal-01.png

Details (Rendering der API Abfrage einer Library bei CDNJS):

2017-07-25-cdnorlocal-02.png

Versionscheck: lokal hinterlegte Versionen von Bibliotheken werden mit der online aktuellsten Version verglichen

2017-07-25-cdnorlocal-03.png

weiterführende Links:

  1. Github: cdnorlocal
  2. Docs: https://www.axel-hahn.de/docs/cdnorlocal/
  3. https://cdnjs.com/

OWA: die “Kalender von Pers”

Freitag, 21. Juli, 2017

Im OWA-Kalender des aktuellen Exchange 2016 kann man die Breite der linken Spalte nicht verschieben.
“Kalender von Pers” steht dann dort. Und wenn man Ausleihgeräte über einen Exchange Kalender verwaltet, sieht man leider nicht sofort den kompletten Namen.

2017-07-21-kalender-von-pers.png

Bis Microsoft das behebt, kann man sich ein Bookmarklet [01] in seinem Browser ablegen. Jenes funktioniert unabhängig von der Domain/ URL, wo sich eure OWA-Installation befindet und unabhängig vom Webbrowser (Anm.: leider weis ich nicht, wie man in Edge ein Bookmarklet erzeugt).

Anleitung:

  • Den nachfolgenden Link per Drag and Drop in die Lesezeichenliste ziehen: Kalenderbreite
  • OWA im Browser starten und in den Kalender wechseln
  • In der Lesezeichenliste auf das eben erstellte Bookmarklet “Kalenderbreite” anklicken. Die Kalenderbreite wird dann angepasst. Und bleibt so bis zum Neuladen der Seite.

Wie das Bookmarklet funktioniert:

In das aktuelle Dokument im Browser wird zusätzlicher CSS-Code eingeschleust.

Der Wert für die Breite wird in 2 DIVs benötigt, die unterhalb des DIV der Klasse “._wx_P” sind.
Ich setze eine Variable w auf die Breite von 300 Pixel und weise dem 1. Div nach dem Div der Klasse “._wx_P” die Breite auf w und beim 2. Div den Wert left auf w.
Wenn man im Inspektor schaut – die 2 Originalwerte “210px” werden mit “300px” übersteuert. Wem das nicht breit genug ist, kann das Bookmarklet bearbeiten und den Wert hinter w=… anpassen.

2017-07-21-kalender-von-pers-2.png

weiterführende Links:

  1. Wikipedia: Bookmarklet
  2. Nochmal das Bookmarklet … Drag and Drop: Kalenderbreite

Aomai Backup - Avira meldet darin Adware.Gen2

Montag, 5. Juni, 2017

Nach dem Upgrade von Aomei Backup Pro V3.x auf 4.0 meldete Avira “Adware.Gen2” in der Backupper.exe.
Hm, in einer Freeware mag ja sein, dass da Hersteller so ihren Unfug treiben, um Banner einzublenden oder Sonstwas im System zu verbiegen - aber in der bezahlten Pro-Version?

Wie schafft man Abhilfe?
Auf der Website https://www.virustotal.com habe ich die Exe-Datei hochgeladen - dort wird sie von zig (ca. 60) Virenscannern untersucht.
In dem Fall scheint es ein False Positive - also ein Fehlalarm - zu sein! Also wurde eine Ausnahmeregel definiert.

Ich habe in Avira:

  • unter Echtzeit-Scanner -> Konfiguration -> Echtzeit-Scanner -> Ausnahmen: das Aomei Backup Verzeichnis C:\Program Files (x86)\AOMEI Backupper\ als Ausnahme hinzugefügt
  • unter Quarantäne: bei der Backupper.exe rechte Maustaste und “Objekt wiederherstellen” gewählt.
  • unter Echtzeit-Scanner -> Konfiguration -> Echtzeit-Scanner -> Ausnahmen: das Aomei Backup Verzeichnis C:\Program Files (x86)\AOMEI Backupper\ als Ausnahme entfernt
  • … und die C:\Program Files (x86)\AOMEI Backupper\Backupper.exe als Ausnahme hinzugefügt (also statt des gesamten Verzeichnisses zuvor nur diese eine Datei)

weiterführende Links:

  1. virustotal.com: Ergebnis für die Backupper.exe

Opcache auf WAMP-Server unter MS Windows aktivieren

Sonntag, 27. November, 2016

Auf dem Wampserver für Windows wird die opcache DLL mitgeliefert, ist aber nicht aktiv.
Um es zu aktivieren, muss man die php.ini bearbeiten. Man findet Hinweise, wie die Extension zu aktivieren ist. Mein Fehler war, dass ich per Dateimanager die php.ini im Verzeichnis

C:\wamp\bin\php\php5.5.12\

bearbeitete … was zu keinerlei Resultat führte, weil der Apache Daemon die php.ini aus dem Apache-Verzeichnis anzieht:

C:\wamp\bin\apacheapache2.4.9\bin\php.ini

Also …

Schritt 1:
Mit einem phpinfo() in der Ausgabe prüfen, welches die richtige php.ini ist :-)
Oder direkt im Traymenü unter Php die dortige php.ini zum Bearbeiten anklicken.

Schritt 2:
Die php.ini bearbeiten … in der Sektion “[opcache]” ist die Extension zu aktivieren: die Zeile zend_extension=php_opcache.dll eintragen (sie existiert nicht).
Der Eintrag opcache.enable=1 ist hingegen bereits vorhanden:

(...)
[opcache]

zend_extension=php_opcache.dll

; Determines if Zend OPCache is enabled
opcache.enable=1
(...)

Schritt 3:
Apache neu starten. In der Ausgabe von phpinfo() sieht man dann das zusätzliche Modul … und auch Im Tray-Menü Php -> Php Extensions ist opcache ist das Warnsymbol nun weg.
Wer mag, kann noch einen Viewer wählen, um den Speicherstatus zu prüfen, z.B. ob der zugewiesene Speicher für den Cache korrekt ausgelegt ist.

weiterführende Links:

  1. Github: opcache-status
  2. https://easyengine.io/tutorials/php/zend-opcache/ - weitere Webviewer (en)

Chocolatey - veraltete Programm-Einträge löschen

Montag, 23. Mai, 2016

Problem:

Ich habe mit Chocolatey Programme deinstalliert, z.B.

C:\Users\Axel>choco uninstall Quicktime

Aber dennoch verbleiben einige in der Liste der lokalen Anwendungen:


C:\Users\Axel>choco list -lo

7zip.commandline 16.01
7zip.install 16.01
AdobeAIR 20.0.0.233
autohotkey.portable 1.1.23.07
avirafreeantivirus 14.0.6.552
chocolatey 0.9.9.12
ChocolateyGUI 0.13.2
ConEmu 16.5.15.0
Far 3.0.4242
ffmpeg 3.0.1
flashplayeractivex 21.0.0.242
flashplayerplugin 14.0.0.179
javaruntime 8.0.73
jre8 8.0.91
netbeans-php 8.0
PDFXChangeViewer 2.5.317
Pencil 2.0.3
PowerShell 5.0.10586.20151218
Quicktime 7.7.5   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
SwissFileKnife 1.6.9
sysinternals 2016.04.28
virtualbox 5.0.20.106931
VirtualBox.ExtensionPack 5.0.20.106931
23 packages installed.

Lösung

Man gehe in das Lib Verzeichnis von Chocolatey

C:\Users\Axel>cd "C:\ProgramData\chocolatey\lib"

C:\Program\Data\chocolatey\lib>dir
 Datenträger in Laufwerk C: ist A
 Volumeseriennummer: 4C76-01F1

 Verzeichnis von C:\ProgramData\chocolatey\lib

23.05.2016  21:11    <DIR>          .
23.05.2016  21:11    <DIR>          ..
21.05.2016  13:14    <DIR>          7zip.commandline
21.05.2016  14:30    <DIR>          7zip.install
31.03.2016  23:40    <DIR>          AdobeAIR
21.05.2016  13:15    <DIR>          autohotkey.portable
13.08.2014  20:33    <DIR>          avirafreeantivirus.14.0.6.552
31.03.2016  23:48    <DIR>          chocolatey
17.11.2014  00:21    <DIR>          chocolatey.0.9.8.28
23.05.2016  21:08    <DIR>          ChocolateyGUI
21.05.2016  13:15    <DIR>          ConEmu
16.05.2015  10:32    <DIR>          Far
21.05.2016  13:16    <DIR>          ffmpeg
21.05.2016  13:17    <DIR>          flashplayeractivex
23.05.2016  21:11    <DIR>          flashplayerplugin
21.05.2016  13:20    <DIR>          javaruntime
21.05.2016  14:38    <DIR>          jre8
13.08.2014  21:08    <DIR>          netbeans-php.8.0
21.05.2016  13:20    <DIR>          PDFXChangeViewer
21.05.2016  14:34    <DIR>          Pencil
23.05.2016  21:08    <DIR>          PowerShell
21.05.2016  15:14    <DIR>          Quicktime   <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
16.05.2015  11:06    <DIR>          SwissFileKnife
21.05.2016  13:21    <DIR>          sysinternals
21.05.2016  14:27    <DIR>          virtualbox
21.05.2016  14:29    <DIR>          VirtualBox.ExtensionPack
               0 Datei(en),              0 Bytes
              26 Verzeichnis(se), 337'768'534'016 Bytes frei

Hier habe ich das gleichnamige Verzeichnis gelöscht

C:\ProgramData\chocolatey\lib>del /S Quicktime

Möchten Sie "C:\ProgramData\chocolatey\lib\Quicktime*" löschen (J/N)? J
Datei wurde gelöscht - C:\ProgramData\chocolatey\lib\Quicktime\Quicktime.7.7.5.nupkg

Anm:
ohne Garantie … ggf. in ein anderes Verzeichnis Verschieben, statt zu löschen.

… aber dann ist Quicktime bei mir auch weg gewesen:

C:\ProgramData\chocolatey\lib>choco list -lo

7zip.commandline 16.01
7zip.install 16.01
AdobeAIR 20.0.0.233
autohotkey.portable 1.1.23.07
avirafreeantivirus 14.0.6.552
chocolatey 0.9.9.12
ChocolateyGUI 0.13.2
ConEmu 16.5.15.0
Far 3.0.4242
ffmpeg 3.0.1
flashplayeractivex 21.0.0.242
flashplayerplugin 14.0.0.179
javaruntime 8.0.73
jre8 8.0.91
netbeans-php 8.0
PDFXChangeViewer 2.5.317
Pencil 2.0.3
PowerShell 5.0.10586.20151218
SwissFileKnife 1.6.9
sysinternals 2016.04.28
virtualbox 5.0.20.106931
VirtualBox.ExtensionPack 5.0.20.106931
22 packages installed.

weiterführende Links:

  1. https://chocolatey.org/

Sicherheitswarnung bei Programmverknüpfungen nach Win10 Update

Samstag, 6. Februar, 2016

Irgendwie nervt es. Es gibt diese Symbolleiste “Links” wo man Favouriten als Programmverknüpfungen ablegen kann.
2016-02-06-linkleiste-00.png

Mit IE-Update, mit Windows 10 Upgrade und jetzt wieder mit einem Windows10 Update kommen die Sicherheitsdialoge immer wieder aufs Neue und fragen höflich “Datei öffnen - Sicherheitswarnung … Möchten Sie diese Datei öffnen? …”

Das, was ich zu einer früheren Windows einmal erfolgreich praktizierte (icacls-Aufruf), funktioniert seit Windows 10 scheinbar nicht mehr. Dass der Order mal Links oder aber Favouriten heisst, ist an der Stelle nicht einmal das Problem. Die Methode geht einfach nicht mehr.

Schnelle Lösungen, die ich gefunden habe …

Für eine einzelne Verknüpfung die nachfolgende Variante:

(1)
Icon aus der Links Leiste einfach mit gedrückter linker Maustaste auf den Desktop ziehen und dort fallenlassen.
2016-02-06-linkleiste-01.png

(2)
Das Icon wird verschoben.
2016-02-06-linkleiste-02.png

(3)
Das Icon auf dem Desktop dann zurück in die Links-Leiste mit gedrückter linker Maustaste plus Shift-Taste ziehen.
2016-02-06-linkleiste-03.png

Icon nun aus der Link-Symbolleiste anklicken, um das Programm zu starten - der Sicherheitsdialog ist weg. Freu :-)

Um es für alle Verknüpfungen gleichzeitig zu machen, hab ich eine andere Lösung.

Man findet jenen Ordner für die Links im Explorer (Windows-Taste + E), wenn man %USERPROFILE%\Favorites\Links in die Adresszeile eingibt:
2016-02-06-linkleiste-04.png

Wenn man

  • einen neuen Ordner irgendwo anlegt
  • die Dateien aus \Favorites\Links in den Zwischen-Ordner verschiebt
  • dann zurück-kopiert

… ist der Sicherheitsdialog ebenfalls weg.
Ach ja, den Zwischenordner kann man dann löschen.

Ja und sowas wiederum kann man automatisieren und eine Bat-Datei schreiben - quick and dirty einmal so:

set linkdir=%USERPROFILE%\Favorites%\Links
set tmpdir=%TEMP%\Links

mkdir "%tmpdir%" 
move "%linkdir%*.*" "%tmpdir%"
dir "%linkdir%" "%tmpdir%"
pause
copy "%tmpdir%*.*" "%linkdir%"
dir "%linkdir%" "%tmpdir%"
pause
rmdir /s /q "%tmpdir%"

Update vom 12.08.2017
Und mal wieder funktionierte der Trick nicht mehr … aber ich habe etwas gefunden (s.a. Screenshots unten):

  1. Im Explorer zu C:\Users\[Benutzername]\ navigieren und auf “Favoriten” die rechte Maustaste und Eigenschaften wählen.
  2. Im Tab Sicherheit waren “komische” unbekannte User (mit einer SID Nummer). Mit [erweitert] den Editor für die Berechtigungen wählen.
  3. Hier die falschen Benutzer entfernen. Und [Übernehmen] … und [OK]. Durch die aktive Vererbung werden sie in den Unterelementen, zu denen auch der Links-Ordner gehört, ebenfalls entfernt
  4. Das Skript starten, das Links temporär wegschiebt und dann zurückkopiert (entspricht der Beschreibung oben)
  5. Falls die Icons nach dem Zurückkopieren nicht da sind: Die Symbolleiste “Links” ausblenden (rechte Maustaste in der Taskbar -> Symbolleisten -> Links anklicken) … und dann wieder einblenden.

2017-08-12-favoriten-mit-unbekanntem-user-01.png 2017-08-12-favoriten-mit-unbekanntem-user-02.png

Viel Glück!

weiterführende Links:

  1. alter Blog-Eintrag Sicherheitswarnung bei Programmverknüpfungen nach Installation des IE 10
  2. Kommando copy
  3. Kommando dir
  4. Kommando mkdir
  5. Kommando move
  6. Kommando pause
  7. Kommando set

OpenNebula is coming

Dienstag, 27. Oktober, 2015

Wir setzen an unserem Institut 2 KVM Server für Virtualisierung ein. Das sind für sich eigenständige Instanzen mit je ca. 15 virtuellen Hosts. Seit wir diese KVM-Server haben, ist durch das einfache Erstellen neuer (virtueller) Rechner die Zahl der zu verwaltenden System stark gewachsen. Tendenz steigend. Jedes neuere Projekt wird mit Preview-, Stage- und Livesystem geplant. Denkt man nur 1 Jahr weiter, muss etwas anderes her.

Heute sind mehrere x-86 Server in unser Institut geliefert worden. Endlich :-)

Nach dem Auspacken jedes einzelnen Gerätes wurden sie auch geöffnet.

Dies hier wird einer von 2 neuen KVM-Servern. Bei den RAM-Bausteinen sieht es (vermeintlich) gar leer aus - es sind derzeit 64 GB RAM:

2015-10-27-opennebula-kvm.png

Eingetroffen sind 6 Rechner + 1 Switch. Schlussendlich nach Auspacken aller Gerätschaften entstand dieser Turm (ja natürlich kommen die noch in ein Server-Rack):

2015-10-27-opennebula-unboxing.png

Damit wird eine neue Infrastruktur aufgesetzt, die ausschliesslich OpenSource Produkte verwendet.

  • KVM als Virtualisierer
  • “Unten drunter” (nach aussen nicht sichtbar) ist ein gemeinsames Storage. Es kommt hier Ceph zum Einsatz.
  • “Oben drauf” über den KVM Servern befindet sich OpenNebula auf einem Admin-Server. OpenNebula verwaltet und überwacht verschiedene Virtualisierungstools (z.B. KVM, XEN, HyperV, VmWare - all jene auch im Mix). OpenNebula benötigt auf KVM Servern keinerlei Software oder Daemons: eine SSH-Verbindung reicht.

Die Idee für unser erstes (noch auszubauendes) Setup ist etwa Folgende:

2015-10-27-opennebula-overview.png

Weiterführende Links

Samsung Galaxy Alpha - Android 5 Update endlich da

Montag, 26. Oktober, 2015

Seit Sommer habe ich ein Samsung Galaxy Alpha. Darauf war so ein Uralt-Android 4.4. Und das, nachdem ich mein vorheriges Telefon auf Android 5 hatte … was für ein Rückschritt :-/
Obwohl ein Update auf Android 5 schon lange angekündigt war, war bei Check nach einer Aktualisierung immer nur eine Meldung, das System sei aktuell.

Einstellungen -> System -> Geräteinformationen -> Software-Updates -> Jetzt aktualisieren

Kein Update da. Aber jetzt …

2015-10-25-samsung-update.png

Mal sehen, ob das mit Android 5.0.2 auf meinem Gerät gut kommt…

Weiterführende Links

(*) die genaue Geräte-Bezeichnung befindet sich unter Einstellungen -> System -> Geräteinformationen - dort ist ein Eintrag “Modellnummer”

Schwarze Menüs in LibreOffice

Samstag, 10. Oktober, 2015

Kürzlich habe ich auf LibreOffice 5 aktualisiert.
Bei jedem Klick auf einen Menüpunkt oder beim Aufpoppen einer Dialogbox war für Sekundenbruchteil eine schwarze Fläche - erst dann erschien das Menü oder die Box. Solch ein Flackern ist nervig.

Es abzuschalten habe ich in den Einstellungen unter LibreOffice -> Ansicht erledigt - die Checkbox “OpenGL für das Rendern verwenden” wurde deaktiviert.

Anschliessend den Dialog mit OK Bestätigen und LibreOffice neu starten.

2015-10-10-libreoffice-black-menu.png