Best practice: PHP - Pay attention to data types during comparison

SQL – JOIN vs. Sub-Query

Es hat sich eine solide SQL-Regel über die Jahre herauskristallisiert, die man getrost auf folgende Formel runterbechen kann:

Verwende immer JOINs. Vermeide Subqueries!

Punkt.

Best practice

Best practice: Always use JOIN in favour of subquery
Best practice: Always use JOIN in favour of subquery

PHP – X-Powered-By entfernen

PHP ist in seiner ursprünglichen Intallationsvariante relativ geschwätzig. Zum Beispiel wird die PHP-Version im Anwort-Header ausgegben:

X-Powered-By: PHP/7.2.12

Um diese aus dem Antwort-Header zu entfernen, muss folgende Einstellung in der /etc/php.ini getätigt werden:

expose_php = off

Best practice

Best practice: Remove PHP X-Powered-By header
Best practice: Remove PHP X-Powered-By header

SSL/TLS – Fehlendes Intermediate Zertifikat

Es kommt immer wieder vor, dass ein Intermediate Zertifikat vergessen wird zu installieren oder zu aktualisieren. Man erhält dann diverse Fehlermeldungen der Browser oder Programme, zum Beispiel:

  • cURL: Peer’s Certificate issuer is not recognized
  • Chrome: NET::ERR_CERT_AUTHORITY_INVALID

Das Schlimme daran ist, dass man den Zertifikatsfehler selbst meistens gar nicht mitbekommt, da der eigene Browser das Intermediate von einer anderen Seite zwischengespeichert hat.

Drum prüfe, wer ein Zertifikat installiert

Mit SSLLabs! Dort wird das Rating auf B herabgestuft, sofern der Zertifikatspfad nicht korrekt ist:

SSL Labs: Missing intermediate certificate
SSL Labs: Missing intermediate certificate

In der Sektion „Certification Paths“ kann man schauen, welches Zertifikat fehlt.

SSL Labs: Missing Lets Encrypt intermediate
SSL Labs: Missing Lets Encrypt intermediate

Dieses muss dann im Webserver mit hinterlegt werden. Zum Beispiel so (hier am Beispiel von Apache + Let’s Encrypt):

SSLCertificateChainFile /etc/letsencrypt/live/server.xsigndll.com/chain.pem

Best practice

Best practice: Always test SSL/TLS certificates for missing intermediates
Best practice: Always test SSL/TLS certificates for missing intermediates

bash – History vergrößern

Die standarmäßige History-Size in der Bash beträgt 500 Zeilen. Das reicht manchmal gerade so für einen Tag an Arbeit aus. Um die History nicht zu begrenzen, fügt man folgendes ans Ende der Konfigurationsdatei /etc/bashrc an:

export HISTFILESIZE=
export HISTSIZE=

Danach neu einloggen und schon werden alle Einträge behalten.

Best practice

Best practice: Unlimited bash history
Best practice: Unlimited bash history

pageant – SSH Key Passwort speichern

Mit dem Putty Tool Pageant lassen sich ganz wunderbar die eigenen Keys speichern, damit man nicht bei jedem SSH Login das Passwort erneut eingeben muss.

Hierzu müsst Ihr lediglich Pageant herunterladen, starten und den Key eintragen.

Das Ganze lässt sich wunderbar mit dem Windows Autostart kombinieren. Dazu einfach eine Verknüpfung im Autostart auf Pageant anlegen und den Key als Parameter angeben. Z.B. so:

"C:\Program Files (x86)\PuTTY\pageant.exe" "C:\Users\xsigndll\privatekey.ppk"

Best practice

Best practice: Use pageant to save time and reduce frustration
Best practice: Use pageant to save time and reduce frustration

Fetter Text in der Konsole

Manchmal möchte man etwas fett in der Konsole darstellen. Der einfachste weg führt dabei über Escape Sequenzen innerhalb von echo:

echo -e '\033[1mTEXT\033[0m'
Konsole: Text fett darstellen
Konsole: Text fett darstellen

Erklärung

  • echo -e – Die Option -e bedeutet, dass die Escape Sequenzen interpretiert werden
  • \033 – Signal für den Anfang der Formatierung
  • kleines m – Ende der Formatierung
  • 1 – Nummer für fett (andere Varianten siehe unten)
  • [0m – Zurücksetzen der Formatierung für alle nachfolgenden Elemente

Formatierungsoptionen

  • 0 – Normale Formatierung
  • 1 – Fett
  • 2 – Kursiv
  • 4 – Unterstrichen
  • 5 – Blinkend
  • 7 – Rückwärts
  • 8 – Unsichtbar

Best practice

Best practice: Bold text in shell
Best practice: Bold text in shell