![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 437 Pomógł: 42 Dołączył: 16.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Mam taki skrypt logowania opartego o sesje - moje pytanie brzmi: Czy taki skrypt jest bezpieczny?:
Wszystkie sugestie na temat polepszenia mile widziane ![]() Ten post edytował erix 19.08.2009, 23:10:18
Powód edycji: [erix] przeniosłem
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 450 Pomógł: 84 Dołączył: 27.11.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Cytat(sebekzosw)
w jakim celu sprawdzasz 2 razy ? ![]() Dlaczego raz używasz ' a raz " ? zastąp cudzysłów apostrofem, zwiększa to szybkość działania skryptu. Co do bezpieczeństwa.. MD5 ? ta funkcja skrótu teoretycznie w nowych aplikacjach pojawiać się nie powinna, zastąp ją SHA-1. Od siebie dodam, że lepiej napisałbyś to obiektowo, proceduralne - gorzej się czyta, po 2 tygodniach przerwy nie będziesz wiedział jak on nawet działał, OOP daje większe możliwości, na ten przykład PDO - nie musiałbyś martwić się o bezpieczeństwo, zapytania są tam filtrowane. Dodatkowo rozbudowa takich skryptów jest o wiele szybsza i prostsza.
zastąp tym, będzie wydajniej
Ten post edytował sniffer32 20.08.2009, 06:14:23 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 437 Pomógł: 42 Dołączył: 16.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
Poprawiłem już to co mówiłem, tylko nie wiem gdzie zastosować mysql_real_escape_string
![]() ![]() I dobrze zrobiłem z tym??:
Ten post edytował sebekzosw 20.08.2009, 08:32:31 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 450 Pomógł: 84 Dołączył: 27.11.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
1. wystarczy zajrzeć do manuala, przykład 3, widać czarno na białym jak używać i do czego mysql_real_escape_string służy
2. sprawdź czy działa ![]() |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 283 Pomógł: 15 Dołączył: 22.03.2009 Skąd: Bytów Ostrzeżenie: (0%) ![]() ![]() |
I dobrze zrobiłem z tym??: [PHP] pobierz, plaintext
Jak najbardziej dobrze. -------------------- |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 437 Pomógł: 42 Dołączył: 16.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
Trochę poprawiłem całe logowanie dodając nową opcję, co sądzicie teraz o takim skrypcie:
Ten post edytował sebekzosw 24.08.2009, 14:52:14 |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 283 Pomógł: 15 Dołączył: 22.03.2009 Skąd: Bytów Ostrzeżenie: (0%) ![]() ![]() |
Może najpierw powiedz, jaką opcję dodałeś? ^^
-------------------- |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 437 Pomógł: 42 Dołączył: 16.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
Deaktywacja konta po 3 błędnych próbach logowania
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Jaki w tym sens widzisz? addslashes doda \ strislashes usunie \ str_replace jest nie potrzebny tak samo preg_replace Użyj po prostu mysql_real_escape_string? I jeszcze to:
Gdzie definiujesz tą stałą? Ten post edytował fifi209 27.08.2009, 13:41:15 -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 1 387 Pomógł: 273 Dołączył: 18.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Cześć
Cała funkcja DodawanieDoBazy() jest zupełnie niepotrzebna, najlepszym i najprostszym zabezpieczeniem przed SQL injection oraz XSS jest przepuszczenie ciągu do dodania do bazy przez mysql_real_escape_string, a następnie - przy wyświetlaniu (a nie dodaniu do bazy) htmlspecialchars. W tym kodzie zamiast
Użyj po prostu (Albo przepuszczaj login przez mysql_real_escape_string bezpośrednio w zapytaniu) -------------------- XMPP: l0ud@chrome.pl
|
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Cześć Cała funkcja DodawanieDoBazy() jest zupełnie niepotrzebna, najlepszym i najprostszym zabezpieczeniem przed SQL injection oraz XSS jest przepuszczenie ciągu do dodania do bazy przez mysql_real_escape_string, a następnie - przy wyświetlaniu (a nie dodaniu do bazy) htmlspecialchars. W tym kodzie zamiast
Użyj po prostu (Albo przepuszczaj login przez mysql_real_escape_string bezpośrednio w zapytaniu) Po prostu to sobie daruj takie posty. Napisałeś to co ja...(tylko w innych słowach) -------------------- 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: 1 387 Pomógł: 273 Dołączył: 18.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Po prostu to sobie daruj takie posty. Napisałeś to co ja...(tylko w innych słowach) Mhm... a nie pomyślałeś że mogłem po prostu dłużej formułować tego posta? Poza tym nie wspomniałeś o htmlspecialchars której działanie czyni również jego funkcja. -------------------- XMPP: l0ud@chrome.pl
|
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Mhm... a nie pomyślałeś że mogłem po prostu dłużej formułować tego posta? Poza tym nie wspomniałeś o htmlspecialchars której działanie czyni również jego funkcja. O 7 minut ? htmlspecialchars zamienia na encje - jego funkcja tego nie robi... Więc o czym tu mowa. -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 1 387 Pomógł: 273 Dołączył: 18.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Tak, o 7 minut. Co do htmlspecialchars, robiła to poprzednia wersja funkcji, a na nią patrzałem (mój bład). Niemniej w takiej formie jak teraz tym bardziej należałoby o tym wspomnieć, bo wyrzucenie zmiennej bez filtracji to dziura xss.
btw. właśnie wywołałeś bezsensowną dyskusję na 5 postów ![]() -------------------- XMPP: l0ud@chrome.pl
|
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Dyskusja jest też na temat.
![]() Napisałeś, przy wyrzucaniu z bazy używać htmlspecialchars tylko powiedz mi jaki ma sens ciągłe obciążanie parsera jak można to zrobić raz przy zapisie do bazy? -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#16
|
|
![]() Grupa: Zarejestrowani Postów: 1 387 Pomógł: 273 Dołączył: 18.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Daje możliwość bezproblemowej edycji i wyświetlenia danych w wersji niezmodyfikowanej - łatwo chociażby wygenerować listę użytkowników do pliku .txt. Poza tym takie zachowanie to przecież standard
![]() -------------------- XMPP: l0ud@chrome.pl
|
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 291 Pomógł: 45 Dołączył: 21.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
A tak właściwie to czy jest sens bombardować bazę tymi wszystkimi zapytaniami?
Nie lepiej byłoby na początku wyciągać usera po loginie i potem sprawdzać jego parametry zgodnie z Twoimi założeniami? Bo tak możesz maksymalnie zmieścić się w: 1 SELECT + 1 UPDATE (przy błędnym zalogowaniu) [dobrze myślę?] Jednym słowem wartoby trochę zoptymalizować skrypt. Ale droga jest chyba dobra, tak sądzę. |
|
|
![]()
Post
#18
|
|
![]() Grupa: Moderatorzy Postów: 6 070 Pomógł: 860 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Nie lepiej byłoby na początku wyciągać usera po loginie i potem sprawdzać jego parametry zgodnie z Twoimi założeniami? Słuszna uwaga! Deaktywacja konta po 3 błędnych próbach logowania Bardzo niebezpieczna opcja... wystarczy jeden złośliwy użytkownik aby poblokować Ci innych użytkowników. |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 437 Pomógł: 42 Dołączył: 16.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
Demo (Login: demo , Hasło: demo) - sprawdźcie bezpieczeństwo
![]() a oto kod:
Ograniczyłem się do 1 SELECT, ale nie mam pomysłu na 1 UPDATE. Jakieś propozycje polepszenia? |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 22.06.2024 - 19:08 |