![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 29.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam!
Chcę napisać stronę z formularzem, przekazującym dane przez POST do innej podstrony, która wyświetla je w tabeli i zapisuje do pliku. Wszystko działa jak należy, jest tylko jeden problem: użytkownik modyfikując adres URL może modyfikować dane w tabeli (więc te, które będą zapisane). Przewiduję też "sprytnych" użytkowników, próbujących różnych sztuczek. Czy można jakoś zablokować odbieranie danych z URL, by skrypt pobierał tylko dane z POST? Chcę uniemożliwić kombinowanie ![]() |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 447 Pomógł: 191 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Nie rozumiem. Jak masz zrobione wyświetlanie danych z GET'a czy POST'a to użytkownik może wysłać dane jak mu się podoba. Nic na to nie poradzisz. Możesz po prostu filtrować te dane w skrypcie PHP.
Wklej lepiej kawałek kodu i napisz po naszemu o co Ci chodzi. -------------------- :)
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat by skrypt pobierał tylko dane z POST Może Cię zdziwię, ale użytkownik może też wysłać dane POST.Pamiętaj: wszystkie dane pochodzące od użytkownika (przeglądarki) są potencjalnie niebezpieczne i wszystkie te dane musisz sprawdzać/filtrować - niezależnie od tego czy to jest GET, POST, ciastko czy cokolwiek innego
Powód edycji: [nospor]:
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 29.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
Ok, postaram się.
-------------a1.php------------------ <form name="formularz" method="POST" action="a2.php"> <input type="checkbox" name="zmienna" value="1" checked="checked" /> <input type="checkbox" name="zmienna" value="2" checked="checked" /> <input type="submit" value="OK"/> </form> Tu dane są przesyłane przez POST do pliku a2.php -------------a2.php------------------ //I tu jest problem. Bo jak jakiś użytkownik przerobi URL np. na: "a2.php?zmienna=3", to w tabeli i w zapisie $zmienna ma wartość 3. A blokada tej możliwości zniechęciło by wielu "hakieruff" do zabawy skryptem. Wybrana opcja: <?php include $zmienna; ?> //tu jest zapis zmiennej "zmienna" do pliku Ten post edytował skm 29.07.2011, 18:33:41 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 729 Pomógł: 346 Dołączył: 4.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
A czy nie masz przypadkiem register_globals włączonych? Dodatkowo masz bezsensowny ten formularz jak chcesz albo wartość jeden lub dwa to użyj radiobuttonów. Sprawdzaj po $_POST['zmienna'] i nigdy nie rób
to jest proszenie się o guza już prędzej
-------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat //I tu jest problem. Bo jak jakiś użytkownik przerobi URL np. na: "a2.php?zmienna=3", to w tabeli i w zapisie $zmienna ma wartość 3. A blokada tej możliwości zniechęciło by wielu "hakieruff" do zabawy skryptem. I dlatego ci napisałem, że nie zależnie czy to post czy get to ty masz te dane sprawdzać.Pozatym to co napisał lobopol jest ok. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 29.07.2011 Ostrzeżenie: (0%) ![]() ![]() |
Ja wiem, że formularz bezsensowny. Napisałem go byle jak. Chodziło o samą metodę "POST".
Niestety, nie mogę zrobić tego w sposób: if($_POST['zmienna'] == 1), ponieważ w prawdziwym programie jest zmienna z imieniem i nazwiskiem do zapisania. ![]() |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 729 Pomógł: 346 Dołączył: 4.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Dynamiczna jest czy stała? Jeżeli dynamiczna to sprawdź:
-czy nie jest pusta -czy nie ma znaków ucieczki ../ ./ / .itp -czy nie jest jakimś niedozwolonym plikiem jeżeli spełnia powyższe warunki wtedy sprawdź czy w katalogu znajduje się plik (is_file) $zmienna.php i jego includuj -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 06:48 |