Pytanie o eval dla obliczeń matematycznych

0

Witam
Czytam jak niebezpieczny jest eval. Rozumiem dlaczego. Czy zabezpieczeniem będzie przepuszczenie stringa przez regexpa przed przekazaniem do eval? Tylko cyfry oraz znaki matematyczne przechodzą?

Pozdrawiam
Głębicki Radosław

2

https://stackoverflow.com/a/3513475/1639851

Mogę się mylić, bo nie chce mi się za dużo czytać o niebezpieczeństwach eval, ale ja tam bym poszedł na łatwiznę i zrobił tak jak piszesz - filtr dla tekstu od użytkownika przepuszczający tylko operatory, funkcje matematyczne (sin, cos itd.) i cyfry, a wywołanie eval zrobiłbym w bloku try:, bo jak ktoś źle napisze formułkę, np. "5++3", to eval rzuci wyjątkiem.

0

Jeszcze jedno. Powinieneś jakoś ograniczyć złożoność operacji. Jak ktoś Ci np. dowali jakąś ogromną potęgę (operator **) to np. się wykosztujesz na usługach chmurowych ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1