![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 873 Pomógł: 25 Dołączył: 24.07.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witajcie,
napisałem dziś logowanie. Napiszcie czy jest ok? Ogólnie działa ale, że działa to nie wszystko. Co byście zmienili? Co robię źle i bez sensu? czy idea jest oki? Czy idzie ten kod jakoś obejść i wejść mimo logowania na stronę? poniżej kod z komentarzem
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 112 Pomógł: 0 Dołączył: 24.04.2008 Ostrzeżenie: (0%) ![]() ![]() |
Cytat tutaj zapytanie count(*) where $_POST['login'] mozesz dac cale to zapytanie ![]() |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 873 Pomógł: 25 Dołączył: 24.07.2005 Ostrzeżenie: (0%) ![]() ![]() |
Ten post edytował john_doe 26.05.2009, 14:52:25 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Podatne na SQL Injection. Możliwość obejścia logowania bez znajomosci danych
-------------------- ET LINGUA EIUS LOQUETUR IUDICIUM
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 873 Pomógł: 152 Dołączył: 9.04.2006 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
Jak już posiadasz jakąś klasę to zrób może getRow()? Który zwróci arraya jako jeden wynik $wynik['kolumna'] ![]() -------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 873 Pomógł: 25 Dołączył: 24.07.2005 Ostrzeżenie: (0%) ![]() ![]() |
pyro jak taki skrypt można obejść możesz napisać. jakiś przykład? to ważny fundament każdej aplikacji
gdy wpiszę np w pole login or 1=1 i hasło blablabla nic się nie dzieje Ten post edytował john_doe 26.05.2009, 15:15:22 |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 1 873 Pomógł: 152 Dołączył: 9.04.2006 Skąd: Berlin Ostrzeżenie: (0%) ![]() ![]() |
wpisz
Cytat ' OR '1'='1
Ten post edytował bim2 26.05.2009, 16:34:17 -------------------- |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
od czego masz prepare, bindValue, bindParam ?
![]() Poczytaj w manualu -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Po co najpierw pobierasz ilość rekordów dla login = xxx, a dopiero potem dane dla login = xxx? Odrazu pobierz wszystkie dane - jak nic nie zwrócić, to znaczy, że takiego użytkownika nie ma.
Weź sobie utwórz jakąś stałą, która będzie zawierała adres strony czy coś takiego, bo każdorazowe klepanie w header() tego, to jakaś masakra. Dodatkowo dobrze by było, żebyś po header() dodał: Obiekt spod $dbh mógłby obsługiwać metody getRows() - zwraca wiele rekodrów, getRow() - zwraca jeden, getField() - zwraca pierwszą kolumnę z pierwszego rekordu. Albo lepiej przejdź na PDO. Brak filtracji danych. Nie stosuj numerycznych indeksów w tablicy zwracanej przez bazę danych. Raz, że jest to kompletnie niezrozumiałe, dwa, że w przypadku zmiany kolejności kolumn w bazie skrypt się sypie. Chyba łatwiej będzie:
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 873 Pomógł: 25 Dołączył: 24.07.2005 Ostrzeżenie: (0%) ![]() ![]() |
wpisałem w pole login ' OR '1'='1 a w pole haslo -- by zakometować resztę zapytania
i dostałem komunikat Warning: Invalid argument supplied for foreach() in C:\wamp\www\..........................php on line 11 Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\...........................................php:11) in C:\wamp\www\.........................php on line 63 czy wystarczy gdy w zapytaniu SQL dodam przed $_POST htmlspecialchars lub mysql_real_escape_string ![]() w 1szej kolejności chcę ustrzec się przed SQL Injection. dzięki za odpowiedzi. Otwieracie mi oczy <gitara> i jeszcze jedno jak w takim razie zapakować wynik zapytania do sesji skoro robię to jak chłopu na wsi? Ten post edytował john_doe 26.05.2009, 22:50:38 |
|
|
![]()
Post
#11
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Cytat dzięki za odpowiedzi. Otwieracie mi oczy <gitara> A widziałeś czasem przyklejone wątki? Cytat i jeszcze jedno jak w takim razie zapakować wynik zapytania do sesji skoro robię to jak chłopu na wsi? Wyciągasz tablicę i wpychasz do sesji - nie pakuj do niej bezpośrednio zasobu wyniku. -------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Obiekt spod $dbh mógłby obsługiwać metody getRows() - zwraca wiele rekodrów, getRow() - zwraca jeden, getField() - zwraca pierwszą kolumnę z pierwszego rekordu. Albo lepiej przejdź na PDO. Brak filtracji danych. Przecież pisał, że PDO używa. Co do filtracji ja już o tym pisałem. -------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 20.06.2025 - 09:19 |