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 (IMG:style_emoticons/default/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 559
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]:
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 559
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.
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. (IMG:style_emoticons/default/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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 27.09.2025 - 08:37