![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 379 Pomógł: 0 Dołączył: 18.08.2004 Ostrzeżenie: (0%) ![]() ![]() |
Wzialem sie za zabezpieczanie skryptu. Zaczalem wiec zabawe z funkcjami addslashes i stripslashes. Problem jest taki, ze gdy pobieram z tabeli dodany rekord filtrujac go stripslashes (by przy kazdej edycji nie robily mi sie dodatkowe slesze) to czesc pobranego stringu, ktora znajduje sie po cudzyslowie znika (cudzyslow tez). Problem jest tylko wtedy gdy pobieram string by wrzucic go do komorki formularza. gdy chce go wyswielic gdzie indziej na stronie to pokazuje sie caly tak jak powinien.
Istotna czesc kodu:
-------------------- |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Problem tkwi w HTMLu a nie w php.
Masz na przykład kod: Wszystko gra, prawda? A teraz co by było gdyby zamiast Tytuł było Jakiś"tytuł? Widzisz co jest nie tak? Wartośc dla atrybutu title jest równa Jakiś reszta to błą w kodzie HTML. Wniosek, nie możesz wstawiać niektórych znaków do kodu HTMLa, których? Znaków zkluczowych dla HTMLa. Pomoże Ci tu na przykład: htmlspecialchars() |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 379 Pomógł: 0 Dołączył: 18.08.2004 Ostrzeżenie: (0%) ![]() ![]() |
A czy uzywajac htmlspecialchars() moge zrezygnowac z stripslashes() i addslashes() ale by jendoczesnie kod nie byl mniej bezpieczny?
W koncu htmlspecialchars() zamienia cudzyslowia na inne znaki, a bez nich ciezko zrobic sql injection. Tak? -------------------- |
|
|
![]()
Post
#4
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Nie powinienes tego robic.
Zapis do bazy to jedno, a prezentacja to drugie. Przy zapisie powinno się zawsze korzystać z mysql_escape_string() bądź mysql_real_escape_string() bo to by dane zapisać do bazy. Nie powinno się ich modyfikować, przecież nigdy nie wiesz co z nimi zrobisz? Możesz pokazać na stronie, wtedy podczas wyświetlania należy użyć htmlspecialchars() ale przecież możesz też kiedyś mieć potrzebę zapisać je do pliku .txt wtedy będziesz miał kupę encji zamiast znaków, a to już takie extra nie jest. Narzędzia powinno się stosować do tego do czego zostały stworzone ![]() |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 379 Pomógł: 0 Dołączył: 18.08.2004 Ostrzeżenie: (0%) ![]() ![]() |
Ale ze mnie pustak;)
Mam uzywac htmlspecialchars tylko przy modyfikacji pobranych danych by nie gryzly sie z htmlem:) A do wysylania do bazy lepiej uzyc mysql_real_escape_string() niz addslashes(). Dobrze rozumiem? -------------------- |
|
|
![]()
Post
#6
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Tak.
---update--- Postanowiłem coś dopisać, bo post jakiś taki krótki. Coś |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 11:31 |