Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Kwestia bezpieczeństwa przy przekazywaniu zmiennych
Forum PHP.pl > Forum > PHP
trollx
Witam,
Mam pytanie d.t. przekazywania zmiennych metodą POST . Załóżmy, że mam formularz na stronie - i przekazuję jedną zmienną.


Kod
<form action="costam.php" method="POST">

<input type="hidden" name="costam">

</form>


Jeżeli ktoś będzie chciał stworzyć sobie podobny formularz bez dodatkowych ograniczeń - stworzy coś takiego:


Kod
<form action="http://adres.com/costam.php" method="POST">

<input type="hidden" name="costam">

</form>


Moje pytanie - jak można się przed tym uchronić bez ustawiania ciasteczek i bez potrzeby logowania?
id4
Witam

Użyj tablic superglobalnych.
[php:1:3ec231d8f0]<?php
$_POST['costam'];
?>[/php:1:3ec231d8f0]
scanner
Użyć sesji - ID sesji podawać w polu hidden i weryfikować przy odbieraniu POST'a z ID rzeczywistym.
trollx
Nie wiem czy dobrze zrozumiałem koncepcję -ale co za problem dla kogoś wejść na stronę - podglądnąć swoje id sesji i napisać formularz, który przez najbliższą godzinę będzie ładować w bazę ile wlezie?
scanner
Pierwwsza sprawa - jeśli ta sama sesja próbuje dodac w to samo miesce informację raz za razem piszemy "nie mozesz tak szybko....". Patrz: phpBB - antiflood.

Druga sprawa: Zawsze możesz wyświetlić token (patrz: IDEA)
Trzeciaq sprawa: Zawsze mozesz wymusić podgląd wiadomosci: ścieżka wygląda tak:
Formularz -> Podgląd -> Wysłanie do bazy.
W tym momencie skrypt atakujacego musiałby odczytać to co przychodzi od Ciebie, sparsować i odpowiedzieć.
A Ty podajesz tylko formularz zjednym polem hidden, gdzie masz ID trzymanego w "poczekalni" materiału. Jak user kliknie OK na podglądzie - oznaczasz materiał jako opublikowany. Dzaieki temu drugi formularz (podgląd) nie pokazuje rzeczywistych danych.
trollx
ok - coś rozjaśnił mi się problem - dzięki.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.