Ich erstelle eine Webanwendung, bei der mehrere Gruppen ihre eigene Seite haben, aber wenn sie sie ändern möchten, muss sie ein Administrator zuvor validieren. Zum Beispiel können Sie ändern, um sein Logo zu ändern, neues Foto, ändern Sie ihre Telefonnummer, ihren Namen, ihren Standort usw. ... Grundsätzlich können sie einen Wert in der Datenbank bearbeiten, aber nur wenn der Administrator es akzeptiert. Der Administrator muss jede Änderung bestätigen, weil ... unser Kunde uns darum gebeten hat.Was ist der beste Weg zu warten, dass ein Administrator etwas validiert, bevor er es tut?
Deshalb müssen wir ein System erstellen, das "ausstehende Abfragen" Verwaltung aufgerufen werden konnte.
Am Anfang dachte ich, dass das Halten der Abfrage in der Datenbank und das Ausführen, wenn ein Administrator es validiert, eine gute Idee war, aber wenn wir diese Option wählen, können wir PDO nicht verwenden, um vorbereitete Anweisungen zu erstellen, da wir Zeichenfolge verketten müssen um eine eigene Aussage zu machen, die offensichtliche Sicherheitsprobleme hat.
Dann dachten wir, dass wir PHP-Code behalten sollten, der die richtigen Methoden (die PDO verwenden) in unserer Datenbank aufruft und die wir mit eval()
ausführen, wenn der Administrator ihn validiert. Aber wieder scheint es, dass die Verwendung eval()
eine sehr schlechte Idee ist. Wie sagt das Zitat von Rasmus Lerford: "Wenn Eval() die Antwort ist, fragen Sie fast sicher die falsche Frage".
Ich dachte über die Verwendung von Eval, weil ich Methoden aufrufen möchte, die PDO verwendet, um mit der Datenbank umzugehen.
Also, was ist der beste Weg, um dieses Problem zu lösen? Es scheint, dass es keinen sicheren Weg gibt, es zu implementieren.
Ihre Leute, denen Sie nicht vertrauen, bearbeiten PHP auf einer Website? – nogad
@nogad, sie werden PHP nicht genau bearbeiten, wir rufen nur Methode mit der Zeichenfolge, die sie in einem Formular ausgefüllt haben. Aber da der PHP-Code nicht direkt ausgeführt wird, müssen wir ihn irgendwie irgendwo speichern. Ist meine Frage obskur? – Gregory
ja ist es. Was ist die "Zeichenfolge", die sie in einem Formular ausgefüllt haben? – nogad