Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]call_user_func czy jest niebezpieczne dla aplikacji internetowych
Forum PHP.pl > Forum > Przedszkole
yaotzin
Witam używam funkcji call_user_func w jednej ze swoich aplikacji, okazuje się ze lokalnie wszystko pięknie działa, ale na serwerze firmy w której mam hosting, funkcja już nie działa. Póki co nie pisałem do nich z prośbą o udostępnienie tej funkcji. Zastanawia mnie czy powyższe jest w jakiś sposób niebezpieczne dla aplikacji, tzn. podatne na włamania itp questionmark.gif ewentualnie czym to zastąpić. Generalnie przekazuję nazwę funkcji poprzez string i realizuję jej wywołanie w ten sposób... w sumie jest to mi niezbędne do pewnych celów, jednakże jeśli używanie tego czymś grozi spróbuję obmyślić inny sposób...
devnul
sama w sobie jak i każda inna funkcja nie jest niebezpieczna
wszystko zależy od tego jak tego używasz - widać Twoi usługodawcy nie potrafią inaczej zabezpiepczyć serwera (co świadczy o nich) i wyłączają część funkcji które uznają za groźne i są zadowoleni z siebie - a to można obejść poprzez np taki trik
  1. <?php
  2. $func="nazwa_funkcji";
  3. $result=$func($param,$param2);
  4. ?>

i cała filozofia
ale zanim coś zaczniesz tego używać to filtruj dane pochodzące od użytkowika - tak żebyś później nie miał problemów z utratą danych etc
yaotzin
heh... czasami PHP mnie zadziwia swoją prostotą smile.gif nawet nie wiedziałem że coś takiego istnieje. Dla klas to tak samo zadziała questionmark.gif tzn.

  1. <?php
  2. $result = $class::$function();
  3. ?>


questionmark.gif
devnul
tak ale nie możesz użyć zmiennej jako nazwy klasy przy wywoływaniu statycznych metod, czyli nie możesz zrobić tak jak pokazałeś a jedynie tak
  1. <?php
  2. jakas_klasa::$function()
  3. ?>

oczywiście musi istnieć metoda zdefiniowana w zmiennej $function
yaotzin
To nie dobrze smile.gif bo muszę podawać nazwę klasy osobno i nazwę funkcji(bez parametrów) osobno. sorki ze tak się pytam na forum, ale siedzę pod windą, a tu nie mam moich skryptów i nie mogę sobie testować twoich porad... smile.gif wybacz...
devnul
a co to pod windowsa to juz interpretera php wycofali? winksmiley.jpg
yaotzin
A nie lubię cosik tego systemu... mam z nim same złe doświadczenia i używam tylko do gier i pisania różnorakich dokumentów w MS OFFICE... a na codzien lecę z Linux'em Ubuntu... choć przyznam się wcześniej używałem tylko windows... no ale przyzwyczajenia sie zmieniają biggrin.gif A rzecz druga to zauważyłem, że czasami skrypty pisane pod Windą wrzucone na serwer linuksowy, ekchm nie działają poprawnie (tzn. nie działają tak samo jak pod Windą)... osobiście nie doznałem tego problemu, ale mój znajomek taki problem miał...
devnul
no to widać trafił na 0,01% tych przypadków w których używane są funkcjie strict związane z platformą na jaką są pisane (dosłownie kilka takich funkcji jest na windowsa i kilka na unix`y). Inną opcją jest to że miał źle (lub zwyczajnie inaczej) skonfigurowany PHP. Innych możliwości nie ma.
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.