Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] Jak zabezpieczyć wysyłanie danych
Forum PHP.pl > Forum > Przedszkole
EvilBlast482
Jak zabezpieczyć ten kod przed nieprawdziwymi danymi?

  1. <?php
  2. header('Access-Control-Allow-Origin: *');
  3. header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept");
  4.  
  5. include('config.php');
  6.  
  7. if($_SERVER['HTTP_REFERER']='***'){
  8. $id = (int) $_POST['id'];
  9. $tip = $_POST['tip'];
  10. $link = $_POST['link'];
  11. $typ = $_POST['typ'];
  12. $zdobywca = $_POST['zdobywca'];
  13. $przeciwnik = $_POST['przeciwnik'];
  14. $a_nicki = $_POST['nicki'];
  15. $a_outy = $_POST['outy'];
  16. $gdzie = $_POST['gdzie'];
  17. if(!empty($tip) && !empty($gdzie)){
  18.  
  19. mysql_query("INSERT INTO table1 (id_itemu, tip, link, typ, zdobywca, przeciwnik, a_nicki, a_outy, gdzie) VALUES ('$id', '$tip', '$link', '$typ', '$zdobywca', '$przeciwnik', '$a_nicki', '$a_outy', '$gdzie')")or die(mysql_error());
  20. }
  21. }
  22. ?>
nospor
A jakei to są te "nieprawdziwe" dane?
EvilBlast482
@nospor
Np. wysłane z innego servera niż podany.
Słyszałem coś aby zrobić to w obiektach i pdo... Ale... biggrin.gif
nospor
PDO czy obiekty mają guzik wspolnego z jakiego serwera dane zostaly wyslane. A co ci szkodzi ze ktos wysle dane nie z Twojej strony?

ps: poczytaj o SQLInjection bo to tym sie powinienies martwic. W ogole nie zabezpieczasz danych...
EvilBlast482
Po prostu nie chce aby ktoś wysyłał nieprawdziwe dane, przykładowo jak ktoś użyje nieskończonej pętli? To wyśle się X wyników. biggrin.gif
nospor
Jak juz pisalem najpierw poczytaj o SQLINjection bo twoj skrypt w ogole na to nie jest odporny. To jest wiekszy problem.
Jak ktos bedzie chcial wyslac dane to wysle. Mozesz co najwyzej sie pobawic by z danego IP nie mogl dodac za duzo danych naraz
viking
Pierwszy z brzegu wynik który powinien pomóc
http://www.wikihow.com/Prevent-Cross-Site-...-Attacks-in-PHP
nospor
@viking to co podales w zaden sposob nie zabezpieczea przed sytuacją, którą opisał autor
viking
Jeśli serwer który te dane wysyła dołączy również poprawny token i później załóżmy
  1. if (Costam::isValidToken($_POST['token']))


to raczej nie widzę problemu. Zwłaszcza w tej sytuacji gdzie if jest na bazie referera który to sobie można dowolny podać.
nospor
Ale atakujacy moze bez wiekszego problemu pobierac ten token i przesylac go razem ze swoim żądaniem. Dlatego też piszę, że to nie jest zabezpieczenie na ludka, ktory bedzie celowal w jego strone.
viking
Zależy od stopnia skomplikowania. Przecież na podobnej zasadzie działają choćby systemy płatności online. W skrócie logowanie partnera, ustalenie indywidualnego kodu. md5 z jakiegoś tam kodu sesji + kod klienta = token. Bez znajomości kodu nie można wysłać poprawnego ciągu.
nospor
jesli przegladarka moze wysylac forma, to i atakujacy moze wyslac forma. A juz przy zabezpieczeniu co podales
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.