Abo
  1. Foren
  2. Kommentare
  3. OpenSource
  4. Alle Kommentare zum Artikel
  5. › PHP: Rechenaufgabe legt Server…

Workaround (PHP)

  1. Thema

Neues Thema Ansicht wechseln


  1. Workaround (PHP)

    Autor: core 04.01.11 - 21:00

    Ungetestet, da ich selbst nur noch 64 bit-Systeme habe.

    prevent_num_err.php:
    http://pastebin.com/ctfCBMvR

    prevent_num_err_test.php:
    http://pastebin.com/ihwknwJN

    Viele Grüße,
    Denis

  2. Re: Workaround (PHP)

    Autor: verysmall 04.01.11 - 23:57

    versuche 222.50738585072011e-310 ;)

  3. Re: Workaround (PHP)

    Autor: w13531 05.01.11 - 00:15

    ich würde daten löschen nicht unbedingt als workaround ansehen.....

  4. Re: Workaround (PHP)

    Autor: ThiefMaster 05.01.11 - 00:19

    Du kennst foreach?
    foreach($array as $key => $value)

    Dieser list/each-Krempel stammt aus PHP3-Zeiten.

  5. Re: Workaround (PHP)

    Autor: Dieter Cee 05.01.11 - 00:47

    Kommt darauf an wie man Workaround definiert... :-)

  6. Re: Workaround (nicht PHP)

    Autor: Meister Bit 05.01.11 - 00:48

    auf VB ausweichen...

  7. hahaha ... typisch PHPler :)

    Autor: nussknacker 05.01.11 - 03:07

    core schrieb:
    --------------------------------------------------------------------------------
    > Ungetestet, da ich selbst nur noch 64 bit-Systeme habe.

    OK, gibt (vermutlich) auch gute PHP-Programmierer, aber einen Workaround veröffentlichen ... ungetestet ... no comment. :)

  8. Re: Workaround (PHP)

    Autor: blubbb 05.01.11 - 11:05

    Ne also wirklich, wegen solcher IMHO "eigenartigen" Konstrukte hat PHP u.a. so ein miesen Ruf.

    Die wenigsten PHP Webanwendungen werden eine 2.2250738585072011e-308 von außen erwarten oder überhaupt damit rechnen müssen, daher gilt schon mal:

    1. Variablen die von außen ( $_POST & $_GET )kommen sind immer potentiell schädlich.

    2. Potentiell schädliche Daten *müssen* *immer* gefiltert und validiert werden.

    3. Frameworks wie z.B. Zend Framework bieten einfache objektorientierte Möglichkeiten genau das zu machen.

    > http://framework.zend.com/manual/de/zend.filter.input.html

    Ob das Zend Framework gut oder schlecht ist sei mal dahin gestellt aber es ist IMHO z.Z. das umfangreichste Framework für PHP.

  9. Re: Workaround (PHP)

    Autor: Ellis 05.01.11 - 12:41

    blubbb schrieb:
    --------------------------------------------------------------------------------
    > 2. Potentiell schädliche Daten *müssen* *immer* gefiltert und validiert
    > werden.

    2.2250738585072011e-308 ist ja eine valide Zahl. Wenn ich weiß, dass ich sie nie benötige, kann ich sie natürlich ausschließen, muss allerdings auch alle möglichen Exponenten beachten (wie verysmall schrieb). Zu Lasten der Genauigkeit aller Zahlen könnte man auch die Länge der Mantisse begrenzen.

    Aber ich frage mich, wieviele Programmierer alle Eingabeparameter erst als String (!) validieren und danach erst Typecasten und den Wertebereich als Zahl validieren. Egal ob mit Zend_input_filter oder manuell.

  10. Von wegen

    Autor: AmigoJack 05.01.11 - 12:52

    Leute! Es reicht allein schon die Anweisung

    <?php
    $foo= 2.2250738585072011e-308;
    ?>

    ...als Aufhänger. Es geht gar nicht um Eingaben von draußen - das kann genausogut von DBMSen oder Dateien erfasst werden und dann ebenfalls so unglücklich angefasst werden. Gerade bei letzterem geht man doch am ehesten von der Denkweise "hey, die Datei hab nur ich angelegt - die wird nie verändert und da kann nur Text drin sein" aus.

    Im übrigen ist es ein GCC-Bug - da könnt ihr auch PHP generell vorwerfen, dass der genausowenig all seine Zulieferer und Verarbeiter prüft.

  11. Re: Von wegen

    Autor: Ellis 05.01.11 - 13:22

    AmigoJack schrieb:
    --------------------------------------------------------------------------------
    > ...als Aufhänger. Es geht gar nicht um Eingaben von draußen - das kann
    > genausogut von DBMSen oder Dateien erfasst werden und dann ebenfalls so
    > unglücklich angefasst werden.

    Ja aber hättest du diesen Code in deinen Dateien, würdest du schon beim ersten Test den Fehler bemerken.

    Bei Datenbanken bin ich nicht sicher, denn wenn die Zahl bereits als double vorliegt, gibt es keine Probleme. Wenn man natürlich die Zahl als String in der DB vorhält, sodass man wieder über zend_strtod stolpert, naja dann ist man auch selbst Schuld.

  12. Re: Von wegen

    Autor: blubbb 05.01.11 - 13:52

    AmigoJack schrieb:
    --------------------------------------------------------------------------------
    > Leute! Es reicht allein schon die Anweisung
    >
    > <?php
    > $foo= 2.2250738585072011e-308;
    > ?>

    Eingabewerte über $_POST und $_GET kommen als String an, erst wenn daraus eine Zahl wird, kommt es zu diesem Fehler, so versteh ich jedenfalls den Artikel siehe:

    "Bei einem Angriff muss die Zahl lediglich als *numerischer Wert* übergeben werden. "

    Wenn man nun seine Eingabeparameter überprüft und nur in den Grenzen zulässt die wirklich benötigt werden, sollte man zu mindestens Angriffe von außen vermeiden können.

  13. Re: Von wegen

    Autor: blubbb 05.01.11 - 14:00

    Ach vergesst das ganze, bin heute nicht so ganz bei der Sache -.-

    Um die Grenzwerte zu überprüfen wird der Eingabewert ja in einen nummerischen Wert gecastet...


    Validieren und filtern ist trotzdem ein muss für den Input ;)

  14. Re: Von wegen

    Autor: Rafi 05.01.11 - 17:54

    Hier noch ein workaround, der PHP-sites zumindest vor Script-Kiddies schützt, die jetzt überall dei bösen Zahlen in GET-Parameter einfügen.

    http://www.aircraft24.com/en/info/php-float-dos-quickfix.htm

    Löscht einfach die entsprechende Variable, wenn die üblen Zahlen als Parameter übergeben werden (auch HTTP_POST). Ist ein wenig "quick und dirty" und eignet sich daher nicht für das Betriebssystem einer Herz-Lungen-Maschine. Sollte aber fürs erste automatisierten Bots den Hahn abdrehen.

  1. Thema

Neues Thema Ansicht wechseln


Um zu kommentieren, loggen Sie sich bitte ein oder registrieren Sie sich. Zum Login

Stellenmarkt
  1. Hess GmbH Licht + Form, Villingen-Schwenningen
  2. Landeshauptstadt Wiesbaden, Wiesbaden
  3. STRABAG BRVZ GMBH & CO.KG, Stuttgart
  4. Marienhaus Dienstleistungen GmbH, Neustadt an der Weinstraße

Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Hardware-Angebote
  1. 344,00€


Haben wir etwas übersehen?

E-Mail an news@golem.de


Google Maps: Karten brauchen Menschen statt Maschinen
Google Maps
Karten brauchen Menschen statt Maschinen

Wenn Karten nicht mehr von Menschen, sondern allein von Maschinen erstellt werden, erfinden diese U-Bahn-Linien, Hochhäuser im Nationalpark und unmögliche Routen. Ein kurze Liste zu den Grenzen der Automatisierung.
Von Sebastian Grüner

  1. Kartendienst Google bringt AR-Navigation und Reiseinformationen in Maps
  2. Maps Duckduckgo mit Kartendienst von Apple
  3. Google Maps zeigt Bikesharing in Berlin, Hamburg, Wien und Zürich

Probefahrt mit Mercedes EQC: Ein SUV mit viel Wumms und wenig Bodenfreiheit
Probefahrt mit Mercedes EQC
Ein SUV mit viel Wumms und wenig Bodenfreiheit

Mit dem EQC bietet nun auch Mercedes ein vollelektrisch angetriebenes SUV an. Golem.de hat auf einer Probefahrt getestet, ob das Elektroauto mit Audis E-Tron mithalten kann.
Ein Erfahrungsbericht von Friedhelm Greis

  1. Freightliner eCascadia Daimler bringt Elektro-Lkw mit 400 km Reichweite
  2. Mercedes-Sicherheitsstudie Mit der Lichtdusche gegen den Sekundenschlaf
  3. Elektro-SUV Produktion des Mercedes-Benz EQC beginnt

IT-Arbeitsmarkt: Jobgarantie gibt es nie
IT-Arbeitsmarkt
Jobgarantie gibt es nie

Deutsche Unternehmen stellen weniger ein und entlassen mehr. Es ist zwar Jammern auf hohem Niveau, aber Fakt ist: Die Konjunktur lässt nach, was Arbeitsplätze gefährdet. Auch die von IT-Experten, die überall gesucht werden?
Ein Bericht von Peter Ilg

  1. IT-Standorte Wie kann Leipzig Hypezig bleiben?
  2. IT-Fachkräftemangel Arbeit ohne Ende
  3. IT-Forensikerin Beweise sichern im Faradayschen Käfig

  1. Urheberrecht: Youtuber sollen bei Snippets kein Geld mehr verlieren
    Urheberrecht
    Youtuber sollen bei Snippets kein Geld mehr verlieren

    Bisher konnten Urheber die Einnahmen von Youtubern komplett an sich ziehen, auch wenn diese nur ganz kurze Teile der eigenen Werke übernahmen. Das soll künftig auf Youtube nicht mehr möglich sein.

  2. Einrichtungskonzern: Ikea startet eigenen Geschäftsbereich für Smart Home
    Einrichtungskonzern
    Ikea startet eigenen Geschäftsbereich für Smart Home

    Der Einrichtungskonzern Ikea will mit einem eigenen Geschäftsbereich seine Smart-Home-Produkte voranbringen. Das Unternehmen will damit mehr bieten als nur gewöhnliche Möbel.

  3. Zoncolan: Facebook testet 100 Millionen Zeilen Code in 30 Minuten
    Zoncolan
    Facebook testet 100 Millionen Zeilen Code in 30 Minuten

    Das Entwicklerteam von Facebook hat ein eigenes Werkzeug zur statischen Code-Analyse erstellt und stellt nun erstmals Details dazu vor. Das Projekt habe Tausende Sicherheitslücken verhindert.


  1. 14:34

  2. 13:28

  3. 12:27

  4. 11:33

  5. 09:01

  6. 14:28

  7. 13:20

  8. 12:29