Zabezpieczenia skruptów

0

Witam.

Tworzę własną grę przeglądarkową i chcę ją w miarę dobrze zabezpieczyć. Ogólnie chodzi mi o formularze. jak je zabezpieczać, aby np. gracze nie zmieniali sobie ilości kasy w bazie?

0

Pozwalasz użytkownikom grzebać po bazie danych?

0

Już widzę tę Twoją grę, skoro widzę, że wg Ciebie "zabezpieczenie" oprogramowania to zaincludowanie czegoś zapewne.

Źle zadajesz pytanie. Zadajesz je zbyt ogólnie, ujawniając, że nie masz pojęcia co robisz. Na Twoje pytanie nie ma odpowiedzi.

Mogę Ci podpowiedzieć: SQL Injection. Ale to nie wszystko. Pisząc trzeba myśleć, i sprawdzać KAŻDĄ DANĄ od użytkownika POD KĄTEM WSZYSTKIEGO. Np. Jak tworzysz formularz, który akceptuje wartości 1-16 I TAK musisz po stronie serwera sprawdzić czy nie ma tam wartości 17, choć wg Ciebie nie jest to możliwe. To tylko przykład.

0
dzek69 napisał(a):

Pisząc trzeba myśleć, i sprawdzać KAŻDĄ DANĄ od użytkownika POD KĄTEM WSZYSTKIEGO. Np. Jak tworzysz formularz, który akceptuje wartości 1-16 I TAK musisz po stronie serwera sprawdzić czy nie ma tam wartości 17, choć wg Ciebie nie jest to możliwe. To tylko przykład.

To zwykłe whitelistowanie, nie szukasz nieprawidłowości, upewniasz się jedynie, czy dane spełniają czekiwane założenia. Oczywiście życie nie jest takie proste i whitelistowanie niezawsze jest możliwe lub dopuszczalne.

0

W skrócie, nie uruchamiaj niczego z zewnątrz i przeprowadzaj walidację danych. Dłużej: https://www.owasp.org/index.php/Main_Page .

0

Ech... Nie o to mi chodzilo...

np mam pole wyboru select a w nim wartosci np 1,2,3,4,5, i wartosc ta jest dodawana do np kasy. Ale uzytkownik zmienia zrodlo strony i zawartos value w polu select, przez to np moze zmienic sobie rangę.

Jak to zabezpieczyc?

0

Masz pole wyboru z wartościami 1-5. Czyli wiesz jakie mogą być akceptowane wartości. No więc potem jak dostaniesz zmienną od użytkownika to sprawdź czy jego wartość pasuje do "akceptowanych". Czegoś tu nie rozumiesz?

0

A jesli wartosci nie sa cyframi?

0

Raczyłeś w ogóle trochę poczytać na ten temat? Co więcej, używaj polskich znaków, trochę szacunku dla czytających.
Najprostsza whitelista "z definicji":

<select>
	<option value="dupa">Dupa</option>
	<option value="dupa2">Dupa2</option>
	<option value="dupa3">Dupa3</option>
</select>

Filtr:

$dopuszczalne_wartosci = array('dupa', 'dupa2', 'dupa3');
//Pobierasz range z $_POST czy czegos tam...
$ranga = ...
if ( ! in_array($ranga, $dopuszczalne_wartosci))
{
	//rzuc wyjatkiem czy cus
}

Funkcją filter_var można zrobić więcej, np. używając REGEXa (przykład z głowy, możliwe że nie dziala):

if ( ! filter_var($ranga, FILTER_VALIDATE_REGEXP, array('options' => array('regexp' => '/dupa([0-9]|)\z/'))))
{
	//throw...
}

Tylko nie pytaj proszę o REGEX...

0

Z in_array trzeba uważać, bo in_array('3dupa', array(3)) === true. Dopisanie trzeciego parametru powinno pomóc.

Ale @ wskaźnik - popatrz na posta nad Twoim i zastanów się, czy nie zapyta Cię o regexy.

I koleś pisze grę przeglądarkową, eeech...

1 użytkowników online, w tym zalogowanych: 0, gości: 1