Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zabezpieczenie formularzy
bartek
post 17.04.2002, 19:07:51
Post #1





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 20.03.2002
Skąd: Tarnów

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


Mam takie pytanko :
Mam strone form.php i wstaw.php.
Na form.php jest formulaz ktory wysyla dane do wstaw.php (strona ta wstawia wartosci z form.php do tabeli mysql).
Jak zrobic aby wstaw.php dodawalo do sql'a tylko dane z form.php a nie jakiegos innego formulaza z innej strony (tylko prosze mi to wyjasnic metodą łopatologiczną bo jestem cienki w php winksmiley.jpg )

Pozdrawiam,
Bartek
Go to the top of the page
+Quote Post
kryr
post 17.04.2002, 19:51:34
Post #2





Grupa: Zarejestrowani
Postów: 268
Pomógł: 0
Dołączył: --
Skąd: kielce

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


Sprawdzasz, czy zmienna $_SERVER['HTTP_REFERER'] to adres strony z formularzem.
np:
Kod
if($_SERVER['HTTP_REFERER'] == 'form.php')

{

print('Dodaj do bazy');

}

else

{

print('Nie dodawaj');

}

Ale to latwa do ominiecia metoda, choc dosc skuteczna...
Go to the top of the page
+Quote Post
Seth
post 17.04.2002, 20:19:16
Post #3





Grupa: Przyjaciele php.pl
Postów: 2 335
Pomógł: 6
Dołączył: 7.03.2002

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


Mozna by stworzyc jakas zmienna generowana podczas tworzenia formularza zakodowac ja i umiescic w <input type="hidden" name="jakas_zmienna" value="zakodowana_wartosc">

Zakodowana_wartosc to np data(bez czasu) stworzenia formularza i jakis tekst - dowolny.
Potem jezeli odkodowana wartosc zgadza sie z data i dodanym (dowolnym) tekstem to oznacza, ze jest ok biggrin.gif

Najprostsza funkcja do kodowania i dekodowania to:
Kod
function x_Encrypt($string, $key){

for($i=0; $i<strlen($string); $i++){

for($j=0; $j<strlen($key); $j++){

$string[$i] = $string[$i]^$key[$j];

}

}

return $string;

}



function x_Decrypt($string, $key){

for($i=0; $i<strlen($string); $i++){

for($j=0; $j<strlen($key); $j++){

$string[$i] = $key[$j]^$string[$i];

}    

}

return $string;

}
Go to the top of the page
+Quote Post
bartek
post 18.04.2002, 14:00:09
Post #4





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 20.03.2002
Skąd: Tarnów

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


Seth, nie za bardzo rozumiem o co Ci chodzi.
Co dokladnie ma byc umieszczone w value ?
Wogle nie zabardzo kapuje jak to zrobic smile.gif
Go to the top of the page
+Quote Post
Seth
post 18.04.2002, 14:15:20
Post #5





Grupa: Przyjaciele php.pl
Postów: 2 335
Pomógł: 6
Dołączył: 7.03.2002

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


Chodzi o to aby stworzyc jakas niepowtarzalna wartosc znana tylko twojej stronie, ktora by pozwalala odroznic posta z innego formularza od posta z twojego.
Tak np jest w bramce SMS'owej Ery - jest dodatkowa wartosc generowana przy tworzeniu formularza i bezniej nie wysle sie sms'a.
Mam nadzieje, ze juz cos sie wyjasnilo jezeli nie to... hmm... to trudno :wink:
Go to the top of the page
+Quote Post
bartek
post 18.04.2002, 19:22:21
Post #6





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 20.03.2002
Skąd: Tarnów

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


Ok Seth, juz kapuje o co biega smile.gif
Teraz tylko mi wytlumacz jak to zrobic smile.gif

Pozdrawiam,
Bartek
Go to the top of the page
+Quote Post
castor
post 18.04.2002, 19:50:50
Post #7





Grupa: Zarejestrowani
Postów: 456
Pomógł: 0
Dołączył: --

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


Co ty tam chcesz chronic questionmark.gifquestionmark.gif

Wiedz jedno ze co bys nie zrobil to i tak tego nie zabezpieczysz.

Oczywiscie dla poczatkujacych programistow bedzie to utrudnienie ale lekko zaawansowanym jest bez roznicy czy sprawdzisz referera czy wygenerujesz losowo jakis numerek itd.

Wiec zastanow sie czy to ma sens :?

Ja bym zrobil refererka i styka bo jezeli ktos juz zacznie manipulowac naglowkiem to i te wylosowany ciag znakow nie pomoze :wink:


--------------------
pozdrawiam
CASTOR
Go to the top of the page
+Quote Post
Seth
post 18.04.2002, 20:40:00
Post #8





Grupa: Przyjaciele php.pl
Postów: 2 335
Pomógł: 6
Dołączył: 7.03.2002

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


Cytat
Ja bym zrobil refererka i styka bo jezeli ktos juz zacznie manipulowac naglowkiem to i te wylosowany ciag znakow nie pomoze :wink:

Prawde mowiac to wszystko sie da obejsc.
Ale wspomniana przezemnie ERA jakos nie podchodzi do tego tak sceptycznie jak ty castor :wink:
Go to the top of the page
+Quote Post
castor
post 18.04.2002, 20:58:34
Post #9





Grupa: Zarejestrowani
Postów: 456
Pomógł: 0
Dołączył: --

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


No i co im to daje questionmark.gif?

NIC

laugh.gif laugh.gif laugh.gif laugh.gif


--------------------
pozdrawiam
CASTOR
Go to the top of the page
+Quote Post
Seth
post 18.04.2002, 21:07:28
Post #10





Grupa: Przyjaciele php.pl
Postów: 2 335
Pomógł: 6
Dołączył: 7.03.2002

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


Wiadomo, ze doswiadczony programista kazde zabezpieczenie predzej czy pozniej zlamie ale tu chyba chodzi o poczatkujacych.
A zreszta... hmmm :? .... moze rzeczywiscie nie jest to najlepszy pomysl.
Ale akurat taki przyszedl mi do glowy.
Go to the top of the page
+Quote Post
bartek
post 18.04.2002, 21:15:51
Post #11





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 20.03.2002
Skąd: Tarnów

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


Macie racje, skozystam z 'HTTP_REFERER' bo z hakierami nie bede mial do czynienia smile.gif.
A zabezpieczyc mi to trzeba jakby przypadkiem ktos wpisal www.mojastrona.pl/wstaw.php zeby nie wstawilo pustych rekordow (wiem ze sie da inaczej ale ... :?: )

Pozdrwiam,
Bartek
Go to the top of the page
+Quote Post
kryr
post 19.04.2002, 06:59:35
Post #12





Grupa: Zarejestrowani
Postów: 268
Pomógł: 0
Dołączył: --
Skąd: kielce

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


Pomysl Seth'a jest bardzo dobry, jezeli ukryta wartosc tworzyc na podstawie daty, to co godzine bedzie inna, a jezeli zastosuje sie jakies
mocniejsze kodowanie - ciezko sie bedzie domyslec, w jaki sposob powstaje ta wartosc...
np:
Kod
$WartoscDoHidden = crypt(date('MYDH'),'Az');

i przy odbiorze formularza sprawdzic:
Kod
if($WartoscZFormularza == crypt(date('MYDH'),'Az'))

Co do pustych rekordow, to wystarczy sprawdzic czy po prostu cos jest w wyslanych zmiennych... (o wiele latwiejsza metoda)
Go to the top of the page
+Quote Post
bartek
post 19.04.2002, 08:45:04
Post #13





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 20.03.2002
Skąd: Tarnów

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


Kryr, mozesz mi dokladniej wytlumaczyc co i gdzie wstawic? Bo ja sie dopiero ucze ... :oops:
A co do sprawdzania pustych rekordow, to jak to zrobic ? :?: :oops:
Go to the top of the page
+Quote Post
castor
post 19.04.2002, 11:21:24
Post #14





Grupa: Zarejestrowani
Postów: 456
Pomógł: 0
Dołączył: --

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


Cytat
Pomysl Seth'a jest bardzo dobry, jezeli ukryta wartosc tworzyc na podstawie daty, to co godzine bedzie inna, a jezeli zastosuje sie jakies
mocniejsze kodowanie - ciezko sie bedzie domyslec, w jaki sposob powstaje ta wartosc...


Sposobow na generowanie losowej wartosci jest mnostwo!

ale po co komu sie domyslac jak jest ta wartosc?questionmark.gif

Jesli chce wyslac wiadfomosc przez taki formularz to wyjme te wartosc z formularz i wstawie do przesylki :wink:

Oczywiscie mozna kombinowac generowac wartosci losowe np. z trzy jak masz zamieszany kod html to inputy pochowac w innych miejscach a nie przy formularzu itd.

Ale ja uwazam ze to na nic. coockie i referer to starczy bo po co se kompliowac skrypt jesli jak jz pisalem u gory ktos zacznie bawic sie naglowkiem i wyciagnie te coockie i wstawi referera to i te wartosci nie stana mu na drodze 8)

A co do wstawianie postych rekordow to ja cie nie rozumiem :?

przeciez jesli masz w skrypcie wstaw cos takiego:
Kod
if(!$HTTP_POST_VARS){

header("Location:formularz.php");

}



to jesli ktos wpisze adres w przegladarce
www.twojhost.pl/wstaw.php

to sie nic nie stanie bo nie ma zmiennych i go przeniesie na strone z formularzem

oczywiscie mozesz jeszcze w skrypcie sprawdzac zawartosc kazdej pojedynczej zmiennej i jesli jest posta to jej nie wstawjaj:

Kod
if!($HTTP_POST_VARS['twoja_zmienna']==""){

   tu kod wstawiena

}



proste przyklady ale o takie prosiles :wink:


--------------------
pozdrawiam
CASTOR
Go to the top of the page
+Quote Post
Seth
post 19.04.2002, 16:30:02
Post #15





Grupa: Przyjaciele php.pl
Postów: 2 335
Pomógł: 6
Dołączył: 7.03.2002

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


Mam male pytanie do bartka: czy strona na ktorej chcesz umiescic ten skrypt jest komercyjna lub ma bardzo duzo odwiedzin lub jest z jakis przyczyn zagrozona atakami czy wlamaniami :?:
Jezeli nie, to pytam sie, po co Ci takie zabezpieczenie :?: :?: :?: :?:
Go to the top of the page
+Quote Post
bartek
post 19.04.2002, 18:52:52
Post #16





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 20.03.2002
Skąd: Tarnów

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


Seth, nie jest komercyjna ale jakies minimalne zabezpieczenia zawsze sa potrzebne smile.gif
Go to the top of the page
+Quote Post
kryr
post 19.04.2002, 19:08:36
Post #17





Grupa: Zarejestrowani
Postów: 268
Pomógł: 0
Dołączył: --
Skąd: kielce

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


Jezeli chodzi Ci o to, zeby nie bylo "pustych" wpisow w bazie, to wystarczy sprawdzic, czy wszystkie dane z formularz sa wyslane...
Daj spokoj z takimi zabezpieczeniami...
Go to the top of the page
+Quote Post

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: 10.08.2025 - 05:47