Frage

Ich frage mich, hier ist, dass es eine schlechte Idee, ein rechtliches Zahlungssystem mit Hilfe von JavaScript auf der Client-Seite und PHP auf der Server-Seite zu implementieren? Ich bin vor allem besorgt über IEEE Floating-Point und übermäßig lose Sprachen.

War es hilfreich?

Lösung

Das Hauptproblem ist Javascript, die nicht einmal einen echten Integer-Typen, geschweige denn eine (offizielle) richtige Dezimal-Bibliothek (PHP hat BC Math ). Es gibt einen alten Dritt Hafen von Java BigDecimal zu Javascript können Sie auf der Client-Seite verwenden. Alternativ Doppel in Cent berechnet alles, da ein IEEE genau ganze Zahlen bis zu 53 Bit Länge darstellen, die sogar die gesamten US-Staatsanleihen für mindestens weitere 10 Jahre zu halten genug ist ( wahrscheinlich ).

Andere Tipps

Ich würde sagen, es hängt davon ab, wie Sie es umsetzen. Javascript läuft auf der Client-Seite und ist daher nicht sicher. Es kann nicht vertraut werden. Außerdem ist es bedeutet, dass Ihr System nicht für die Menschen arbeitet, die haben Javascript deaktiviert oder älteren Browser verwenden.

Solange Sie halten, dass im Auge, verwenden Sie die PhP das sicheren Sachen und Kontrolle alles zu verarbeiten, die von der Javascript kommt und sind bereit, diejenigen zu verlieren, die Javascript nicht hat, dann sehe ich nicht ein Problem mit ihm .

Aber alles tun, das härter sein kann, als man denkt, so vorsichtig sein.

Die eigentliche Frage, wie andere bereits festgestellt haben, ist, dass Sie den Client nicht vertrauen können. Je. Keine Berechnungen sollten auf der Client-Seite durchgeführt werden, oder unter Verwendung von Daten (wie zB Preis) vom Client kommen. Darüber hinaus würde ich nie einen Schwimmer darstellen Geldbeträge verwenden. Geld soll immer als eine ganze Zahl dargestellt werden, wobei 1 eine Einheit der Grundwährungseinheit darstellt (z.B. Cent). es erschwert leicht Angelegenheiten aber selbst einen Gefallen tun und schafft einige einfache Zugriffsfunktionen und Ihr Leben wird es einfacher sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top