![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 788 Pomógł: 1 Dołączył: 17.09.2004 Ostrzeżenie: (10%) ![]() ![]() |
Witam serdecznie,
Poszukuję funkcji do bezpiecznego zapisu/odczytu danych w bazie MySQL. Użytkownicy mojej strony mają edytorek HTML i zapisują swoje dane w MySQL. Poszukuję funkcji do bezpiecznego zapisu i odczytu tych danych do MySQL (z usunięciem niebezpiecznych tagów/js'ów itp). Mógłbym prosić o podesłanie takich skryptów? Bardzo proszę o pomoc, Northwest |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
A co to ma do bazy danych? Poprostu albo escapuj dane przed wlozeniem, albo uzywaj bindowania jesli korzystasz z mysqli lub PDO i po sprawie.
-------------------- "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: 788 Pomógł: 1 Dołączył: 17.09.2004 Ostrzeżenie: (10%) ![]() ![]() |
używam takie coś:
I potem za pomocą PDO zapisuję do bazy.... Czy to bezpieczne rozwiązanie? ![]() |
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Z tematu wynika ze chcesz zabezpieczyc poprawne wlozenie danych do bazy. Po raz kolejny ci mowie, ze wystarczy ze uzyjesz bindowania w PDO i nic wiecej nie musisz robic.
Jesli chcesz strone zabezpieczac przed np. XSS to mozesz przed wyswietleniem danych uzyc htmlspecialchars i juz. Wszystko zalezy co chcesz osiagnac. -------------------- "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: 788 Pomógł: 1 Dołączył: 17.09.2004 Ostrzeżenie: (10%) ![]() ![]() |
W PDO robię zapis w takiej formie:
i zastanawiam się czy istnieje jakieś jeszcze niebezpieczeństwo? W funkcji zapisującej usuwam JS, do tego to PDO i zamiana HTML ... Coś jeszcze powinienem zrobić? Wyczytałem gdzieś że opisy itp powinno zamieniać się na BBCode przed zapisem.... Ten post edytował northwest 28.09.2015, 13:15:01 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Zacznij prosze czytac ze zrozumieniem co sie do CIebie pisze. Powtarzam, tym razem postaraj sie skupic :/
By zapisac poprawnie i bezpiecznie dane do bazy, wystarczy ze uzyjesz binowania w PDO. Nic wiecej nie musisz robic. Nie musisz pozbawiac hasla znakow specjalnych. Po to ludzie wymyslają w haslach znaki specjalne by one tam byly i by jakis nadgorliwy poczatkujacy programista ich im nie kasowal.... Nie wspomne juz o tym, ze hasla w bazie nie powinny byc zapisane w jawnej postaci a w postaci hasha. Zas zabezpieczenia danych wyswietlanych wprowadzanych przez usera to zupelnie inna bajka. Jak chcesz sie zabepieczyc przed XSS, czyli w skrocie rzecz mowiac, przed wykonaniem zlosliwego kodu js podanego przez usera, wystarczy ze przed wyswietleniem danych uzyjesz HTMLSPECIALCHARS. Przed wyswietleniem, a nie przed zapisem do bazy... Co do bbcode to user ma pisac w bbcode a nie ty masz zamieniac na bbcode.... Ty przed wyswietleniem masz bbcode zamienic na normalny html. -------------------- "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: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Pod względem wydajnościowym może być lepiej trzymać treść oryginalną i sparsowaną w bazie. Bez sensu jest zatrudniać przed każdym wyświetleniem parser bbcode/markdown/textile/whatever do wygenerowania treści.
-------------------- |
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
@viking tak, ale to juz kolejna dodatkowa kwestia. Najpierw niech autor opanuje podstawy.
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 788 Pomógł: 1 Dołączył: 17.09.2004 Ostrzeżenie: (10%) ![]() ![]() |
OK, dziękuję bardzo za poradę
![]() Mam jeszcze jedno pytanie, Mam takie coś:
Dlaczego wewnątrz tej funkcji nie widać tych zmiennych $base_ ![]() Ten post edytował northwest 28.09.2015, 14:00:59 |
|
|
![]()
Post
#10
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
manual -> zasieg zmiennych.
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 788 Pomógł: 1 Dołączył: 17.09.2004 Ostrzeżenie: (10%) ![]() ![]() |
tak, ale dane do połącznenia z pdo=>mysql mam poza funkcją....
Przepraszam,ale zły przykład napisałem powyżej:
I już tutaj, wewnątrz funkcji nie widzi tego połączenia ![]() otrzymuję błąd: Fatal error: Call to a member function prepare() on null in db.php on line 78 Ten post edytował northwest 28.09.2015, 14:18:51 |
|
|
![]()
Post
#12
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Toc wyraznie napisalem:
manual -> zasieg zmiennych http://php.net/manual/en/language.variables.scope.php -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 788 Pomógł: 1 Dołączył: 17.09.2004 Ostrzeżenie: (10%) ![]() ![]() |
OK, dziękuję
![]() Mam jeszcze pytanie - czy takie rozwiązanie jest bezpieczne:
Chodzi mi o trzymanie ID użytkownika w sesji? |
|
|
![]()
Post
#14
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
No tak, cos w sesji musisz trzymac by wiedziec kto zalogowany
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 06:34 |