Soweit ich weiß, ist es aus Sicherheitsgründen JSON-Objekte in JavaScript eval()
schlechte Praxis. Ich kann diese Bedenken verstehen, wenn der JSON von einem anderen Server kommt.Warum nicht eval() JSON?
Aber wenn die JSON wird von meinem eigenen Server zur Verfügung gestellt und wird json_encode
die erstellt mit PHP (lassen Sie uns annehmen, dass es nicht Buggy ist), ist es legitim, einfach eval()
zu verwenden, um die JSON in JS oder gibt es irgendwelche Sicherheitsproblem ich zu lesen kann derzeit nicht denken?
Ich möchte wirklich nicht mit dem dynamischen Laden eines JSON-Parsers beschäftigen und wäre froh, einfach eval()
zu verwenden.
PS: Ich werde natürlich das native Objekt JSON
verwenden, wenn es verfügbar ist, aber auf eval()
für IE/Opera zurückgreifen möchten.
JavaScript's 'eval' bewertet * jeden * JavaScript-Code und nicht nur die kleine Teilmenge, die gleich JSON ist. – Gumbo
Natürlich ist es gut, Ihre Daten zu verschlüsseln, aber Sie werden nicht für immer die gleiche Codebasis behalten (hoffentlich), schließlich muss jemand anderes sie pflegen, und was ist, wenn es diesen neuen Teil eines Bugfixes gibt, den jemand gesetzt hat es und es ruft nicht die Verschlüsselungsmethode, oder es nennt es aber an der falschen Stelle - und es öffnet sich eine Sicherheitslücke - mit dem zweiten Sicherheitsnetz dort als Fallback könnte der Unterschied zwischen peinlichen PR-Ankündigung (s), teure Rechtsstreitigkeiten und rechtliche Konsequenzen, im Vergleich zu einem einfachen Code-Patch, um das Sicherheitsnetz der mittleren Stufe zu reparieren. – BrainSlugs83
Die andere Sache, die es zu beachten gilt, ist auch die Wartbarkeit - das Einhalten von bekannten Standards wird es einfacher machen, den Besitz des Codes auf einen anderen Entwickler/Team usw. zu übertragen, wenn die Zeit gekommen ist - was ziemlich gut ist, Aber um dies in den Kontext der Sicherheit zu stellen: Entwickler, die wissen, was ihr Code macht und wie er funktioniert (weil er die standardisierten Best Practices für Ihre spezielle Nische verwendet), werden weniger wahrscheinlich Code einfügen, der alles ablenkt und fügt versehentlich neue Sicherheitsfehler hinzu usw. – BrainSlugs83