Difference between revisions of "Changelog 2014"

From LISApedia
Jump to: navigation, search
Line 4: Line 4:
 
'''16.08.2014 Serverangriff'''
 
'''16.08.2014 Serverangriff'''
  
Am 14.August um etwa 15.00 Uhr hat sich ein Angreifer Zugriff auf den neuen Server verschafft. Er nutzte dazu eine SQL-Injection, die er über den SNK-Webshop platzierte. Der SQL-Befehl erzeugte eine PHP-Datei, die es dem Angreifer ermöglichen sollte, beliebige Dateien hochzuladen. Der Angreifer scheiterte jedoch an der Subdomain, die den originären Dateipfad verschleierte. So konnte er die neu erzeugten PHP-Dateien nicht ausfindig machen und somit auch keinen weiteren Schaden anrichten.
+
Am 14.August um etwa 15.00 Uhr hat sich ein Angreifer mit einer deutschen IP-Adresse Zugriff auf den neuen Server verschafft. Er nutzte dazu eine SQL-Injection, die er über den SNK-Webshop platzierte. Der SQL-Befehl erzeugte eine PHP-Datei im Webroot-Verzeichnis, die es ihm ermöglichen sollte, beliebige Dateien hochzuladen. Der Angreifer scheiterte jedoch an der Subdomain, die den originären Dateipfad verschleierte. So konnte er die neu erzeugten PHP-Dateien nicht ausfindig machen und somit auch keinen weiteren Schaden anrichten.
  
Ich werde die Sicherheitslücke am Wochenende schließen.
+
Die Sicherheitslücke ist nun geschlossen.
  
  

Revision as of 00:37, 17 August 2014

Auf dieser Seite werden die Änderungen an LISA im Jahr 2014 angezeigt. Um andere Jahre zu sehen, suche bitte nach "Changelog".


16.08.2014 Serverangriff

Am 14.August um etwa 15.00 Uhr hat sich ein Angreifer mit einer deutschen IP-Adresse Zugriff auf den neuen Server verschafft. Er nutzte dazu eine SQL-Injection, die er über den SNK-Webshop platzierte. Der SQL-Befehl erzeugte eine PHP-Datei im Webroot-Verzeichnis, die es ihm ermöglichen sollte, beliebige Dateien hochzuladen. Der Angreifer scheiterte jedoch an der Subdomain, die den originären Dateipfad verschleierte. So konnte er die neu erzeugten PHP-Dateien nicht ausfindig machen und somit auch keinen weiteren Schaden anrichten.

Die Sicherheitslücke ist nun geschlossen.


06.08.2014 Artikel-Import: Unterstützende Listen zur Auswahl

Um den Artikel-Import zu vereinfachen, gibt es für das Feld "Fester Wert" nun die Möglichkeit, aus vorhandenen Werten auszuwählen. Somit müssen keine IDs von Artikel-Listen, Kostenstellen, Flags oder sonstigen Attributen in Erfahrung gebracht werden, sondern die entsprechenden Werte werden aus einer Liste ausgewählt.


06.08.2014 Lagerorte und Ladeprioritäten

Die "Ladefolge-Gruppen", die bisher als einziger Faktor sowohl den Lagerort angegeben als auch die Priorisierung der Artikel auf der Ladeliste gesteuert haben, werden nun etwas entlastet und primär als Lagerort angesehen. Sie wurden in LISA auch entsprechend umbenannt, erfüllen jedoch dieselbe Funktion wie bisher. Als neue Möglichkeit, unabhängig vom Lagerort die Abfolge der Posten auf der Ladeliste zu beeinflussen, kann ich den Lizenznehmern auf Wunsch eine spezielle Artikel-Liste "Ladeprioritäten" anlegen, deren Unterlisten verschiedene Klassen von Artikeln mit unterschiedlichen Ladeprioritäten definieren. Es könnten beispielsweise die Listen "Schwere Produkte" und "Leichte Produkte" angelegt werden. LISA würde in diesem Fall abhängig von der Reihenfolge dieser beiden Listen die darin befindlichen Artikel unterschiedlich priorisieren. Gibt es keine diesbezüglichen Unterschiede zwischen zwei Artikeln, greifen wieder die Lagerorte und deren Reihenfolge in LISA.

Wer bisher mit der Sortierung der Ladelisten vollkommen zufrieden ist, benötigt die neue Funktion nicht - in diesem Fall bleibt der Lagerort der entscheidende Faktor. Wem die Priorisierung der Artikel anhand der Lagerorte nicht ausreicht, möge sich bitte an mich wenden.


05.08.2014 Bugfix: Rundungsfehler

In der Programmiersprache PHP gibt es seit jeher einen Rundungsfehler in der Funktion "round($zahl, $precision)", der diese Funktion völlig untauglich für mathematisch korrektes Runden macht. Nachdem ich vor vielen Monaten von diesem Fehler erfahren hatte, habe ich eine eigene Funktion ("round(round($zahl * pow(10, $precision + 1), 0), -1) / pow(10, $precision + 1);") zum kaufmännischen Runden verwendet. Heute ist mir aufgefallen, dass diese Funktion in der Praxis etwa in 5% der Fälle ebenfalls eine falsche Rundung vornimmt. So wurde etwa 1,0346 zu 1,04 gerundet und nicht zu 1,03. Ab sofort wird "sprintf('%0.'.$precision.'f', $zahl);" zum Runden eingesetzt - dieser Befehl hat sich bisher in allen untersuchten Fällen bewährt. Ich hoffe, dass LISA nun in allen Fällen korrekt rundet.

Was die Rundungsfehler in der Vergangenheit angeht, bin ich ehrlich gesagt etwas sprachlos. Es gab zahlreiche Vorschläge im Netz, die die von mir bisher verwendete Rundungsfunktion empfahlen - ich bin trotz der größtmöglichen Sorgfalt darauf hereingefallen. Falls jemandem wider Erwarten noch Rundungsfehler auffallen sollten, insbesondere auf Rechnungen oder anderen Dokumenten, möge er sich bitte bei mir melden.


02.08.2014 Füllen von Lagerorten mit Scannerunterstützung

In der Lagerortverwaltung (Ladefolge) wurde das bisherige Artikel-Suchfeld durch eine neue Unterseite ersetzt, die es ermöglicht, schnell mehreren Artikeln den ausgewählten Lagerort zuzuweisen. Alternativ kann die Lagerort-Zuweisung schnell über die Eingabe von "#LOX" erreicht werden, wobei "X" für die ID des gewünschten Lagerortes steht. Möchte man dem Lagerort 17 mehrere Artikel zuweisen, gibt man "#LO17" ins Suchfeld ein und drückt ENTER. Sofort kann man Artikel schnell nacheinander scannen, die alle dem Lagerort 17 zugewiesen werden. Auch das Wechseln von Lagerorten ist mit dem Artikel-Suchfeld möglich, indem zum Beispiel "#LO18" als Suchbegriff eingegeben wird. Im Idealfall kann man sich auch Barcodes mit dem Inhalt "#LOX" (hier wieder das "X" durch die jeweilige ID ersetzen) im Internet generieren lassen, die an den Lagerorten angebracht werden. So kann man jederzeit einen Lagerort abscannen und ihm sehr schnell die dort befindlichen Artikel zuordnen.


24.07.2014 Leichterer Zugang zum Testsystem

Um den Benutzer den Zugang zum Testsystem zu vereinfachen, befindet sich nun ein entsprechender Link in LISAs Seitenleiste. Damit ist das Testsystem nun auch "offizieller" Bestandteil von LISA.


22.07.2014 BNN-Dateien

Nach unerwartet langwierigen Problemen beim Erzeugen von BNN-Exportdateien ist es nun hoffentlich möglich, diese Dateien im korrekten Format herunterzuladen. In den Stammdaten des gewünschten Kunden muss dazu das entsprechende Flag aktiviert werden - nach einer Wartezeit von wenigen Minuten können die Dateien dann über das Optionsmenü des Kunden heruntergeladen werden.


16.07.2014 Logos

Es ist nun möglich, unter dem Begriff "Logos" Zertifikate, Siegel, Kompatibilitäten, Attribute, Verträglichkeiten, Mitgliedschaften und natürlich Logos den verschiedenen Lieferanten und Artikeln zuzuordnen. Ein Logo ist zunächst einmal ein Bild, das in möglichst hoher Auflösung in den Ressourcen-Ordner unter "logos" hochgeladen wird. Danach legt man unter "Verwaltung -> Logos" einen neuen Datensatz für dieses Logo an und stellt zum Beispiel ein, ob das Logo für Lieferanten oder Artikel gelten soll. Nach dem Abspeichern kann man beispielsweise unter "Verwaltung -> Lieferanten" dem oder den gewünschten Lieferanten das Logo zuordnen. Ab sofort wird in LISA bei allen Artikeln dieses Lieferanten auf der Artikelseite das Logo angezeigt. Einzelnen Artikeln kann man das Logo unter "Artikeldaten ändern" ganz unten zuordnen. Es ist vorgesehen, dass die Logos im neuen Webshop zu sehen sein werden.

Sollte man ein Logo ändern wollen, kann man das alte Bild mit einer neuen Datei überschreiben und auf "Alle Logos neu puffern" klicken, woraufhin von allen Logos eine neue Miniaturansicht erzeugt wird.


16.07.2014 Statusbericht: Umzug

Die Arbeiten am Backup-System sind abgeschlossen. LISAs Anwendungsdaten und die Geschäftsdaten der Lizenznehmer werden redundant auf einem RAID-System abgelegt und sind dadurch gegen den Ausfall einer Festplatte abgesichert. Wichtige Belege wie Rechnungen und Kassenbons werden minütlich, die Anwendungs- und Geschäftsdaten hingegen täglich zusätzlich redundant auf einem entfernten Backup-System gespeichert und von dort aus wiederum täglich auf einem Cloud-Speicher von Strato gesichert. Zwischen dem LISA-Server selbst und dem Speichersystem von Strato besteht keine direkte Verbindung. Die Geschäftsdaten der Lizenznehmer sind somit täglich vielfach redundant an drei verschiedenen Orten in Deutschland gesichert und können durch Defekte, Gebäudebrände oder Angriffe nicht zerstört werden.

Ein weiterer Lizenznehmer wird voraussichtlich am nächsten Wochenende auf den neuen LISA-Server umziehen.

Der neue LISA-Server ist ein virtuelles Debian GNU/Linux-System, das auf einem VMware vSphere Hypervisor 5.x (ESXi) läuft und über ein RAID-Festplattensystem, einen XEON-Prozessor mit 4 x 3.5GHz-Kernen sowie 16GB RAM und eine hervorragende Netzanbindung verfügen darf. Mit dem Hypervisor lassen sich Snapshots des kompletten Systems erstellen, um Ausfällen vorzubeugen, die durch missglückte Wartungsarbeiten entstehen könnten. Die Hardware befindet sich in einem Rechenzentrum bei Hetzner Online in Falkenstein/Vogtland.


03.07.2014 Kasse: Kennzeichnung des Testsystems

Um Fehlern vorzubeugen, wurde die Kasse des Testsystems durch eine knallrote Kopfzeile sowie den Schriftzug "Testsystem" markiert.


01.07.2014 LISA Kasse

Das LISA-Kassensystem ist einsatzbereit und kann prinzipiell für Bar- und Kartenverkäufe genutzt werden. Benötigt wird ein Bondrucker wie der Epson TM-T88V sowie ein Windows-PC, der vornehmlich als Kassen-PC eingesetzt wird. Interessierte Lizenznehmer müssten die für die Konfiguration erforderlichen Details mit mir absprechen.


07.05.2014 Statusbericht: Umzug

Der erste Umzug (meiner eigenen LISA) auf den virtuellen Server im Rechenzentrum ist heute erfolgt. Es fehlen noch einige Kommunikationsschnittstellen (zum Beispiel für die Lieferanten-CSV-Quellen und Easylog) und eine stabile Backup-Lösung, aber ich werde den neuen Server nun im Produktiv-Einsatz testen. Sollten sich keine Probleme mehr zeigen, können die Lizenznehmer auch umziehen.

Zuletzt gab es zwei Probleme mit Stromausfällen an LISAs bisherigem Standort, und zu allem Überfluss kam ich wegen Bauarbeiten nur über Umwege an den Server - eine Situation, die sowohl für mich wie auch für meine Kunden nicht akzeptabel ist.


10.04.2014 Tabs im Journal

Das Journal wurde in Tabs aufgeteilt und lädt dadurch schneller. Der Kalender, der am Schluss ohnehin nutzlos war, entfällt vorerst.


10.04.2014 Konditionen

LISAs Berechnung der Verkaufskonditionen wurde komplett neu programmiert. Die Option "Festpreis" wurde umbenannt in "Superkondition". Ab sofort können mehrere konkurrierende Superkonditionen definiert werden, zum Beispiel für Stückzahlen und VPEs. Trifft eine Superkondition für die Konditionsberechnung zu, berücksichtigt LISA für diese Konditionsberechnung nur noch Superkonditionen und lässt alle regulären Konditionen außer acht. Der komplexe Umbau musste vorgenommen werden, weil es logische Fehler in LISAs alter Konditionsberechnung gab, die in seltenen Fällen potenziell falsche Ausgaben geliefert hätten (was jedoch real nach meinem Kenntnisstand nicht vorgekommen ist). Die neue Konditionsberechnung sollte in jeder Hinsicht dieselben Ergebnisse für die bereits festgelegten Konditionen der LISA-Lizenznehmer liefern, darüber hinaus jedoch noch weitere Möglichkeiten zulassen. Sie ist zudem performanter, wartungsfreundlicher und sauberer programmiert.


19.03.2014 Statusbericht: BNN-Format

Die Arbeit am BNN-Format gestaltet sich bislang unvorhergesehen schwierig. Der für das Erzeugen einer BNN-Datei erforderliche Aufwand des Servers ist durch die komplette Prüfung aller Verkaufskonditionen für jeden Artikel sehr hoch, und aus damit zusammenhängenden Gründen ist LISA am letzten Wochenende vollständig kollabiert. Ich kann die Arbeit am BNN-Format selbst erst wieder aufnehmen, wenn die Erzeugung der Dateien risikofrei möglich ist, und erbitte daher noch etwas Geduld.


14.02.2014 Testversion des neuen Webshops

Für die Lizenznehmer gibt es unter http://EDITION.snk-hh.de/webshop/ (bitte nicht klicken, sondern die Adresse kopieren und die Edition einsetzen) die Möglichkeit, die laufende Entwicklung des Webshops zu verfolgen. Einige Funktionen (wie Suchergebnisse, Anmeldung, Abmeldung, Warenkorb) sind schon vorhanden, aber es handelt sich ausdrücklich nicht um einen Beta-Test, dazu ist es noch zu früh. Für einen ersten Eindruck reicht es jedoch. Der Shop ist bislang für Google Chrome optimiert.

Die deutschsprachigen Texte des Shops können unter Verwaltung -> Neuer Webshop Langvars angepasst werden, aber auch hier kann sich noch einiges ändern.


12.02.2014 Statusbericht: Neuer Webshop

Für alle LISA-Lizenznehmer wird ein einheitlicher neuer Webshop erarbeitet. Der neue Webshop wird die separaten bisherigen Systeme ablösen, die dann nicht mehr verwendet werden können.

Das neue System wird die folgenden Eigenschaften haben:

  • Mehr Sicherheit: Ein zentrales Integritätsmodul wird den Shop gegen Angriffe, Missbrauch, Fehlbenutzung und andere Probleme abhärten.
  • Eine sehr viel schnellere Artikelsuche mit einem viel besseren Relevanz-Algorithmus
  • Bessere Kundeninformationen zu Bestellungen, Sendungen und Rechnungen
  • Eine Schritt-für-Schritt-Bestellabwicklung, die Missverständnissen vorbeugt.
  • Verwaltungsmöglichkeit für Lieferanschriften
  • Abgeschickte Bestellungen werden für den Kunden nicht mehr veränderbar sein.
  • Bessere Wartbarkeit für den Entwickler
  • Volle Unterstützung für Mehrsprachigkeit der Bedienelemente und volle Kontrolle der Lizenznehmer darüber
  • Im Design werden sich für die Lizenznehmer der bisherigen Shops nur geringfügige Veränderungen ergeben.

Wann der neue Webshop fertig sein wird, ist noch unklar, aber in einigen Tagen werde ich Testversionen zur Verfügung stellen, die bereits einige Funktionen erfüllen und von den Lizenznehmern ausprobiert werden können.


31.01.2014 Scrollen bei der Bestellannahme

Beim Eingeben von Bestellungen wird LISA nun so scrollen, dass die gefundenen Artikel immer sichtbar sind. Bei längeren Bestellungen kam es zu Problemen.


31.01.2014 Bugfix: Umsatzstatistik

Bei der Überarbeitung hatte sich ein kleiner Fehler eingeschlichen, der wiederum für eine unkontrollierte Auslastung des Servers gesorgt hat, ähnlich wie zuvor. Nun sollte aber wirklich alles laufen und auch schön schnell sein.


29.01.2014 Umsatzstatistik überarbeitet

Ich hatte die Umsatzauswertung für ein paar Tage deaktiviert, weil sie wegen eines Fehlers unter bestimmten Umständen den Server funktionsunfähig gemacht hat. Nun habe ich sie vollkommen überarbeitet und wieder aktiviert. Durch den neuen Code kann sie ihre Arbeit nun erheblich beschleunigt wieder aufnehmen.


18.01.2014 Import von Einkaufspreisen

Unter Verwaltung -> Import gibt es die Möglichkeit, Einkaufspreise als Brutto- oder Nettowerte aus einer CSV-Datei zu importieren. Bitte einfach den Anweisungen folgen.


03.01.2013 Update Umzug

Noch einmal habe ich massive Änderungen an LISAs Verzeichnisstruktur vorgenommen, um den Umzug vorzubereiten. Und wiederum hoffe ich auch nach dem Testen, dass alles geklappt hat.


02.01.2014 Update Umzug

LISAs Datenbasis wurde bereits auf den neuen Server kopiert, so dass bald ein finaler Testlauf durchgeführt werden kann. Der Umzug ist dann nur noch eine Frage der Konfiguration und des Managements - beispielsweise müssen FTP-Zugänge, Cronjobs und Backups betriebsbereit sein und Zugangsdaten verteilt werden.