Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: automatyczne uruchamianie funkcji public static z url
Forum PHP.pl > Forum > PHP > Object-oriented programming
zephyr7
1) Jak najlepiej wywołać funkcję public static na podstawie url, np.

localhost/app/posts/show/1/2

2) i dlaczego większość programistów wyśmieje takie rozwiązanie:

eval('$uri[0]::$uri[1](' . $params . ');');
(co daje posts::show(1,2)wink.gif

zakładam, że zmienne $uri i $params zostały DOKŁADNIE przefiltrowane i pojawiają się w nich znaki wyłącznie alfanumeryczne a-z0-9, do max.20 znaków.

Czy takie rozwiązania stwarza możliwość ataku?questionmark.gif Czy zagraża bezpieczeństwu strony i danych?
Crozin
1. ReflectionClass i metoda invokeMethod.
2. Bo jest niezwykle wolne (m.in. przez blokowanie możliwości użycia akceleratora), jest bardzo niewygodne w pracy, nadal tworzy potencjalną dziurę (powiedzmy, że ktoś odkrył lukę pozwalającą zmienić zawartość zmiennej $params), która pozwala na zrobienie dosłownie wszystkiego.
zephyr7

a może:

call_user_func($uri[0].'::'$uri[1], .....);



Tylko jak przekazać zmieniającą się liczbę parametrów?
nospor
http://pl.php.net/manual/en/function.call-...-func-array.php
Tu możesz zapodać parametry jako tablicę więc mogą być zmienne
zephyr7
BRRRRilliant! O to chodziło!

Dziękuję i pozdrawiam!
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.