Announcement

Collapse
No announcement yet.

Tips für einen Online Taschenrechner

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Tips für einen Online Taschenrechner

    Guten Tag Leute,

    vorweg: ich programmiere noch nicht lange mit PHP und bin deshalb für jeden Tipp zu haben

    also ich möchte einen Taschenrechner für meine Homepage programmieren, sowas wie calc5.com oder britnex.de.

    Meine Idee ist jetzt folgende:
    PHP Code:
    echo eval($_GET["formel"]) 
    Bei einfachen Eingaben funktioniert das schon einwandfrei . Nur wie machen die das bei calc5/britnex mit komplizierteren SAchen wie Funktionen?

    Alles mit str_replace uns sowas in einen 'netteren' fehlerfreien Eingabetext umwandeln? Gibts es da keine eine einfachere Möglichkeit in PHP??

    Dank euch, Grüsse Detlef

  • #2
    Hallo Detlef,

    ich gehe mal optimistisch davon aus, das du "eval($_GET["formel"]) " nur zum Testen verwendest, ansonsten möchte ich dir davon dringenst! abraten. Mit deinem Taschenrechner öffnest du sonst Hackern nicht nur Türen und Tore, sondern hast ganz schnell Riesenprobleme, wenn über deinen Server SPAM, Spyware und Trojaner, etc. verschickt werden.
    Du brauchst in das Formelfeld deines Taschenrechners bloß mal "system('format c:')" eingeben (oder besser nicht), um zu verstehen was ich meine.
    Das ungefilterte verwenden einer Uservariable in eval() würde es ermöglichen nahezu jeden beliebigen Systemcode auszuführen und durch die Installation einer Backdoor deinen Server zum "Zombie" zu machen.
    Du solltest also in jedem Fall die "Formel" entsprechend parsen und erlaubtes von nichterlaubtem trennen. Ich fürchte aber dazu wird str_replace() nicht ausreichen

    Gruß Falk
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment


    • #3
      Hi Falk,

      Danke für die schnelle Antwort, das mit eval klingt mir dann doch jetzt zu gefährlich und scheint ja eine richtige Sicherheitslücke in PHP zu sein.

      Grüsse Detlef

      Comment


      • #4
        Das ist keine Sicherheitslücke in PHP, sondern eine Sicherheitslücke in PHP-Code, den Du schreibst.

        Ein Betriebssystem hat ja auch keine Sicherheitslücke, weil es Dir einen format c:-Befehl und einen Weg, diesen zu starten (also die Shell) zur Verfügung stellt. Das ist - wie eval in PHP - Funktionalität, die man Dir an die Hand gibt, um Arbeit zu erledigen.

        Die Sicherheitslücke in Deinem Fall ist die Tatsache, dass Dein PHP-Code es jedermann ermöglicht, Befehle auf Deinem System auszuführen.

        Stefan
        >e-novative> - We make IT work for you.
        http://www.e-novative.de

        Comment

        Working...
        X