![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 253 Pomógł: 1 Dołączył: 26.08.2009 Skąd: Szczecin Ostrzeżenie: (10%) ![]() ![]() |
Witam,
Od jakiegoś czasu pisze sobie niedużą stronę, na której głównie korzystam z php (w wielu wymiarach, ale głównie to jest php). Czytałem trochę w internecie nt. zabezpieczania sktyptów przed ew. atakami. Cały czas staram się do nich stosować, jednak mam pewne pytanie, na które nie mogę znaleźć jednoznacznej odpowiedzi. Załóżmy, że mam klasę mojaKlasa, a w niej metodę metodaMojejKlasy, która jest publiczna. Mam również skrypt skrypt.php w którym dołączam plik z klasą mojaKlasa i tworzę obiekt obiektMojaKlasa. Przykładowy kod może wyglądać tak:
Teraz moje pytanie względen takiego przykładowego wywołania - w którym miejscu powinienem dodać htmlspecialchars - w powyższym skrypcie, czy w metodzie klasy. Może i tu i tu? Czemu ta ostatnia sugestia? No własnie to mnie najbardziej zastanawia - czy jeśli jakieś dane zostały przesłane już do skryptu skrypt.php to czy przed wywołaniem metody klasy, czyli tak jakby pomiędzy skryptem a klasą może ktoś te dane zmanipulować, czy jeśli dane w skrypcie przeszły poprawnie to mam gwarancję, że w metodzie pozostaną takie same? Będę wdzięczny za odpowiedzi i podpowiedzi. |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
htmlspecialchars używa się z reguły przed wyświetleniem danych na ekran.
-------------------- "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: 253 Pomógł: 1 Dołączył: 26.08.2009 Skąd: Szczecin Ostrzeżenie: (10%) ![]() ![]() |
no, przy dodawaniu, wyszukiwaniu w bazie to nie można tego też użyć, lub do pracy na tych danych - np. liczenia? Bo w sumie to zamienia znaki specjalne na kody ascii tak więc, chyba jest ok? Czy lepiej używać czegoś innego?
Ale nie o to głownie chodzi - czy dane przesłane ze skryptu do metody klasy mogą zostac zmienione gdzieś? Czy mam 100% pewności, że jeśli w wywołaniu był poprawne to w metodzie też takie są? |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat no, przy dodawaniu, wyszukiwaniu w bazie to nie można tego też użyć, Dotego używa sie mysql_escape_string() lub bindowania jeśli korzystasz np. z PDO. htmlspecialchars służy zypełnie innym celom.Cytat Ale nie o to głownie chodzi - czy dane przesłane ze skryptu do metody klasy mogą zostac zmienione gdzieś? Czy mam 100% pewności, że jeśli w wywołaniu był poprawne to w metodzie też takie są? Nie za bardzo rozumiem. Dane mogą być ustawione w formularzu - i już.
-------------------- "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: 253 Pomógł: 1 Dołączył: 26.08.2009 Skąd: Szczecin Ostrzeżenie: (10%) ![]() ![]() |
No to z tym htmlspecialchars to rozumiem już.
A co do drugiego, czyli pierwszego problemu - chodzi mi o coś co mniej więcej można tak przedstawić (pseudograficznie) skrypt.php -> weryfikacja danych przekazanych do skryptu -> wywołanie metody ze zweryfikowanymi danymi -> (*) -> wykonanie się metody -> zwrócenie wyniku do skryptu Chodzi o to, czy w tym miejscu z gwiazdką może ktoś np zmanipulować dane ( w sumie wtedy powinno być tak samo sprawdzenie poprawności przy zwrocie danych z metody), czy jest to rzecz niemożliwa i dane raz zweryfikowane na początku trafią tak samo poprawne do metody? Może tak cos lepiej wyjaśniłem. Czy ktoś może mi w tym temacie pomóc? |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 5.07.2025 - 18:31 |