Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V  < 1 2  
Reply to this topicStart new topic
> Przyscisk
evo
post 13.05.2004, 23:36:42
Post #21





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 4.02.2003

Ostrzeżenie: (0%)
-----


Cytat
To podaj choć jeden :wink:
On ujał zmienną z POST w zapytaniu w apostrofy, więc wszystko co wrzucisz do tej zmiennej będzie traktowane jako łańcuch tekstowy, a że nie możesz użyć ' ani ", to nigdy z tego łańcucha nie wyjdziesz i nie będziesz mógł wstrzyknąć nic do zapytania SQL.



oczywiscie magic_quotes_gpc jest duzym zabezpieczeniem lecz nie zapewnia ci one 100% gwarancji.


Zabezpieczyc sie mozna poprzez dokladna weryfikacje danych odebranych z przegladarki. Podpowiem by zwrocic uwage na znaki komentarzy SQL oraz oczywiscie gdy magic_quotes_gpc jest off to na znaki apostrofow.


Koncze tamat bo nie chce nikogo tu uczyc jak sie wstrzyki robi tylko zwrocilem wam uwage na to byscie sie nad tym zastanowili.



Pozdrawiam
evo
Go to the top of the page
+Quote Post
neo.priv
post 13.05.2004, 23:36:45
Post #22





Grupa: Zarejestrowani
Postów: 78
Pomógł: 0
Dołączył: 27.02.2004

Ostrzeżenie: (10%)
X----


A może to być wina błędnego odwolania sie to przycisku wyślij

[php:1:4afff73f24]<?php
if( isset( $_POST['wyślij'] ) )

?>[/php:1:4afff73f24]

gdyż do tego fragmętu wszystko działa, w środku próbowałem wywołać zmienne $login i $key, lecz niestety nic sie nie pokazało.


--------------------
Warsztst: Apache 1.3.31 | PHP 4.3.7RC1 | MySQL 4.0.18
Na warsztacie: RU llllllllll 98%
Go to the top of the page
+Quote Post
cboot
post 13.05.2004, 23:47:36
Post #23





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 2.02.2004

Ostrzeżenie: (0%)
-----


Cytat
oczywiscie magic_quotes_gpc jest duzym zabezpieczeniem lecz nie zapewnia ci one 100% gwarancji.


Zabezpieczyc sie mozna poprzez dokladna weryfikacje danych odebranych z przegladarki. Podpowiem by zwrocic uwage na znaki komentarzy SQL oraz oczywiscie gdy magic_quotes_gpc jest off to na znaki apostrofow.


Koncze tamat bo nie chce nikogo tu uczyc jak sie wstrzyki robi tylko zwrocilem wam uwage na to byscie sie nad tym zastanowili.

Nie musisz mi tłumaczyć sql injection, bo sam pisałem kiedyś o tym artykuł i myślę, że znam wszystkie kombinacje takich ataków (choć oczywiście mogę się mylić :? ). Prosiłem, żebyś podał przykład, bo chciałem Ci go obalić.
Niestety w podanym przypadku jest w 100% zabezpieczone i żaden # ani inny znaczek komentarza nic tu nie da. Tak więc podniosłeś w tym przypadku fałszywy alarm. Gdyby to nie była zmienna wstawiana jako łańcuch tekstowy, to owszem, ale w tym przypadku jest dobrze zabezpieczone.

@neo.priv

W pierwszym pliku masz takie coś:
[xml:1:476cdaac63] <input type="submit" value="Załóż konto" name="B2" style="font-family: Verdana; font-size: 8pt">[/xml:1:476cdaac63]
Czyli po naciśnięciu submit powstanie zmienna B2, a nie wyslij w tym przypadku. Może to o to chodziło?
Go to the top of the page
+Quote Post
neo.priv
post 14.05.2004, 09:56:52
Post #24





Grupa: Zarejestrowani
Postów: 78
Pomógł: 0
Dołączył: 27.02.2004

Ostrzeżenie: (10%)
X----


Cytat
Cytat

oczywiscie magic_quotes_gpc jest duzym zabezpieczeniem lecz nie zapewnia ci one 100% gwarancji.


Zabezpieczyc sie mozna poprzez dokladna weryfikacje danych odebranych z przegladarki. Podpowiem by zwrocic uwage na znaki komentarzy SQL oraz oczywiscie gdy magic_quotes_gpc jest off to na znaki apostrofow.


Koncze tamat bo nie chce nikogo tu uczyc jak sie wstrzyki robi tylko zwrocilem wam uwage na to byscie sie nad tym zastanowili.

Nie musisz mi tłumaczyć sql injection, bo sam pisałem kiedyś o tym artykuł i myślę, że znam wszystkie kombinacje takich ataków (choć oczywiście mogę się mylić :? ). Prosiłem, żebyś podał przykład, bo chciałem Ci go obalić.
Niestety w podanym przypadku jest w 100% zabezpieczone i żaden # ani inny znaczek komentarza nic tu nie da. Tak więc podniosłeś w tym przypadku fałszywy alarm. Gdyby to nie była zmienna wstawiana jako łańcuch tekstowy, to owszem, ale w tym przypadku jest dobrze zabezpieczone.

@neo.priv

W pierwszym pliku masz takie coś:
[xml:1:94d1d7574e] <input type="submit" value="Załóż konto" name="B2" style="font-family: Verdana; font-size: 8pt">[/xml:1:94d1d7574e]
Czyli po naciśnięciu submit powstanie zmienna B2, a nie wyslij w tym przypadku. Może to o to chodziło?



Zrobiłem jak radziłeś, wpis został dodnay, lecz jest jedno ale.

Otóż jak można zauważyć po wypełnieniu formularza rejestracyjnego przechodzimy do sprawdzenie wpisanych danych.

I tam na samym końcu sa przyciski
Kod
wstecz

i
Kod
wyślij


Zakłądam ze internauta może sie pomylić i dlatego sa te przyciski.

Zrobiwszy tak jak proponjesz dane zapisane w formularzu rejestracyjnym od razu są zapisywana w bazie danych, lecz powinno być po kliknięciu na wśylij.

Nie wiem dlaczego te dane się gubiom.

Jest co ciekawy przypadek i mam nadzieje że go rozwiżemy, gdyż komuś w przyszłości może troszke ułatwimy życie.

Macie jakieś propozycje?


--------------------
Warsztst: Apache 1.3.31 | PHP 4.3.7RC1 | MySQL 4.0.18
Na warsztacie: RU llllllllll 98%
Go to the top of the page
+Quote Post
cboot
post 14.05.2004, 11:15:58
Post #25





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 2.02.2004

Ostrzeżenie: (0%)
-----


Aha... To takie coś chcesz uzyskać. W takim razie możesz zrobić spowrotem tak jak było. Natomiast w miejscu gdzie jest ten drugi przycisk wyslij musisz przesyłać w formularzu wszystkie potrzebne Ci dane. Czyli w tym miejscu:
[php:1:3c2d721183]<?php
echo "<form method="post" action="pokarz_rejestracja.php">
<input type="submit" name="wstecz" value="wstecz" onClick=history.back()>
<input type="submit" name="wyslij" value="wyślij">
";
$login = $_POST[login];
$key = md5 ($_POST[haslo]);
?>[/php:1:3c2d721183]

Musisz dopisać:

[php:1:3c2d721183]<?php
echo "<form method="post" action="pokarz_rejestracja.php">
<input type="hidden" name="login" value="".$_POST['login']."" />
<input type="hidden" name="haslo" value="".$_POST['haslo']."" />
.... itd ...itd
<input type="submit" name="wstecz" value="wstecz" onClick=history.back()>
<input type="submit" name="wyslij" value="wyślij">
</form>";
$login = $_POST[login];
$key = md5 ($_POST[haslo]);
?>[/php:1:3c2d721183]
Oczywiście zamiast tekstu: .... itd ...itd powinieneś powstawiać wszystkie pozostałe zmienne, które były w poprzednim formularzu. Nie zapomnij też formularza zakończyć tagiem: </form>
Go to the top of the page
+Quote Post
scanner
post 14.05.2004, 11:17:50
Post #26





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




a nie lepiej dane z formularzy pamietać w sesji?


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
neo.priv
post 14.05.2004, 11:28:40
Post #27





Grupa: Zarejestrowani
Postów: 78
Pomógł: 0
Dołączył: 27.02.2004

Ostrzeżenie: (10%)
X----


Działa tak jak chce.

@scanner

Wszystko przedemną, może masz racje, twoja rada może być prostrza, zobacze jak to wyjdzie w praniu.

Pamiętam że jest jeszcze coś takiego co się nazywa obiektowy formularz, chyba pokreciłem nazwe.

Lecz chodzi o to że wpisane wartości do każdego z pól staja się odrębnymi obiektami.

Coś mi świta, poszperam troszke.

Dzięki za pomoc. smile.gif


--------------------
Warsztst: Apache 1.3.31 | PHP 4.3.7RC1 | MySQL 4.0.18
Na warsztacie: RU llllllllll 98%
Go to the top of the page
+Quote Post

2 Stron V  < 1 2
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 23.04.2024 - 08:28