Suchen
Inside Forum
Nützliche Links




 
phpforum.de bei Facebook
 
phpforum.de bei Twitter
 

Zurück   PHP Forum: phpforum.de > PHP > PHP

PHP Alles rund um PHP

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 16.05.2018, 13:19
Tetra1081 Tetra1081 ist offline
Engagierter Besucher
 
Registriert seit: 29.09.2010
Beiträge: 245
Standard eval einschränken

Hallo zusammen,

kann man die Funktion "eval" einschränken,
bzw. sicherer machen?

ich möchte über eine Weboberfläche benutzerdefinierte
Funktionen erstellen, jedoch sollte die Funktionalität
eingeschränkt sein.

Erlaubt sollten z.B. sein:
- Mathematische Funktionen
- Abfragen, z.B. if, elseif,...
- Schleifen, z.B. for, foreach,...

Eingabebeispiel:
PHP Quellcode:
$temp = $Quelle0; // Temperatur
    $relf = $Quelle1; // Relative Feuchtigkeit
    $absf = $Quelle2; // Absolute Feuchtigkeit
   
    if(!is_null($temp) AND $temp<-273.15)
    {
      return false;
    }
    if((!is_null($relf) AND !is_null($absf)) OR (is_null($relf) AND is_null($absf)))
    {
      return false;
    }
    if(!is_null($relf))
    {
      return 13.2471 * pow(M_E,17.67 * $temp / ($temp + 243.5)) * $relf / (273.15 + $temp);
    }
    elseif(!is_null($absf))
    {
      return $absf * (273.15 + $temp) / (13.2471 * pow(M_E,17.67 * $temp / ($temp + 243.5)));
    }


Aber halt kein gefährdender Code oder andere Ausgabe.
- exec, unlink, exit, echo, ...

Liebe Grüße
Florian
Mit Zitat antworten
  #2  
Alt 16.05.2018, 13:33
rammi22 rammi22 ist offline
Engagierter Besucher
 
Registriert seit: 11.03.2011
Ort: Berlin, Deutschland
Beiträge: 839
Standard AW: eval einschränken

Zitat:
Zitat von Tetra1081 Beitrag anzeigen
..ich möchte über eine Weboberfläche...
Was hat das mit PHP zu tun?
__________________
Gruss Rammi

Win 7 PRO || PostgreSQL 9.3.4, compiled by Visual C++ build 1600, 32-bit || XAMPP 1.8.1 || PHP: 5.4.7 || PSPad 4.5.7
Mit Zitat antworten
  #3  
Alt 16.05.2018, 13:49
Tetra1081 Tetra1081 ist offline
Engagierter Besucher
 
Registriert seit: 29.09.2010
Beiträge: 245
Standard AW: eval einschränken

Die eingegebene Funktion wird via PHP geparst und ausgeführt.
Sprich die EVAL-Funktion von PHP wird verwendet.

Jetzt ist die Frage wie ich so etwas absichern kann.
Mit Zitat antworten
  #4  
Alt 16.05.2018, 14:10
Kasalop Kasalop ist offline
Forum-Mitarbeiter
 
Registriert seit: 29.12.2006
Ort: München
Beiträge: 5.856
Standard AW: eval einschränken

Ich denke am Besten nimmst du eine Sandbox: https://github.com/fieryprophet/php-sandbox
*Link veraltet. Danke protestix. Der aktuellere Link (acuh in seinem Post zu finden) ist: https://github.com/Corveda/PHPSandbox

Damit kannst du einfach funktionen verbieten / erlauben.

Lg Kasalop
__________________
Es gibt 10 Arten von Menschen auf der Welt. Die die die binäre Mathematik verstehen und die die sie nicht verstehen!

Zu welcher der Gruppen gehörst du?

Geändert von Kasalop (16.05.2018 um 18:35 Uhr)
Mit Zitat antworten
  #5  
Alt 16.05.2018, 14:32
Tetra1081 Tetra1081 ist offline
Engagierter Besucher
 
Registriert seit: 29.09.2010
Beiträge: 245
Standard AW: eval einschränken

Danke für die Information, werde es zeitnah testen.
Kann man da auch einstellen, dass alles verboten ist
bis auf die freigegebenen Funktionen?
Mit Zitat antworten
  #6  
Alt 16.05.2018, 17:52
protestix protestix ist offline
Engagierter Besucher
 
Registriert seit: 29.06.2016
Beiträge: 667
Standard AW: eval einschränken

Wenn es dich interessiert, dann lies dir die features durch und frage dort nach.

Die verlinkte Version ist übrigens veraltet, die Version, die man benutzen sollte findet sich hier:
https://github.com/Corveda/PHPSandbox
Mit Zitat antworten


Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu
Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Fehlermeldung eval()'d code(1) : eval()'d ..... Mitchell PHP 8 13.04.2010 00:01
eval mit Fehler eval()'d code Dani Düsentrieb PHP 13 21.08.2009 22:52
Via eval() ein Objekt ableiten gibt eval-Fehler keys71 PHP 4 25.12.2006 19:55
eval -> funktion aus DB auslesen und mit eval in PHP integrieren Waldgeist PHP 12 06.06.2006 10:34
Einschränken der ergebnissmenge Uschi Datenbanken 2 02.06.2005 08:28


Alle Zeitangaben in WEZ +2. Es ist jetzt 03:34 Uhr.


Powered by vBulletin® Version 3.8.8 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Powered by NuWiki v1.3 RC1 Copyright ©2006-2007, NuHit, LLC