Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Usermanagment und Sicherheit

    webald

    • modified Team
    • Beiträge: 2.791
    Usermanagment und Sicherheit
    am: 25. November 2014, 16:29:54
    Ich bastel gerade an einer Erweiterung zum Datenaustausch mit anderen Programmen. Hierbei stellt sich natürlich immer die Frage der Rechtevergabe und Zugriffskontrolle.

    Natürlich muss geprüft werden, ob ein Benutzer eine Funktion ausführen darf oder nicht.

    Ist in euren Augen ggf. eine zusätzliche Prüfung auf Tabellenebene notwendig? Etwa admin_access, configuration oder orders?

    Sollte ein User Zugriff auf bestimmte Tabellenteile erhalten würde ich das über Views lösen, bei denen eben nur ein Teil der Spalten abgefagt wird.

    Gibt es da Meinungen zu?

    Linkback: https://www.modified-shop.org/forum/index.php?topic=31590.0

    fishnet

    • Fördermitglied
    • Beiträge: 4.821
    • Geschlecht:
    Re: Usermanagment und Sicherheit
    Antwort #1 am: 25. November 2014, 17:28:14
    Gedankenanstoß, ich versuche es mal für Laien verständlich zu schreiben:

    Datenbank 1 ruft bei Datenbank 2 an, "meld dich bitte mal bei mir".
    Datenbank 1 legt wieder auf.
    Datenbank 2 guckt nach ob Datenbank 1 das überhaupt darf, wie überhaupt die Zugangsdaten sind und ruft dann bei Datenbank 1 zurück und baut eine Verbindung auf.
    Datenbank 1 übergibt Daten, Datenbank 2 prüft ob diese Daten übergeben werden dürfen, verarbeitet / speichert sie.
    Beide Datenbank legen auf und schreiben ein Protokoll.

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    Re: Usermanagment und Sicherheit
    Antwort #2 am: 25. November 2014, 17:56:02
    Weitere Möglichkeit, wenn Du zwischen Shop und Büro Daten hin und her schiebst. (Büro braucht feste IP)

    Du legst php Dateien auf den Webserver, die die application_top includieren und damit Zugriff auf die DB bekommen. Jedoch baust Du ganz am Anfang eine IP Prüfung ein. Wenn die IP des clients nicht stimmt, beende mit die("Access denied");
    Sicherheitshalber verwende ich hier nur festverdrahtete Abfragen und die PHP Scripte erlauben keinerlei übergebene Parameter. Ich importiere oder exportiere in CSV, diese werden mit SFTP kopiert und auf dem Shop sofort wieder gelöscht.
    Selbstverständlich passiert der Import / Export in einem Ordner auf den ein User keinen Zugriff hat, nur der Webserver darf lesen.

    Was genau willst Du machen? Die Antwort auf Deine Frage ist sehr abhängig davon, wo die Daten herkommen oder hingehen ...

    webald

    • modified Team
    • Beiträge: 2.791
    Re: Usermanagment und Sicherheit
    Antwort #3 am: 25. November 2014, 18:11:23
    System "Fishnet" läuft bei uns: Webshop meldet order_id via Soap -> SQL-Server -> meldet sich beim Shop an -> SQL-Server holt Order-Daten vom Shop.

    Was ich möchte ist ein universeller Zugriff auf Shopdaten, gestaffelt nach Berechtigung der User.

    Ein einfacher Kunde könnte etwa Daten seiner Bestellung abrufen, aber nicht ändern und auch auf bestimmte Tabellen nicht zugreifen.

    Ein Sachbearbeiter etwa könnte Aufträge aller Kunden abrufen und bearbeiten, aber nicht die Konfig des Shops ändern.

    Ein Admin hätte Volzugriff.

    Ein Lieferant könnte neue Artikel anlegen, aber nicht die Artikel der anderen Lieferanten sehen.

    Wie das geht ist mir alles klar. Frage ist nur ob es Sinn macht die Rechteverwaltung auf die Datenbanktabellen auszudehnen oder ob es reicht das in den Funktionen zu prüfen.

    webald

    • modified Team
    • Beiträge: 2.791
    Re: Usermanagment und Sicherheit
    Antwort #4 am: 27. November 2014, 16:20:37
    Ich habe mal ein bißchen gespielt. Im Anhang sind die Dateien dazu.

    Ich habe die Datenbank um einige Tabellen erweitert (aspnetdb.sql im Paket). Das ist die Grundlage zur Rechtverwaltung einzelner User. Die Rechtevergabe erfolgt Rollenbasiert. Diese Struktur ist von Asp.NET übernommen und geringfügig erweitert.

    Es gibt dann eine Klasse UserSecurity (sec_user_rights.php). Diese Klasse überprüft ob der User zur Ausführung einer Funktion im Code berechtigt ist.

    Außerdem gibt es eine Klasse Database (database.class.php). Diese Klasse stellt die Grundfunktionen der Datenbankanbindung bereit (und steht in Konkurrenz zum derzeitigen mysql_connect). Die Anbindung erfolgt über PDO und eröffnet theoretisch auch andere Datenbankengines als Basis.

    Zu guter letzt noch die Datei products.php mit derzeit 2 Funktionen. Hierin wird die Nutzung der beiden o. g. Klassen skizziert. Vermutlich sinnvoll auch aus products.php eine Klasse um diese in anderen Teilen des Shops als Object nutzuen zu können.

    Bitte das ganz nur als Skizze betrachten. Ich habe das ganzenoc nicht auf Funktion getestet. Es fehlen somit auch die richtigen Bezeichnungen der Konstanten aus dem Shop.

    Ziel soll es sein, dass am Ende eine universelle Lösung steht um andere Programme anbinden zu können. Ein wesentlicher Teil hierbei ist die Bereitstellung eines REST-Service.

    Wenn da jemand eine Meinung zu hat, immer raus damit.
    1 Antworten
    2090 Aufrufe
    03. Mai 2013, 01:52:59 von noRiddle (revilonetz)
    0 Antworten
    1488 Aufrufe
    07. März 2018, 07:49:23 von Alfred
    6 Antworten
    4305 Aufrufe
    09. August 2010, 13:23:01 von mantis
    7 Antworten
    2484 Aufrufe
    15. Juli 2017, 12:15:32 von webald