![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 58 Pomógł: 0 Dołączył: 25.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
poszukuje odpowiedzi na pytanie "Jak dobrze zabezpieczyć dane odbierane przez formularz php?". Napisalem do mojego systemu cms, ktory jest tworzony pod moj blog taki "zestaw": Kod htmlspecialchars(strip_tags(mysql_real_escape_string($_POST['cos']))) Czy zabezpieczy on w pelni moj blog przed atakami hackerow (SQL INJ itd.)? |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 3 Dołączył: 21.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
mysql_real_escape_string() zabezpieczy przed SQL Injection
strip_tags() i htmlspecialchars() przed XSS poza tym możesz dodatkowo filtrować różne dane pod kątem tego, czego na pewno nie powinno w nich być (na przykład spodziewasz się liczby a ktoś poda Ci tekst) |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%) ![]() ![]() |
strip_tags() i htmlspecialchars() przed XSS.... dodam od siebie, że tych funkcji używasz jedynie podczas wyświetlania danych przesłanych z formularza
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 58 Pomógł: 0 Dołączył: 25.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
mysql_real_escape_string() zabezpieczy przed SQL Injection strip_tags() i htmlspecialchars() przed XSS poza tym możesz dodatkowo filtrować różne dane pod kątem tego, czego na pewno nie powinno w nich być (na przykład spodziewasz się liczby a ktoś poda Ci tekst) Wiem. W tym celu uzywam (int) i w instrukcjach warunkowych is_numeric(). strip_tags() i htmlspecialchars() przed XSS.... dodam od siebie, że tych funkcji używasz jedynie podczas wyświetlania danych przesłanych z formularza Wydaje mi sie, ze przy zmiennej globalnej $_GET, takze powinienem to stosowac, np. przy sprawdzaniu czy podany kod aktywujący adres email w newsletterze jest poprawny. Prawda? |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Wydaje mi sie, ze przy zmiennej globalnej $_GET, takze powinienem to stosowac, np. przy sprawdzaniu czy podany kod aktywujący adres email w newsletterze jest poprawny. Prawda? A będziesz go gdzieś wyświetlał? -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 695 Pomógł: 65 Dołączył: 27.07.2009 Skąd: Y Ostrzeżenie: (0%) ![]() ![]() |
ja mam zwyczaj używania ABS zamiast int.. czasem bywa tak że liczba musi być dodatnia a w przypadku gdy osoba wpisze ujemną zamiast w zapytaniu np $a-$b wykona się $a+$b i jest psikus
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 58 Pomógł: 0 Dołączył: 25.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
A będziesz go gdzieś wyświetlał? Tylko wykonywal zapytanie do bazy danych. Ale z ciekawosci jesli chcialbym wyswietlic to co sie stanie? ja mam zwyczaj używania ABS zamiast int.. czasem bywa tak że liczba musi być dodatnia a w przypadku gdy osoba wpisze ujemną zamiast w zapytaniu np $a-$b wykona się $a+$b i jest psikus Czyli (abs)$zmienna ? Zauwazylem takze, ze is_numeric sprawdza tylko czy w ciagu znajduje sie cyfra. Zeby tak nie bylo powinno wystarczyc uzywanie is_int(), prawda? Ten post edytował dudi1261 8.10.2010, 14:28:07 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 695 Pomógł: 65 Dołączył: 27.07.2009 Skąd: Y Ostrzeżenie: (0%) ![]() ![]() |
abs($zmienna)
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 58 Pomógł: 0 Dołączył: 25.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Zatem abs($zmienna) sprawdza czy w $zmienna znajduje sie cyfra/y, zezwala na "." oraz na "-", a w is_numeric($zmienna), sprawdza czy w $zmienna znajduje się tylko cyfra 1-9 bez zadnych innych znakow
![]() |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 695 Pomógł: 65 Dołączył: 27.07.2009 Skąd: Y Ostrzeżenie: (0%) ![]() ![]() |
poczytaj , posprawdzaj sam jak co działa..
funkcja abs jest modułem więc każda liczba która w niej się znajdzie staje się dodatnią , jeśli wprowadzisz jakiś sting = 0 , funkcja o ile sie nie myle służy do liczb rzeczywistych |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Tylko wykonywal zapytanie do bazy danych. Ale z ciekawosci jesli chcialbym wyswietlic to co sie stanie? Jeżeli do bazy to starczy mysql_real_escape_string Co do wyświetlania, uchroniłbyś się przed XSS. Ten post edytował fifi209 8.10.2010, 17:11:13 -------------------- 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: 58 Pomógł: 0 Dołączył: 25.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
fifi209, mysle ze dobrze jest miec taki nawyk bo zabezpieczac sie przed XSS i SQL INJ
![]() ![]() Sprawdze jeszcze te funkcje dot. cyfr ![]() |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 695 Pomógł: 65 Dołączył: 27.07.2009 Skąd: Y Ostrzeżenie: (0%) ![]() ![]() |
hmm abs jest dobry jeśli np w linku w zmiennej get ma być zawsze liczba lub np po wprowadzeniu przez USERa danych liczbowych są jakieś obliczenia robione
|
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
fifi209, mysle ze dobrze jest miec taki nawyk bo zabezpieczac sie przed XSS i SQL INJ ![]() ![]() Co ma liczba rekordów do wstawienia jednej funkcji w pętli? Może być i milion rekordów... ![]() -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 58 Pomógł: 0 Dołączył: 25.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Chyba mnie nie zrozumiales. Mowie o tym zeby przefiltrowac dane przy ich wprowadzaniu do bazy niz przy wyswietlaniu wprowadzac str_replace i zamieniac wszystko co mogli zlego wprowadzic uzytkownicy. Np. <b>NICK UZYTKOWNIKA</b> i wtedy ich nick bedzie pogrubiony i sobie pomysla ze sa chytrzy ;d
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 695 Pomógł: 65 Dołączył: 27.07.2009 Skąd: Y Ostrzeżenie: (0%) ![]() ![]() |
chce miec <h1>nick</h1> to niech ma , twoim zadaniem jest zeby taki nick mogl miec a przy okazji byl bezpeczny dla twojej strony
|
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 58 Pomógł: 0 Dołączył: 25.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
Ale wtedy bedzie sie wyswietlalo wg kodu html czyli wykona sie cos, a nie wyswietli tak jak teraz napisales
|
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 695 Pomógł: 65 Dołączył: 27.07.2009 Skąd: Y Ostrzeżenie: (0%) ![]() ![]() |
dlatego Twoim zadaniem jest przetrzymywanie nicku który chcial mieć użytkownik a zarazem filtrować tak żeby on widział swój nick a jeśłi jest niebezpieczny czyli ma TAGi html lub inne żeby się nie wykonał. -> owca cała i wilk syty ;p
|
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 58 Pomógł: 0 Dołączył: 25.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
a Jak wyswietlic tagi html nie interpretujac ich?
|
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 695 Pomógł: 65 Dołączył: 27.07.2009 Skąd: Y Ostrzeżenie: (0%) ![]() ![]() |
O.o.. w 1 poście sam napisałeś -> htmlspecialchars .
używasz funkcji nie sprawdzając jak działają ![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 8.07.2025 - 05:08 |