Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Pomijanie informacji z GET
skm
post
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 smile.gif
Go to the top of the page
+Quote Post
peter13135
post
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.


--------------------
:)
Go to the top of the page
+Quote Post
nospor
post
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

Go to the top of the page
+Quote Post
skm
post
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
Go to the top of the page
+Quote Post
lobopol
post
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
  1. include $zmienna;

to jest proszenie się o guza
już prędzej
  1. if($_POST['zmienna'] == 1){
  2. include cos;
  3. } elseif($_POST['zmienna'] == 2){
  4. include cos;
  5. }
  6.  


--------------------
Go to the top of the page
+Quote Post
nospor
post
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

Go to the top of the page
+Quote Post
skm
post
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. smile.gif
Go to the top of the page
+Quote Post
lobopol
post
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


--------------------
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 Aktualny czas: 22.08.2025 - 06:48