Ich baue eine Site-Plattform ähnlich Wordpress, die es meinen Benutzern ermöglicht, eine .zip
Datei herunterzuladen, laden Sie sie auf ihren Server, und gut zu gehen.eval Remote-Code von meinem Server
Ich weiß, jeder sagt eval()
ist böse - aber der Code wird keine Benutzer- oder Variableneingabe enthalten.
Der Vorteil hier ist, dass Aktualisierungen automatisch erfolgen. Ich kann nur den Code ändern, der auf meinem Server gepackt wird.
Meine Kunden, die den Code verwenden, werden Websites mit ziemlich wenig Verkehr haben - also mache ich mir keine Sorgen über das Überladen ihres Servers. Die meisten schweren Arbeiten werden von uns ausgeführt.
Hier ist das Grundcodekonzept:
$code=file_get_contents("http://myserver.com/code.txt");
eval($code);
Ist die eine realistische Option? Um welche Sicherheitslöcher muss ich mich kümmern?
Das erste, was mir in den Sinn kommt ist, dass der Benutzer vollen Zugriff auf Ihren Computer hat, wenn Sie seinen Code auswerten, er kann also einfach Ihr Home-Verzeichnis löschen und einen roten Drachen oder etwas ähnliches wickeln. Die Frage ist: Können Sie Ihren eigenen Benutzern vertrauen? Wenn ja, gut, sonst, sei vorsichtig. Solange sie jedoch keinen Zugriff auf die Datenbank haben und solange Ihre Verzeichnisse mit den korrekten CHMOD-Einstellungen geschützt sind, sollten Sie ** ziemlich ** sicher sein, aber das werde ich nicht tun , das ist nur meine Meinung. Kurz gesagt, eval ist nicht böse wegen der variablen Eingaben des Benutzers. – briosheje
Ich denke du hast mein System rückwärts. Der Code wird auf meinen * clients * Servern abgelegt. Ihre Server werden den Code von * meinem * Server abholen und es evaluieren. – hellohellosharp
Oh okay, dann ist es das Problem deines Klienten: P Kurz gesagt, sie stimmen zu, ein Stück Code zu bekommen, das ** böse sein kann **, aber solange sie dir vertrauen **, ist das in Ordnung. Seien Sie vorsichtig, denn wenn jemand einen Weg findet, Sie zu injizieren, werden auch diese injiziert, was gefährlich sein kann, aber solange sie damit einverstanden sind und ihnen vertrauen, ist es vollkommen in Ordnung. Seien Sie sich jedoch bewusst, dass das Auswerten von Code das Debuggen/Lesen recht schwierig macht. In diesem Kontext ist es sowieso eher ihr "Problem", nicht wirklich dein :) – briosheje