Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zabezpieczanie stringu
Forum PHP.pl > Forum > PHP
ktuvok
Wiem, że na ten temat napisano sporo, ale ta wiedza jest strasznie rozproszona, więc postanowiłem ją uporządkować.

Juzer wysyła metodą POST określony string do mojego skryptu. Czy poniższy kod jest wystarczający dla zabezpieczenia przesyłanego stringu?

[php:1:821ab5ee1f]

$ImieINazwisko = strip_tags(trim(str_replace(""", "", $_POST[ImieINazwisko])));
$ImieINazwisko = substr(str_replace("'","", $ImieINazwisko),0,30);

[/php:1:821ab5ee1f]

Pozdrawiam,
K
kszychu
Zależy co chcesz zabezpieczyć, czy też przed czym chcesz się zabezpieczyć. Napisz coś więcej.
ktuvok
Ha, gdybym ja to wiedział! smile.gif

Ale ogólnie to przed:
- SQL injection (dane trafiają do bazy MySQL)
- uruchomieniem javascriptu wpisanego przez juzera w polu
- rozwaleniem strony na skutek wpisania przez juzera tagów interpretowanych przez przeglądarkę
- przepełnieniem bufota (stąd pomysł, żeby ograniczyć rozmiar zmiennej).

Aha: magic_quotes_qpc mam ustawione na ON.

Będę wdzięczny za wszelkie uwagi, pomysły.

Pozdrawiam,
K
poplawsm
Przed kodem HTML i JavaScript-em możesz ochronić się za pomocą funkcji HTMLSpecialChars() np:

[php:1:af9f8e61ee]<?php
$ciag = HTMLSpecialChars("<B>To nie zostanie pogrubione</B>");
?>[/php:1:af9f8e61ee]
Seth
Dolozyl bym jeszcze [manual:2e74433259]mysql_escape_string[/manual:2e74433259]
ktuvok
OK, ale:

1. czy htmlspecialchars nie jest zbędne w sytuacji, gdy zrobiliśmy już strip_tags()? Przecież strip_tags usuwa wszelkie <kontenery>.

2. czy mysql_escape_string() jest potrzebne, jeśli usunęliśmy wcześniej wszystkie " oraz ' z ciągu?

Dajcie znać - nie chciałbym dublować pewnych czynności w kodzie.

Pozdrawiam,
K
spenalzo
Cytat
2. czy mysql_escape_string() jest potrzebne, jeśli usunęliśmy wcześniej wszystkie " oraz ' z ciągu?

[manual:f895b0e190]mysql_escape_string [/manual:f895b0e190]służy do escape'owania znakó charakterystycznych dla bazy MySQL, ktore mogą spowodować błędy.
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.