![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 181 Pomógł: 14 Dołączył: 4.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Heyka,
Mam pytanko do osób, które znają odpowiedź ^^ Otóż, czy da się w jakiś sposób zabezpieczyć zmienne prywatne w klasach przed odczytem ich z tablicy $GLOBALS? Z góry dzięki za odpowiedź. Pozdrawiam. |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
A od kiedy zmiennej prywatne klasy znajdują sie w tablicy GLOBALS?
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 181 Pomógł: 14 Dołączył: 4.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem od kiedy, ale tak jest
![]() Dowód (wycinek z $GLOBALS): Kod [baza] => DB Object ( [host:DB:private] => localhost [user:DB:private] => nazwa [pass:DB:private] => haslo [name:DB:private] => baza [port:DB:private] => 3306 [prefix:DB:private] => prefix [connection] => [error] => ) connection i error to zmienne publiczne. Ten post edytował Kużdo 28.04.2012, 19:44:48 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Jak to się nie znać a pisać...
W globals panie kolego to ty masz obiekt DB a nie zmienne prywatne. A print_r ma to do siebie że z obiektu wyświetla wszystko nawet zmienne prywatne. Po pierwsze:z globals to nie ma żadnego związku po drugie: spróbuj w takim razie coś tej zmiennej prywatnej przypisać ![]() Podsumowując: nie ma żadnego problemu. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 181 Pomógł: 14 Dołączył: 4.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dobra, źle sformułowałem zdanie ;P Chodzi mi o to, aby właśnie nawet przez print_r nie dało sie wylistować tych zmiennych. Bo w ten sposób można dostać się do danych, których nie musimy chcieć udostępniać ludziom. A np. taki vb pozwala na wykonanie dowolnego kodu PHP, więc zakładając, że mam dostęp do czyjegoś panelu admina vb, mogę wylistować sobie login i hasło do bazy danych, właśnie dzięki $GLOBALS.
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
NIe dzięki GLOBALS tylko dzięki temu, że print_r wyświetla wszystko. Przyjmij to wkoncu do wiadomosci.
Nie da się. Masz dostęp do obiektu to dzieki print_r możesz podejrzeć jego zmienne prywatne. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 181 Pomógł: 14 Dołączył: 4.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Obyłoby się bez "przyjmij to wkoncu do wiadomosci". Potencjalny atakujący nie musi znać zmiennych w skrypcie, a $GLOBALS zna na 100%, co za tym idzie pisałem ciągle o $GLOBALS, bo dzięki tej tablicy dowiedziały się o danych, których każdy wolałby nie ujawniać.
Poza tym nie uzyskałem odpowiedzi na moje pytanie w Twojej poprzedniej wypowiedzi, więc nadal pytałem się o możliwość zabezpieczenia tego (na te pytanie dostałem dopiero teraz odpowiedź), więc nie rozumiem tej lekkiej bulewrsacji, jakobym nie zrozumiał czegoś z Twojego poprzedniego postu. Tak czy siak, dzięki za odpowiedź. |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
A mógłbyś pokazać kod PHP?
![]() -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#9
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat Obyłoby się bez "przyjmij to wkoncu do wiadomosci" Bo ci poraz kolejny wyjasniam ze to nie dzieki GLOBALS a dzięki print_r. Obyłoby się bez tych słów z mojej strony gdybyś przyjął to do wiadomosci za pierwszym razem ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 181 Pomógł: 14 Dołączył: 4.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
@nospor, dzięki $GLOBALS uzyskamy dostęp do tych zmiennych, a nie dzięki znaniu nazwy konkretnego obiektu. To, że print_r tak działa zrozumiałem już przy pierwszym wyjaśnieniu, ale jakoś chyba musiałem dalej opisać sytuację?
@Fifi209, nie rozumiem do czego mógłby się przydać tutaj kod. Zwykła klasa, która zawiera kilka zmiennych prywatnych. Ustawia się je przy tworzeniu nowego obiektu. Nie da się zmienić, ani wylistować.
Ten post edytował Kużdo 28.04.2012, 20:42:54 |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
I potem robisz:
i ją widzisz tak? Ten post edytował Fifi209 28.04.2012, 21:34:07 -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 181 Pomógł: 14 Dołączył: 4.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Wysłałeś posta 2 razy
![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 05:19 |