Montag, 20. Oktober 2014

Nahrungsergänzungsmittel (Zusatzernährung)

Nahrungsergänzungsmittel (Zusatzernährung)

Darm
Allgemein

Mittwoch, 6. August 2014

Windows 8.1 Update 1 installiert, oder nicht?

Herauszufinden, ob Windows 8.1 Update 1 installiert ist (was in der Regel automatisch im Hintergrund passiert), oder ob dabei Probleme aufgetreten sind, ist gar nicht "so" einfach.

In den Systemeigenschaften kann man das leider nicht erkennen, da würde man wohl nur "Service Packs" (SP x) sehen, vgl. vorhergehende Versionen.


Mit dem Windows-Befehl "winver" wird einem nur die Build-Nummer angezeigt (9600), da findet man im Internet aber leider keine eindeutige Build-Nummer für das Update 1.

Am besten schaut man bei den installierten Updates nach (Programme und Features (Software)), da muss nämlich das Update mit der Nummer KB2919355 aufgelistet sein.


Dienstag, 8. Juli 2014

Prestigio MultiPad 8.0 HD (PMP5588C); stürzt ab, schaltet/geht aus, Akku schlagartig leer; Werkszustand, Daten weg/verschwunden, hängt; kein Speicherplatz mehr

Ein Tablet um die 100 € sollte es sein, das Prestigio MultiPad 8.0 HD (Modell PMP5588C_DUO) mit Android 4.2.1 für 125 € wurde es dann. Eigentlich für das Geld recht gut, das Display ist aber etwas zu dunkel und seltsam "schimmerig" (schimmernde Partikel).

Problem ist bei dem Gerät die Firmware (PMP5588C_20130508_V1.0.12).

Das Gerät geht spontan einfach so aus, es stürzt ab, meist wenn man es gar nicht nutzt, also quasi über Nacht, obwohl es eigentlich "aus" war (Stand-by); und vor allem wenn Wi-Fi aktiv war. Manchmal auch unter'm Surfen, aber meist schlicht nicht nachvollziehbar. Der Akku ist dann oft komplett leer, bzw. wird zumindest so angezeigt; und das scheint fast schlagartig zu passieren, ohne Nutzung. Die Vermutung liegt natürlich erst einmal bei einem defekten Akku oder Kurzschluss im Inneren, oder eine App (Software) die das verursacht, aber es ist wohl eher die Firmware (Absturz, Entleerung).

Eines Tages dann: das Gerät ist wieder mal aus und geht nicht an, Akku leer; ... also ans Ladegerät. Doch dann scheint auf einmal alles weg zu sein, der Einrichtungsdialog erscheint komischerweise (englisch), kein Benutzer mehr, keinerlei Daten mehr zu finden, kein WLAN mehr, und es ist scheinbar kein interner Speicherplatz mehr vorhanden. Beim Herunterfahren hängt sich das Gerät auf. Das Gerät befindet sich im Werkszustand, aber das Gerät scheint defekt/kaputt.

Eine Onlinesuche enthüllt das Firmware-Problem des Geräts:


Dienstag, 3. Juni 2014

MySQL - InnoDB vs. MyISAM vs. ARCHIVE im Vergleich

Hier ein kleiner Performance-Vergleich, was das Einlesen und Schreiben von Daten angeht (I/O).

Grundlage ist MySQL 5.6.19 und Perl 5.10.1.
Als Datenquelle dient ein Squid-Log mit 9.244.247 Zeilen (428 MB).

Perl


Als Referenz für die I/O-Performance wird die Log-Datei zuerst nur mit Perl gelesen (OPEN), die "Spalten" dabei in einen Array gepackt und der Inhalt wiederum in eine Datei geschrieben.

Das Ganze dauert auf dem verwendeten vServer 31 Sekunden (verifiziert durch drei Läufe).

MySQL


Nun wird die Datei wieder mit Perl eingelesen, statt in eine andere Datei aber in eine MySQL-Datenbank geschrieben (INSERT INTO). Danach wird die Datenbank abgefragt (SELECT) und der Inhalt wieder ausgegeben. Die Transaktionen werden mit $dbh->prepare() vorbereitet und dann mit $sth->execute() wiederholt ausgeführt.

Getestet werden die Speicher-Engines "InnoDB" und "MyISAM", unkomprimiert und komprimiert, sowie die Engine "ARCHIVE". Ziel ist die Ermittlung der erreichbaren Lese- bzw. Abfrage- und Schreibgeschwindigkeiten sowie die entstehenden Dateigrößen.

InnoDB


...

MyISAM


...

ARCHIVE


...


Montag, 2. Juni 2014

MySQL - aktuelle Version über Repository installieren

Bei RHEL (Red Hat Enterprise Linux) und damit auch CentOS (Community ENTerprise Operating System) kommt bei der Version 6.5 das Datenbankmanagementsystem (DBMS) MySQL standardmäßig in der zwar bewährten, aber ziemlich alten Version 5.1 zum Einsatz.

Diese veraltete Version nutzt standardmäßig z.B. noch die Speicher-Engine (Storage Engine) "MyISAM"; die auch schon in der Version 5.1 enthaltende Engine "InnoDB" ist dagegen transaktionssicher und gerade bei großen Datenmengen performanter als MyISAM. InnoDB ist in neueren Versionen von MySQL die Standard-Engine.

Ein weiterer Grund, warum man eine neuere Version von MySQL verwenden sollte ist, dass die Version 5.1 noch kein richtiges UTF-8 mit 4-Byte-kodierten Zeichen unterstützt. Neuere Versionen bieten dafür auch den Zeichensatz bzw. die Zeichenkodierung "utf8mb4".

MySQL über Repository in aktueller Version installieren


Man kann die aktuelle Version von MySQL direkt von MySQL.com beziehen; die "Community Edition" ist kostenlos erhältlich. Eine Anleitung für RPM-basierte Distributionen (YUM) gibt es z.B. dort, eine Anleitung für DEB-basierte Distributionen (APT) dagegen dort.

Notwendige Schritte (für frisches Aufsetzen auf CentOS 6.5):
  1. evtl. installierte ältere Version ggf. erst deinstallieren: yum remove mysql
  2. das Verzeichnis /var/lib/mysql und dessen Inhalt ggf. löschen
  3. die passende Repo.-RPM-Datei von dort herunterladen
  4. als 'root' rpm -Uvh mysql-community-release-el6-5.noarch.rpm ausführen
  5. als 'root' MySQL installieren: yum install mysql-community-server
  6. ... der Rest kann der MySQL-Datenbank - Übersicht für Anfänger entnommen werden!


Sonntag, 25. Mai 2014

MySQL Collations - nicht nur für Sortierreihenfolge!

Eine Collation (Kollation) ist in (My)SQL eine interne Sortierfolge, also eine Sortierreihenfolge (durch Textvergleich oder Binärwertvergleich) die für eine konkrete "alphabetische Sortierung" sorgt.

Doch das ist nur die halbe Wahrheit!
=> Da gibt es noch etwas ganz Wichtiges zu beachten, nämlich wie bzw. ob bestimmte Datensätze im Zusammenhang mit einem PRIMARY KEY oder UNIQUE KEY und der standardmäßigen Kollation 'latin1_swedish_ci' überhaupt gespeichert werden!

Angenommen eine Tabelle 'tbl' hat den Zeichensatz 'latin1' (Standard) und eben die Sortierfolge 'latin1_swedish_ci' (Standard; 'ci' = case-insensitive (Groß-/Kleinschreibung wird nicht beachtet)), als Primärschlüssel (eindeutig) wird ein Textfeld VARCHAR(10) verwendet.

Möchte man nun zuerst den Wert "DE" und danach "de" speichern, dann werden nicht beide Datensätze eingetragen, sondern nur einer davon! Die interne Sortierfolge hält beide Werte quasi für gleich.

Das kann natürlich auch sinnvoll sein (kumulierte Werte), kann aber eben genauso zu unerwarteten Ergebnissen führen (fehlende oder offenbar falsche Werte).

Abhilfe schafft hier z.B. die Collation 'latin1_general_ci' oder gleich 'latin1_general_cs' ('cs' = case sensitive), hier werden im obigen Beispiel beide Werte in eine Tabelle eingetragen bzw. gefunden. Eine weitere Collation wäre 'latin1_bin', diese behandelt Datenfelder nach ihren binären Werten (schneller), was aber eine unnatürliche Sortierreihenfolge zur Folge hat ('A', dann 'B' bis 'Z', und dann erst 'a', 'b', usw.). Damit deutsche Umlaute korrekt sortiert werden, wäre wiederum die Sortierfolge 'latin1_german2_ci' nötig (kein '_cs').

Beim zu bevorzugenden UTF-8-Zeichensatz (Unicode) gibt es keine (sprachabhängige) Erweiterung '_cs', nur '_ci' und '_bin'; bei diesem Multi-Byte-fähigen Zeichensatz werden im obigen Beispiel auch mit dem Suffix '_ci' beide Werte gespeichert!

Am allgemeinsten sind 'utf8_general_ci' (Standard für UTF-8; schneller) und 'utf8_unicode_ci' (etwas genauer (ß)) bzw. 'utf8mb4_unicode_ci' (erweiterter Zeichensatz); für deutsche Umlaute (Ä/ä) wäre aber wiederum 'utf8_german2_ci' sinnvoll.

Für einen Zeichensatz kann man die Sortierreihenfolge mit COLLATE aber auch in einem SELECT, also bei einer Abfrage (Query) individuell (sprachabhängig) bestimmen.

Links:


Samstag, 24. Mai 2014

Apache Webserver unter CentOS Linux - Grundlagen für Anfänger

Wer unter Linux (hier CentOS) einen Webserver aufsetzen bzw. in Betrieb nehmen möchte, der kann sich an den folgenden grundlegenden Schritten orientieren - vor allem Anfänger.

Zum Einsatz kommen soll erst einmal der gängige und allseits bekannte Webserver "Apache 2". Als Betriebssystem dient Linux, genauer gesagt CentOS (RPM-basiert). Hierbei ist zu beachten, dass die Verzeichnispfade von anderen Linux-Distributionen wie Debian abweichen können!

Apache installieren


yum install httpd

Apache einrichten/starten


chkconfig --levels 235 httpd on (httpd beim Systemstart mit starten)
/etc/init.d/httpd start (httpd gleich starten)

Und schon erscheint bei Aufruf der eigenen Adresse (sonst lokale IP) die Apache-Standardseite:


Das Verzeichnis für die Website an sich (HTML) ist bei CentOS /var/www/html, die Konfigurationsdatei ist unter /etc/httpd/conf/httpd.conf zu finden (und weitere befinden sich in /etc/httpd/conf.d/).

PHP installieren


Sollte man nun aber dynamische Webseiten mittels "PHP" erstellen und veröffentlichen wollen, dann benötigt man eben noch PHP: yum install php

Sollte man dann noch eine Datenbank verwenden wollen, dann kann man eben zu MySQL greifen.

Das Installieren weiterer PHP-Module:

yum search php (Suche)

yum install php-mysql (MySQL-Modul)
yum phpmyadmin ("phpMyAdmin" (grafische Verwaltungsoberfläche))
yum install php-mbstring (etwa für UTF-8-Kodierung (Multi-Byte-Strings))
yum install php-xcache (XCache, ein Zwischenspeicher (Performance); eher für Fortgeschrittene)

Apache-Dienst neu starten


Wichtiger Hinweis:
Sollte das Platzieren von Dateien [z.B. index.php und/oder index.htm(l)] keinen Effekt zeigen, also scheinbar nicht funktionieren und die Apache-Standardseite evtl. weiterhin erscheinen, oder aber eine erste Datenbankabfrage zeigt keine Ergebnisse, dann sollte man den Webserver erst einmal kurz neu starten!

Der letzte Schritt (auch nach Änderungen an der Konfiguration) muss also immer sein:
/etc/init.d/httpd restart

Eine gute Anleitung dafür (von A bis Z) gibt es übrigens auch bei HowtoForge.


Freitag, 23. Mai 2014

Keine Rechnung von Amazon für Kindle-E-Book?

Erhalten Sie keine Rechnung von Amazon für Ihr Kindle-E-Book?
Möchten Sie das E-Buch steuerlich absetzen bzw. handelt es sich sogar um eine geschäftliche Fachliteratur für die Sie eine Rechnung mit ausgewiesener Mehrwertsteuer (Umsatzsteuer) benötigen?

Im Amazon-Forum liest man hier nichts gutes; es würden keine Rechnungen ausgestellt, da Kindle-Bücher nur an Privatpersonen verkauft werden. Das stimmt so aber nicht, und auch Privatpersonen können Fachliteratur von der Steuer absetzen und benötigen dafür eine Rechnung. Trotzdem muss man bei Amazon anfragen, autom. geht hier (aktuell) nichts.

=> Lösung (inkl. ausgewiesener MwSt.)


Kindle Lese-App von Amazon stürzt beim Einloggen/Anmelden ab oder hängt sich bei der Anmeldung auf?

Von Amazon gibt es mittlerweile kostenlose Kindle Lese-Apps für PC/Mac, Tablet und Smartphone; damit kann man dann Kindle-E-Books beziehen und lesen.

Dazu muss man sich in der App bei Amazon einloggen, erst danach kann man gekaufte Inhalte wie etwa Fachliteratur herunterladen bzw. synchronisieren.

Die Kindle Lese-App stürzt bei Ihnen nun beim Versuch sich einzuloggen/anzumelden aber immer ab oder hängt sich bei der Anmeldung auf? Befinden Sie sich in einem Firmennetz?

=> Das Problem kann hier nämlich ein verwendeter Proxy sein, damit kommt die Kindle Lese-App aktuell wohl nicht immer ganz klar. Also zur Anmeldung den Proxy umgehen und ohne ins Netz, dann geht es.


Die (individuellen) Dateien *.azw und *.mbp sind übrigens DRM-geschützt und können nur auf dem gleichen Gerät und vom gleichen Benutzer genutzt werden (Kopierschutz). So kann man leider auch mit Calibre keine Konvertierung vornehmen (z.B. PDF). Es ist aber durchaus möglich mehrere Kindles und Kindle Lese-Apps zu nutzen, solange man das Buch selbst erworben hat.



Was ist eine "Märchensteuer"?

Schon mal über den Begriff "Märchensteuer" gestolpert?
Was für eine gesetzliche Steuerart das wohl sein soll?

Eine "Märchensteuer" gibt es nicht, der Begriff ist lediglich ein scherzhafter Ausdruck (Wortspiel) für die "Mehrwertsteuer", also die gesetzliche Umsatzsteuer. (Ein Märchen ist diese natürlich nicht, auch wenn mittlerweile märchenhaft hoch.)

Und man muss schon gar nicht für Märchen Steuern zahlen oder dergleichen; Schriftsteller können also getrost aufatmen. ;)


Große E-Mail-Anhänge lassen sich in iOS 'Mail' (iPhone/iPad) nicht öffnen/laden?

Große E-Mail-Anhänge (etwa ab 10 MB) lassen sich auf dem iPhone oder iPad nicht öffnen bzw. laden? Nach einer Fehlermeldung scheint der Anhang zu laden, aber es tut sich nichts?

Dann beweist Apples iOS (7) mal wieder seine scheinbar achso intuitive Benutzerführung und Benutzerfreundlichkeit. ;)

=> Ganz unten in der Mail ist dann nämlich ein unscheinbarer Hinweis zu sehen (ala „Die E-Mail wurde nur im Textformat geladen.“, oder so ähnlich); dieser ist anzutippen.

Danach klappt es auch mit sehr großen Anhängen, ... also das Laden, Öffnen bzw. Speichern.


Rücksendekosten trägt nun generell der Käufer - Dank sei der EU!

Mal was richtig Gutes von der EU: Rücksendekosten trägt dank einer EU-Angleichung ab dem 13. Juni 2014 auch in Deutschland nun generell der Käufer!

Bisher war es in Deutschland so, dass der Rückversand einer online oder aus dem Katalog gekauften bzw. erst einmal nur "bestellten" Ware ohne Angabe von Gründen erfolgen konnte; die Kosten musste rechtlich zudem der Verkäufer tragen, sofern der Warenwert bei 40 € oder darüber lag. Darunter entschied die Kulanz des Verkäufers, der meist erst gar nicht mit unliebsamen Kunden zu streiten beginnen mochte.

Das waren natürlich paradiesische Verhältnisse für Onlinekäufer, einfach kaufen und zurückschicken; also das typische "Zalando"-Modell (die Firma schreibt bis heute keine schwarzen Zahlen). Zahlen musste man i.d.R. nichts, außer vllt. den Verpackungs- und Versandkosten der ursprünglichen Bestellung an sich.

Man bestellte sich 10 Paar Schuhe und schickte davon 9 oder gar alle wieder zurück, weil sie einem nicht gefielen oder weil man sie sich nicht leisten konnte, oder warum auch immer. Am Besten ging beim Anprobieren sogar auch noch etwas kaputt.

Der Verkäufer war vom Gesetz her gezwungen die Kosten für den Rückversand zu übernehmen (sofern Warenwert über 40 €). Die Ware die zurück kam war weder neu noch originalverpackt, und wenn kein Grund angegeben wurde, dann war es auch möglich, dass z.B. irgendetwas kaputt war, nur was? Im schlimmsten Fall war der Wert gemindert oder die Ware sogar nicht weiter verwendbar, also u.U. sogar schlicht unverkäuflich (gerade bei Spezialanfertigungen, etwa auf DaWanda & Co.).

Im Extremfall blieb man als Verkäufer also auf den gesamten Kosten sitzen, plus Rücksendekosten die ganz klar vom Käufer verursacht wurden. Und man wusste nicht mal was denn nun mit der Ware nicht stimmte.

Das wird sich nun gerechterweise ändern. Der Käufer muss, wie es sich gehört, einen Grund angeben, damit man dann auch weiß warum (zurücknehmen muss man den Artikel als Verkäufer aber weiterhin (Gesetz bzw. Recht des Käufers), denn bei einer Onlinebestellung kann die Ware ja letztlich auch mal anders "ausfallen" als gedacht, und im Laden vor Ort hätte man sich dann z.B. erst gar nie dafür entschieden).

Und wenn der Käufer meint den Artikel doch nicht mehr haben zu wollen, dann soll er bitte auch die Kosten für die Rücksendung der Ware an den Eigentümer tragen (wie beim Kauf ja auch der Fall) - der Kunde ist dann ja auch immerhin der Kostenverursacher. Und wieso soll der Verkäufer dafür bezahlen dass doch der Käufer (s)ein offensichtliches Risiko (unbesehen) eingeht?

Reklamationen sind hiervon natürlich ausgenommen (Nachbesserung), denn da behält der Kunde ja die Ware bzw. muss eine intakte bekommen!


Samstag, 17. Mai 2014

MySQL-Datenbank - Übersicht für Anfänger

Hier eine kleine Übersicht/Sammlung der grundlegenden Schritte, um eine MySQL-Datenbank auf Linux-Ebene (CentOS) zu installieren, einzurichten, eine Datenbank mit Tabellen zu erstellen und damit zu arbeiten - ideal für Anfänger.

MySQL installieren


yum install mysql
yum install mysql-server

Wichtiger Hinweis:
Unter CentOS 6.5 (RHEL 6.5) kommt z.B. noch die Version 5.1 von MySQL zum Einsatz. Wer eine neuere Version verwenden möchte, der kann diese auch über ein MySQL-Repository beziehen!

MySQL einrichten/starten


chkconfig --levels 235 mysqld on (mysqld beim Serverstart mit starten)
/etc/init.d/mysqld start (mysqld gleich starten)

MySQL sicher machen (Passwort)

MySQL ist der Einfachheit halber zuerst einmal ziemlich offen was die Berechtigungen angeht, ohne ein Passwort, mit Vollzugriff auf die Datenbanken und mit einem anonymen Benutzer. Das wäre natürlich fatal für die Sicherheit im produktiven Einsatz!

Ganz besonders wichtig ist daher das Ausführen des folgenden Befehls:

mysql_secure_installation
  1. Altes Passwort eingeben (leer)
  2. Neues Kennwort eingeben!
  3. Anonyme Benutzer entfernen!
  4. Login von Extern untersagen!
  5. Testdatenbank (Zugriff) entfernen
  6. Rechtetabellen neu laden
Hierbei geht es aber erst einmal nur um den 'root'-Zugang; zum weiteren Abhärten (Steigerung der Sicherheit) sollte man dann auch noch Benutzer anlegen, die ggf. nur eingeschränkte Rechte auf bestimmte Tabellen besitzen, siehe MySQL-Benutzerkontenverwaltung.

MySQL-Datenbank und Tabelle erstellen


mysqladmin -u root -p create DATENBANK (Datenbank erstellen)
 (Passwort ist standardmäßig leer)

mysql -p
mysql>use DATENBANK;

mysql>CREATE TABLE Tabelle (id INT NOT NULL AUTO_INCREMENT, Text VARCHAR(10) NOT NULL, PRIMARY KEY (id)); (Tabelle erstellen, siehe auch Datentypen und deren Speicherbedarf)

mysql>ALTER TABLE Tabelle MODIFY Text VARCHAR(255); (nachträgliche Änderung vornehmen)
mysql>ALTER TABLE Tabelle ADD eMail VARCHAR(50); (nachträgliche Erweiterung)

mysql>CREATE INDEX Textindex on Tabelle (Text); (Index erstellen)

mysql>LOAD INDEX INTO CACHE Tabelle; (Tabellenindex gleich in den Speicher laden (MyISAM))

mysql>ALTER TABLE Tabelle DROP INDEX Textindex; (Index löschen; auch für Spalten mgl.)

mysql>TRUNCATE TABLE Tabelle; (Tabelle leeren (FLUSH ist für Cache))

mysql>DROP TABLE Tabelle; bzw. DROP DATABASE DATENBANK; (löscht Tabelle/Datenbank)
mysql>exit

Dateien auf Dateisystemebene finden


Die erzeugten Datenbankdateien kann man sich dann auf Dateisystemebene gleich schon mal anzeigen lassen:

cat /etc/mysql/my.cnf oder cat /etc/my.cnf ("datadir="); my.ini unter Windows (C:\Programme)
ls -la /var/lib/mysql/DATENBANK

MyISAM-Struktur:

./db.opt (Datenbankeigenschaften)
./Tabelle.frm (Spalten (Tabellendefinition))
./Tabelle.MYD (Daten)
./Tabelle.MYI (Indizes)

InnoDB-Struktur:

./db.opt (Datenbankeigenschaften)
./Tabelle.frm (Spalten (Tabellendefinition))
./Tabelle.ibd (Daten und Indizes)

Hierfür ist die Option innodb_file_per_table in der Konfigurationsdatei "my.cnf" zu beachten; ohne jene werden Tabellen in einem gemeinsamen "Tablespace" gespeichert, ohne diesen aber auch einzelne IBD-Dateien nicht zugänglich wären (umständlicher als bei MyISAM). Es gibt natürlich Vor- und ggf. Nachteile, aber der File-per-Table-Modus ist ab MySQL 5.6.6 der Standard.

MySQL-Datenbank nutzen/verwenden


mysql -p
mysql>use DATENBANK;
mysql>INSERT INTO Tabelle (Text) values ("Hallo!"); (Daten einfügen; Vorsicht mit DELAYED)

mysql>SELECT * FROM Tabelle; (Inhalt der Tabelle ausgeben)

mysql>UPDATE Tabelle SET Text = "Ciao!" WHERE id = 1; (Inhalt ändern)

mysql>REPLACE INTO Tabelle (Text) values ("Hallo!"); (Ersetzung; klappt aber nur, wenn "Text" ein Schlüsselfeld ist (PRIMARY oder UNIQUE KEY), ansonsten wird ein INSERT vorgenommen)

mysql>DELETE FROM Tabelle WHERE id=1; (Datensatz löschen)

mysql>INSERT INTO Tabelle (id, Text) VALUES (1, "Hallo!") ON DUPLICATE KEY UPDATE Text="Ciao!"; ("Upsert"; entweder INSERT oder UPDATE; macht nur Sinn wenn "Text" PRIMARY oder UNIQUE KEY wäre, statt hier mit der fortlaufenden ID (autoinkrementeller Wert) als Primärschlüssel)

mysql>CREATE VIEW Sicht AS SELECT Text FROM Tabelle WHERE id<10; (virtuelle Tabelle erstellen, hier mit den ersten 10 Einträgen)

mysql>SELECT * FROM Tabelle WHERE Text="Ciao!"; (bestimmten Inhalt der Tabelle ausgeben)
mysql>exit

Mit SELECT kann man dann übrigens ganz viele tolle Sachen machen, etwa mittels JOINs.


Des Weiteren gibt es übrigens noch LOAD DATA INFILEHANDLER und DO, aber das hier rein nur zur Vollständigkeit. Für Fortgeschrittene gibt es auch sog. "Subqueries" (auch "Subselects" genannt), also Unterabfragen innerhalb einer Abfrage.

Siehe auch



Wichtig: Wenn Sie Eingaben von Benutzern verarbeiten, etwa über PHP (Formulareingaben oder über Parameter in der URL), dann verwenden Sie unbedingt Platzhalter (Prepared Statements), Escapes/Typumwandlungen oder Data Objects um eine SQL-Injection (Verarbeitung von Code) zu verhindern!

Tipp: Eingegebene Befehle kann man auf Konsolenebene (Terminal) mit der [Pfeil-nach-oben]-Taste erneut aufrufen, gespeichert werden diese im Benutzerprofilverzeichnis als .bash_history und für MySQL in der .mysql_history (als einfacher Text); die kann man sich dann auch sichern!


Donnerstag, 15. Mai 2014

Priorisierung unter Linux - nice, renice, cpulimit, ionice, trickle und Quota

Unter Linux kann man Prozesse wunderbar priorisieren oder limitieren, der wohl geläufigste Befehl ist nice bzw. renice, mit dem man die Priorität von Prozessen verändern kann.

Doch da gibt es noch mehr: cpulimit (CPU), ionice (Festplatte), trickle (Netzwerk/Bandbreite) oder auch die Möglichkeit von Disk Quota (Kontingent).

Mit "Runter vom Gas – Prozesse unter Linux drosseln" (extern) gibt es zusammengefasst einen beschreibenden Blogeintrag zu diesen Werkzeugen.


Mittwoch, 14. Mai 2014

Veeam Backup & Replication 7.0 - temporäre Dateien werden nicht gelöscht?

Sollte man Veeam Backup & Replication 7.0 im Einsatz haben und feststellen, dass die Festplatte/Partition voll läuft, dann kann die Ursache sein, dass Veeam temporäre Dateien nicht löscht.

Die Daten liegen im Benutzer-Verzeichnis "C:\Users\backupveeam\AppData\Local\Temp".


=> Für diesen Bug (Fehler) gibt es aber unlängst ein Patch [.715] bzw. Patch 3 [.839]!

Die temporären Daten, die vor dem Einspielen des Updates erzeugt wurden, muss man aber händisch löschen!


Datenträgerbereinigung fehlt bei Windows Server 2008?

Die Möglichkeit der Datenträgerbereinigung fehlt bei Windows Server 2008 (auch R2 SP1)?

Der Grund ist das Fehlen eines dafür benötigten Features, der "Desktopdarstellung".
Auch die EXE-Datei "cleanmgr" fehlt dann, was natürlich ärgerlich ist.

Wer nicht Software wie den CCleaner (Freeware) einsetzen möchte, der muss das Feature "Desktopdarstellung" hinzufügen.



Windows-Ordner WinSxS - für was, und warum so groß?

Wem schon mal das Windows-Verzeichnis WinSxS wegen seiner Größe aufgefallen ist, der fragt sich natürlich was sich darin befindet, was das denn alles ist bzw. ob man das noch braucht oder evtl. löschen kann.

Gerade wenn die Partition C:\ voll läuft und kaum mehr Platz da ist, fragt man sich warum dieser Ordner denn so groß ist.


Der Ordner enthält frühere Update-Dateien, also Installationspakete wie ein Service-Pack; diese bleiben erst einmal auf dem PC liegen (um etwa wieder deinstalliert werden zu können). Diese nicht mehr zwingend benötigten Daten können aber auch bereinigt werden!

Am besten/einfachsten nutzt man dazu die Datenträgerbereinigung.

Siehe auch



Was ist das AEG-Prinzip? - a.e.g.

Was versteht man unter dem AEG-Prinzip (a.e.g.)?

Im IT/EDV-Bereich beschreibt dieser Ausdruck ein simples Lösungsprinzip bei teils unerklärlichen Problemen, denn der Begriff bzw. die Abkürzung steht schlicht für "ausschalten, einschalten, geht".

Vieles lässt sich nämlich ganz einfach durch einen Reboot (Neustart) des Gerätes beheben, damit Betriebssystem/Firmware und Software frisch sind und wieder fehlerfrei laufen.
Das wirkt oft Wunder, vor allem auch bei Smartphones (Akku raus). ;)


Firmenkontakte/E-Mails fehlen auf iPhone oder iPad? - mögliche Ursachen

Ihnen fehlen Firmenkontakte auf Ihrem geschäftlichen iPhone oder iPad?
Und/oder es kommen keine E-Mails mehr?

Im Folgenden sind mögliche Ursachen aufgelistet, quasi als "Checkliste":

  • ActiveSync (Abgleich/Synchronisation mit Firma (z.B. Exchange)):
    • Wurde das Passwort geändert (Windows/Citrix)?
      • Kommt eine Meldung mit „fehlgeschlagen“?
      • Dann unter Einstellungen > „E-Mail, Kontakte“ > „Firma XY“ das Kennwort aktualisieren!
    • Hat das Handy überhaupt ein Datennetz/WLAN?
    • Ansonsten das Smartphone-Handy/Tablet mal aus- und anschalten. (AEG)
      • (Termine, iPad; "Bug")
  • Ist unter „Mail“ in den Gruppen (links oben) „Firma XY“ angehakt?
  • Ist unter Einstellungen > „E-Mail, Kontakte“ > „Firma XY“ die Synchronisation aktiviert?
    • Welche Zeiträume sind hier eingestellt? (falls nur alte Kontakte/Mails fehlen)


Samstag, 10. Mai 2014

Günstige Anbieter für .de-Domains

Eine .de-Domain kostet üblicherweise ca. 10-12 € pro Jahr, vgl. z.B. STRATO.

Doch es geht auch günstiger (auch werbefrei), mit den folgenden Anbietern z.B.:

Siehe auch

Montag, 5. Mai 2014

Antivirensoftware schlägt immer weniger oft an

Laut Symantec gehört Antivirensoftware immer mehr der Vergangenheit an, heutige Angriffe auf PCs können von jener wohl nur noch zu ca. 45% erkannt werden.
Dann ist das also der Grund warum "AntiVir" so gut wie nie anschlägt, obwohl sich definitiv und offensichtlich Schadsoftware auf dem PC befindet. ;) Komischerweise findet Kaspersky & Co. dafür dann aber meist den Übeltäter. ;)

Da fragt man sich doch, von wo die "Zeitschriften" und Institute die Viren für Ihre Tests herbekommen, die dann erkannt werden (müssen). ;)

P.S.: Ganz krass ist das Versagen bei - sogar offensichtlicher/eindeutiger - Malware, siehe "Viren-Heuristik ausgetrickst"!


Sonntag, 4. Mai 2014

SQL- bzw. Datenbank-Hosting

Eine SQL-Datenbank ist heute eigentlich bei jedem Webhosting mit dabei, es gibt aber auch spezielle SQL- bzw. Datenbank-Hosting-Angebote.


Freitag, 2. Mai 2014

Zwei-Faktor-Authentifizierung bzw. Benachrichtigung per SMS

Wer sich für seine Website oder App eine Zwei-Faktor-Authentifizierung per SMS einrichten möchte um die Sicherheit zu erhöhen, oder wer sich in Problemfällen per SMS benachrichtigen lassen möchte, der kann auf folgende Dienste zurückgreifen:


SMB vs. CIFS

SMB und CIFS sind im Prinzip das selbe, denn CIFS ist aber der "erweiterte Dialekt" von SMB.

Samba (Linux) nutzt das SMB-Protokoll, jedoch ist der Einsatz von CIFS empfehlenswert.

In Dolphin oder Konqueror (KDE) wird auf eine Windows-Freigabe z.B. mit smb://user@192.168.1.9/share zugegriffen; die Performance lässt hier aber zu wünschen übrig (und kann das Netz belasten). CIFS scheint da besser zu sein.

Windows-Freigaben können unter Linux auch fest als Verzeichnis eingebunden werden:

mount -t cifs -o user=Benutzername Benutzername@//192.168.1.9/Freigabe Verzeichnisname

Somit kann man dann z.B. auch mit (G)rsync seine Daten mit max. Geschwindigkeit sichern (vgl. RichCopy (Robocopy/xcopy)).

Links:


Webhosting - mit viel Speicherplatz (Webspace)

Beim Webhosting gibt es teils große Unterschiede, denn manche Anbieter haben nur wenig Speicherplatz (Webspace) im Angebot. Dabei haben sich die Zeiten doch geändert, und "Speicherplatz ist günstig" (außer man nutzt SSD).

So bekam man bei STRATO mit dem Paket "BasicWeb XL" für 3,99 € im Monat einst z.B. "nur" 1 GB Speicherplatz (was vor ein paar Jahren noch viel war), aktuell bekommt man aber sogar schon mit dem Einsteigerpaket "PowerWebStarter" für nur 2,99 € ganze 15 GB Webspace.

Schon vor Jahren boten manche Anbieter auch kostenloses Webhosting, sogar ohne Werbefinanzierung; etwa Byethost, Awardspace oder Freehostia - heute noch mit ganzen 250 MB Speicherplatz. ;)

Im Folgenden eine kleine Sammlung an "alternativen" Webhosting-Anbietern.

Kostenlos


Anbieter Speicherplatz Datenverkehr Preis/Monat
BlueAngelHost 500 MB 100 GBit/s kostenlos
Ohost 5 GB unbegrenzt kostenlos
Square7 7 GB unbegrenzt kostenlos
Free Hosting 10 GB 250 GB kostenlos
kilu 10 GB unbegrenzt kostenlos
CwCity unbegrenzt unbegrenztkostenlos
lima-city unbegrenzt unbegrenzt kostenlos
Stand: 2014-05-02

Mit diversen Zahlungsmöglichkeiten


Anbieter Speicherplatz Datenverkehr Preis/Monat
1blu 150 GB inklusive 11,90 €
1&1 unbegrenzt inklusive 9,99 €
DreamHost unbegrenzt inklusive $8,95 Dollar
Arvixe unbegrenzt inklusive 4,00 € mgl.
Certified Hosting unbegrenzt inklusive $3,95 Dollar
ServageOne unbegrenzt inklusive $3,95 Dollar
BlueAngelHost unbegrenzt inklusive $3,75 Dollar
Host-Unlimited 100 MB |
unbegrenzt
inklusive |
inklusive
3,00 € |
7,00 €
GoDaddy 100 GB |
unbegrenzt
inklusive |
inklusive
2,75 € |
3,49 €
OVH 100 GB inklusive 2,49 €
Stand: 2014-05-02

... und es gibt noch viele mehr, siehe z.B. Webhostlist (gefiltert) oder HOSTtest.

Siehe auch


Noch aufzunehmen



Alternative DNS-Server - OpenDNS & Co.

Bei privaten DSL-Anschlüssen sind DNS-Server am Router meist vom Provider vorgegeben.

Von PCs aus kann man aber statt der Routeradresse auch alternative DNS-Server nutzen, etwa von OpenDNS. Bei manchen Routern kann man die DNS-Server auch gleich direkt ändern (bzw. je nach Einstellung).

Beispiel

  • PC bekommt über DHCP die DNS-Server-IP 192.168.1.1 (Router)
  • Router bekommt seine DNS-Server-IPs vom Provider, z.B. 195.50.140.118 (Arcor/Vodafone)

Durch das Ändern dieser IP(s) am PC, kann man die Hostnamen im Internet z.B. über OpenDNS auflösen lassen und hat damit mehr Kontrolle/Sicherheit darüber woher angefragte Daten kommen, vgl. Angriffe auf Router.(1, 2)

Kontrollieren kann man die verwendete IP mit dem folgenden Befehl:

nslookup www.google.de
ipconfig /all (Windows)

Die Erreichbarkeit einer öffentlichen DNS-Server-IP kann man übrigens so testen:

nslookup www.google.de 195.50.140.118

OpenDNS bietet dabei einige Vorteile, siehe Wikipedia; so z.B. auch ein "FamilyShield" (umgehbar durch IPs).

Es gibt aber noch andere Alternativen, so z.B. OpenNIC, oder auch von Google mit "Google Public DNS" (öffentliche Nameserver).(?)

Donnerstag, 1. Mai 2014

Öffentliche Cloud-Speicher (Public Cloud Storage) im Vergleich

Cloud-Speicher (Cloud Storage) gibt es mittlerweile wie Sand am mehr, dabei handelt es sich aber zumeist um private Cloud-Speicher (Private Cloud Storage), also Onlinespeicherplatz vorrangig für einen selbst.

Beispiele hierfür sind Dropbox, Microsoft OneDrive (ehem. SkyDrive), Apple iCloud, Google Drive, Amazon Cloud Drive, auch STRATO HiDrive, SugarSync und Wuala.

Wer aber mit einem öffentlichen Cloud-Speicher (Public Cloud Storage) nach einem Webserver-Ersatz für statische Inhalte sucht (kein PHP möglich), der kann einen der folgenden Dienste nutzen.

Gemeinsam ist den öffentlichen Cloud-Speichern, dass der Datenverkehr (Traffic) nicht inklusive ist, sondern bezahlt werden muss:

Vergleich


Cloud-Speicher Preis pro GB (Speicherplatz) Preis pro GB (Übertragung)
Amazon S3 $0,03 US-Dollar $0,12 US-Dollar
Google Cloud Storage $0,026 US-Dollar $0,12 US-Dollar
Rackspace Cloud Files  0,07 EUR  0,08 EUR
OVH Public Cloud Storage  0,087 EUR  0,011 EUR
Stand: 2014-05-01

OVH hat hier den Vorteil, dass die Kosten für die Datenübertragung sehr viel geringer ist, zudem scheinen keine weiteren Kosten hinzuzukommen (vgl. unten); Google und Amazon haben ihren Preisvorteil dagegen dann, wenn Daten einfach nur gespeichert/archiviert und kaum abgerufen werden.

Nachteile von öffentlichen Cloud-Speichern gegenüber herkömmlichem Webhosting bzw. Webservern:
  • keine dynamischen Inhalte möglich (kein PHP/SQL, jedoch HTML, CSS, JS und natürlich Dateien wie Bilder und Videos)
  • bei hohem Traffic kann es unvorhergesehen teuer werden
  • bei vielen kleinen Dateien können zusätzlich Kosten für Anforderungen ins Gewicht fallen (PUT, COPY, GET, POST, LIST, DELETE)
  • gerade bei hohen Datenmengen verbunden mit merklichem Datenverkehr haben virtuelle Server oder ein Webhosting ihre Vorzüge; für die Datenübertragung muss man da nämlich nicht zusätzlich zahlen, und der Speicherplatz kostet teils ähnlich oder gar weniger (bei vServer grob 0,03 € pro GB)

Siehe auch

Sonntag, 27. April 2014

Tails Linux bootet nicht von USB?

Tails Linux (v0.23) bootet nicht von USB?

Mit UNetbootin lässt sich Tails nicht booten, es wird kein startbares Betriebssystem gefunden.

Mit YUMI (Universal USB Installer (Pendrivelinux)) bootete die ISO grundsätzlich, der Bootloader konnte die Distribution dann jedoch nicht starten (fing immer wieder von vorne an zu zählen).

Das Entfernen von "live-media=removable" aus den Boot-Optionen half da auch nichts.

Ein wertvoller Tipp brachte mich dann auf den Linux Live USB Creator (LiLi), damit klappt es einwandfrei!


Datei "pagefile.sys" vs. "swapfile.sys" - was ist der Unterschied?

Was unter Windows einst die Datei "swapfile.sys" war, wurde in neueren Versionen zur "pagefile.sys"; also nichts anderes als eine Auslagerungsdatei.

Ist nicht mehr genügend Arbeitsspeicher frei, dann schreibt das Betriebssystem auf die Festplatte.

Die Systemdatei "pagefile.sys" kann recht groß werden, die Größe kann man aber einschränken, und die Datei auch gleich komplett auf eine andere Partition auslagern.
Unter Windows 8(.1) gibt es zwei verschiedene Auslagerungsdateien, denn hier ist die Datei "swapfile.sys" älterer Windows-Versionen zurück. Diese wird jedoch wohl nur als spezielle, separate Auslagerungsdatei für die Modern UI genutzt, also für die "Metro"-Apps.

Datei hiberfil.sys löschen/entfernen oder verkleinern

Kaum mehr Platz auf der Festplatte bzw. Partition C:\?

Wer viel Arbeitsspeicher verbaut hat, der kann die Systemdatei "hiberfil.sys" angehen, denn diese kann dann sehr groß sein:


Das Beispiel zeigt die Datei bei 8 GB RAM, jedoch hat Windows aufgrund der vollen Partition die Datei hier schon autom. etwas reduziert.

Die Datei "hiberfil.sys" (nicht "hyberfil.sys";) dient dem Ruhezustand ("hibernation file"). Diesen kann man auch ganz einfach deaktivieren, und damit die Datei ganz entfernen (die Datei einfach zu löschen funktioniert nicht):
  • cmd (als Administrator)
  • powercfg -h off ("on" zum (Re-)Aktivieren)
Um die Größe lediglich noch weiter zu reduzieren, also die Datei zu verkleinern und damit mehr Platz freizugeben, gibt es ebenfalls einen Befehl:
  • powercfg -h -size 50 (50% vom RAM)

Weniger als 50% sind standardmäßig jedoch nicht möglich, außer man macht es über die Registry:
  • regedit (als Administrator)
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power
    • HiberFileSizePercent (%-Wert)
Nach einem Neustart hat die "hiberfil.sys" die gewünschte Größe.

Aber Vorsicht, die Größe sollte nicht zu gering gewählt werden; wenn mal viel im Arbeitsspeicher ist und der PC in den Ruhezustand geht, dann muss das alles in dieser Datei auf der Festplatte Platz haben; ansonsten kommt wohl ein BSOD Bug Check 0xA0: INTERNAL_POWER_ERROR.

Donnerstag, 24. April 2014

vServer (VPS/Cloud Server) im Vergleich - virtuelle Server im Test

Auf der folgenden Seite soll eine Übersichtstabelle entstehen, in der virtuelle Server bekannter Anbieter wie auch äußerst günstiger Anbieter miteinander verglichen werden. Dazu werden vServer (engl. VPS für "Virtual Private Server", und ggf. "Cloud Server") die in Frage kommen real getestet bzw. geprüft, anhand der typischen Leistungsindikatoren. Wer einen virtuellen Server "mieten" möchte, dem hilft diese Übersicht vllt. bei der Auswahl bzw. Entscheidung etwas weiter.

Es sollen hier mit den Testergebnissen im Einzelnen dann auch Erfahrungsberichte entstehen.

Vergleich


Bezeichnung (vServer) Typ CPUs RAM HDD Netzwerk Preis/Monat
1aWWW
vServer Mini IPv6
? 1x? GHz 1 GB 11 GB Flatrate 1,00 €
Comsitec VServer
Starter
? 1 vCore 128 MB 2,5 GB Flatrate 1,29 €
OVH VPS Classic 1 OpenVZ 1 vCore 1 GB 10 GB Flatrate 2,40 €
NbIServ vServer
VS-Prepaid-2014
OpenVZ ? 256 MB 20 GB Flatrate 2,70 €
myVirtualserver OVZ-1 OpenVZ 1x3,6+ GHz 1 GB
1 GB Burst
25 GB 1 GBit/s 3,00 € +Z.
Comsitec VServer Medium ? 3 vCores 1 GB 10 GB Flatrate 3,99 €
Colorhost OpenVZ
Small Red
OpenVZ 4 vCores 512 MB
1 GB Swap
50 GB Flatrate 3,99 €
netcup Root-Server S KVM 1x? GHz 1 GB 60 GB Flatrate 4,49 € /
4,99 €
netCiX V-Server
OVZ-SMALL
OpenVZ 2 vCores 2 GB
4 GB Swap
100 GB Flatrate 4,90 €
ServerBiz vServer L v3 OpenVZ 1 vCore 1-2 GB 55 GB Flatrate 4,90 € +Z.
Smart Weblications
KVM VServer Linux
KVM 0,25 vCores 256 MB 10 GB Flatrate 4,90 € +Z.
Xeon Hosting vServer S ? 1 vCore 1 GB
2 GB Swap
25 GB Flatrate 4,99 € +Z.
1&1 Virtual Server L ? ? 1-2 GB 50 GB Flatrate 4,99 € /
9,99 €
vSell prepaid vServer ? ? GHz 200 MB
250 MB Swap
7 GB Flatrate 5,99 € +R.
leaseweb
Virtual Server S
KVM 1 vCore 1 GB 40 GB Flatrate 7,00 €
Host-Unlimited
vServer Light
OpenVZ 2,1+ GHz 2 GB 150 GB Flatrate 7,49 € /
9,95 € +Z.
united hoster
Standard VPS Linux
Parallels 4x1,2 GHz 2 GB 200 GB Flatrate 7,90 € +R.
1blu vServer LP ? bis 1 vCore 2-4 GB 80 GB Flatrate 7,90 € +R.
ZAP-Hosting
Windows vServer
ZAP 1x3,4 GHz 512 MB 25 GB Flatrate 7,90 € +Z.
Hetzner vServer VQ7 ? 1 vCore 512 MB 20 GB Flatrate 7,90 €
Contabo VPS M ? 1x3,2 GHz 4 GB 200 GB Flatrate 7,99 €
STRATO V-Server
Linux Level 1
? ? GHz 1-2 GB 50 GB Flatrate 7,99 €
netcup Root-Server M KVM 1x? GHz 4 GB 240 GB Flatrate 8,49 € /
9,49 €
Server4You
vServer PRO X5
? 2x? GHz 2-4 GB 200 GB Flatrate 8,85 €
united hoster
Standard VPS Windows
Parallels 4x1,2 GHz 2 GB 200 GB Flatrate 8,90 € +R.
simplyroot
Vserver G5.1
? 3 vCores 2-4 GB 80 GB Flatrate 8,90 €
STRATO V-Server
Windows Level 1
? ? GHz 1 GB 50 GB Flatrate 8,99 €
webtropia vServer
Linux S
Parallels 2x? GHz 2-4 GB 250 GB Flatrate 9,99 € +R./Z.
webtropia vServer
Windows S
Parallels 2x? GHz 2 GB 250 GB Flatrate 9,99 € +R./Z.
DreamHost VPS LVS ? GHz 300 MB unbegrenzt Flatrate $15,00 (US)
netcup Root-Server L KVM 2x? GHz 8 GB 500 GB Flatrate 14,49 € /
15,99 €
Host Europe
Virtual Server Advanced
Parallels 2 vCores 4 GB 300 GB Flatrate 16,99 €
netcup Root-Server XL KVM 4x? GHz 16 GB 1 TB Flatrate 23,89 € /
25,99 €
Stand: 2014-04-24
Preise gelten, sofern nicht anders gekennzeichnet, für die jew. geringst mögliche Vertragsbindung (Dauerpreise).
+E. = zzgl. einmalige Einrichtungskosten (Installation)!
+R. = Ressourcen einfach zubuchbar (Cloud)
+Z. = zusätzliche Zahlungsmöglichkeiten

Anmerkungen


Bezeichnung (vServer) Besondere Vor- oder Nachteile
1aWWW vServer IPv4 nehmen, falls Webserver (+0,50 €); Server bei OVH; inkl. Doku
netcup
Root-Server
ECC-RAM; auch FreeBSD und Windows Server mgl.; 1 Monat mgl.;
Storagespace-Erweiterung mgl. (0,05 € pro GB); Lab-Test mgl.
NbIServ vServer auch PrePaid mgl.
myVirtualserver 2 Tage kostenlos/unverbindlich zu testen; PrePaid
Smart Weblications 12 Stunden kostenlos testen
vSell prepaid vServer PrePaid, aber relativ teuer; kostenloser Test mgl. (nur 1 Std.)
simplyroot 7 Tage kostenlos testen
webtropia vServer Windows ohne Aufpreis; Cloud (erweiterbar); 1 Monat und PrePaid mgl.
Server4You vServer SSD möglich; 1 Monat mgl.; nur Linux;
nur noch Dedicated Root Server für 30 Tage kostenlos zu testen
Alfahosting 7 Tage kostenlos testen
EUserv 1 Jahr lang testen mit Trial-Edition, für 2,38 €
Stand: 2014-04-24

Hinweis: Eine der ersten und wichtigsten Aktionen, die man bei solchen öffentlichen Servern machen sollte ist, die Firewall zu prüfen und den Server erst einmal so gut wie möglich zu sichern, bei Linux etwa mit iptables.

Dabei ist natürlich wichtig, dass man sich nicht selbst komplett aussperrt (SSH), und dass man sich später nicht wundert warum der Server keine gewollten Verbindungen annimmt. ;)

Siehe auch


Noch aufzunehmen


Es werden sogar kostenlose vServer angeboten ["free VPS"]:
  • yocats.com
    • freevpsss.com (5jelly, 3jelly)
Man sollte jedoch spätestens hier vorsichtig werden; es gibt sogar VPS die durch Einwilligung zur Telefonwerbung kostenlos zu bekommen sind (VPSbyCall, GratisVPS), oder die dann keinen Festplattenplatz bieten (freeserver.co).


Mittwoch, 23. April 2014

Facebook "Like-Button", aber datenschutzkonform bitte!

Wer kennt sie nicht, die ganzen "Share"-Buttons im Internet.

Auf den meisten Seiten hat man nämlich die Möglichkeit einen "Facebook-Like" zu vergeben, eine "Google+"-Empfehlung zu äußern, zu twittern oder den Link einfach mit anderen zu teilen.

Soziale Lesezeichen/Empfehlungen

Dafür gibt es für die Internetseite auch fertige "Pakete" zum Einbinden, mit denen man dann das Teilen auf den verschiedensten Plattformen ermöglichen kann, etwa mit AddThis, ShareThis oder Shareaholic und wie sie eben alle heißen.

Einen "Like-Button" für Facebook kann man sich aber z.B. auch direkt dort auswählen.
Likes und Shares kann man sich bei Facebook mit dem Graph (JSON) anzeigen lassen, siehe auch Graph API.

Doch mit dem direkten Einbinden solcher "Social Buttons" könnte es in Deutschland künftig vermehrt Probleme geben, konkret wegen dem deutschen Datenschutzrecht.
Meist werden die Logos sowie z.B. Skripte für Funktionen direkt beim Laden einer Seite gleich mit vom Server von Facebook & Co. geladen, oder zumindest vom Server des "Share-Button"-Anbieters, und dort sieht man mittels Referrer (Browser) wer sich wo herumtreibt.

Wer sich schon vorab vor Abmahnungen seitens dubioser Anwälte schützen möchte, der sollte seine Seiten deshalb datenschutzkonform bzw. schon im Voraus "datenschutzfreundlich" aufbauen. Die großen Datensammler Facebook und Google können jemanden über das gesamte Internet verfolgen, oft mit nur wenigen Lücken.

Besucher und Nutzer einer Seite sind dann darauf hinzuweisen, dass Zweite und Dritte ebenfalls Zugriff auf die Besucherdaten erhalten und wie das zu verhindern ist, bzw. was der Betreiber selbst mit den gesammelten Daten anfängt bzw. rechtlich anfangen darf (Datenschutzbestimmungen/-richtlinien), notfalls im Impressum (Pflicht).

Heise.de hat sich hier als ein Vorreiter erwiesen, mit 2 Klicks für mehr Datenschutz. Die Technik bzw. Idee kommt so z.B. auch bei WordPress zum Einsatz und nutzt jQuery.

Man muss die "Like"- und "Share"-Buttons erst einmal aktivieren (Opt-in), bevor Verbindung mit den Servern der Datensammler aufgenommen wird. Das hat dann z.B. auch gleich drei große Vorteile:
  1. Datenschutz wird gewährleistet (Gesetz)
  2. die Sicherheit wird erhöht
    • (keine Skripte von externen, evtl. kompromittierten Servern denen man nicht vertraut; vgl. auch NSA-Skandal)
  3. die Ladezeit einer Seite wird verbessert (Performance)
Zudem wirkt das Ganze auch weniger "aufdringlich".

Wenn ein Besucher etwa von Facebook herkommt (Referrer), dann lässt sich überlegen ob man den entspr. Button für diesen Besucher nicht gleich aktiviert anzeigen lässt.

Eine "statische" Alternative ist, die Icons der Share-Buttons auf dem eigenen Server abzulegen und keine Skripte einzubinden. Denn die Übergabe der URL geschieht i.d.R. über einen GET-Aufruf mit der eigenen URL als Parameter; dies lässt sich u.U. mit einem gewöhnlichen Link realisieren: https://twitter.com/intent/tweet?url=http://edvler.blogspot.de

Besucherzähler

Datenschutzrechtliche Bedenken gelten übrigens auch für "Tracking-Code" (Traffic), also letztlich der Speicherung von Besucherdaten, etwa zum Zweck der Auswertung der Seitenbesuche (Statistik, Conversion Rate, ...).
Wer Google Analytics oder etwa Piwik auf seinen Seiten einsetzt, der sollte in Erwägung ziehen dies deutlich zu kennzeichnen (Datenschutzbestimmungen/-richtlinien) und es ermöglichen, der Datensammlung zu widersprechen (Opt-out). Beim erstmaligen Aufrufen einer Seite wird man aber dann noch protokolliert, außer dies ließe sich programmtechnisch rückwirkend bereinigen; ein Opt-In-Verfahren macht hier natürlich gar keinen Sinn.

Ratsam ist bei Piwik z.B. der Einsatz von "AnonymizeIP" (Plug-in), damit werden IPs nämlich anonymisiert. Webhosting-Anbieter bieten auch Webserver-Logdateien zum Download an, die man selbst auswerten kann, die IP-Adressen sollten darin aber auch "gekürzt" sein.
Kritisch ist es einfach bei den Großen, Google kann mit Analytics im Hintergrund exakte Daten sammeln, und das global und vernetzt. Webhosting-Anbieter können das auch, sowie Betreiber von "eigenen" Webservern. Nachweisen können es Datenschutzrechtler bei letzteren aber kaum, denn es gibt per Webserver, PHP oder JavaScript immer auch die "versteckte" Möglichkeit der Protokollierung von sensiblen Daten.

Werbung

Die Frage ist halt, wo die Datenschutzrechtler hier ein Ende sehen. Denn was ist mit Werbung?

Google-Werbung (AdWords/AdSense) ist z.B. auf ganz vielen Seiten anzutreffen, und da passiert genau das Gleiche wie oben beschrieben. Hier wird "getrackt", Zweite und Dritte bekommen Besucherdaten mit, speichern diese und werten sie aus.
Doch löschen Werbeanbieter bei einem "Opt-out" auf einer Seite die gesammelten Daten auch rückwirkend? Ich würde sagen, nein; eine solche übergreifende Funktion gibt es nicht, ein Opt-out würde nur ein Nicht-anzeigen weiterer Werbung bedeuten.

Da muss man sich dann halt schon auf die Werbeanbieter verlassen können und als Datenschutzrechtler dort ansetzen. Das Zauberwort heißt hier ganz klar Do Not Track.