![]() |
![]() ![]() |
![]() |
![]()
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 ![]() Pozdrawiam, Bartek |
|
|
![]()
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... |
|
|
![]()
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 ![]() 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; } |
|
|
![]()
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 ![]() |
|
|
![]()
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: |
|
|
![]()
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
![]() Teraz tylko mi wytlumacz jak to zrobic ![]() Pozdrawiam, Bartek |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 456 Pomógł: 0 Dołączył: -- Ostrzeżenie: (0%) ![]() ![]() |
Co ty tam chcesz chronic
![]() ![]() 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 |
|
|
![]()
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: |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 456 Pomógł: 0 Dołączył: -- Ostrzeżenie: (0%) ![]() ![]() |
No i co im to daje
![]() NIC ![]() ![]() ![]() ![]() -------------------- pozdrawiam
CASTOR |
|
|
![]()
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. |
|
|
![]()
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
![]() 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 |
|
|
![]()
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) |
|
|
![]()
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: |
|
|
![]()
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? ![]() 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 |
|
|
![]()
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 :?: :?: :?: :?: |
|
|
![]()
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
![]() |
|
|
![]()
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... |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 10.08.2025 - 05:47 |