Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> automatyczne uruchamianie funkcji public static z url
zephyr7
post
Post #1





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 3.11.2005

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
zephyr7
post
Post #3





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 3.11.2005

Ostrzeżenie: (0%)
-----



a może:

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



Tylko jak przekazać zmieniającą się liczbę parametrów?
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




http://pl.php.net/manual/en/function.call-...-func-array.php
Tu możesz zapodać parametry jako tablicę więc mogą być zmienne


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
zephyr7
post
Post #5





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 3.11.2005

Ostrzeżenie: (0%)
-----


BRRRRilliant! O to chodziło!

Dziękuję i pozdrawiam!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 22:07