Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Test bezpieczeństwa mini CMSu.
Forum PHP.pl > Forum > PHP
Avatarus
Witam.
Od jakiegoś czasu robie mini CMS do moje strony, bo połączenie PHP Fusion + PHP bb by przemo okazały się za ciężkie dla serwerów Homa.pl (nie dziwie się sporo userów jest).

Mini CMS jest we sumie gotowy w podstawowej wersji.
Prosiłbym was o sprawdzenie czy są w nim jakieś poważne luki bezpieczeństwa.
Sami wiecie że programista nie powinien testować swojego kodu bo nie znajdzie błędów smile.gif
Poprosił bym osoby z Administracji mojego forum, ale oni nie znają się na programowaniu itp.

Czy ktoś zechcę poświęcić kilka minut swojego czasu i sprawdzić czy są jakieś poważne luki w zabezpieczeniach tego CMSa?
Byłbym naprawdę wdzięczny.

Oto link: http://www.silkroadonline.com.pl/testowy_silk/index.php

Btw kilka rzeczy (głównie obrazków) może nie wyświetlać się poprawni, ale to z racji tego że ten testowy CMS jest w podkatalogu, a nie chciało mi się specjalnie w kodzie tego zmieniać, bo potem znowu zapomnę przywrócić biggrin.gif
Avatarus
dzięki faktycznie nie sprawdziłem czy zmienna strona jest liczbą.
Już poprawione.

Dzięki za info. Pomogłeś biggrin.gif
Kamson
Staraj się filtrować dane wejściowe
nr strony np..intval

przy artach sprawdzasz tylko czy id jest liczbą a nie czy w ogóle istnieje.
Avatarus
Staram się sprawdzać, ale w tym CMS korzystam z swoich niektórych starszych skryptów (tak jak np. podział na podstrony) Wtedy nie miałem pojęcia o filtracji tego itp.
Teraz dostosowałem kod ale nie przyjrzałem się mu od kwestii bezpieczeństwa.

Co do Artów to są sprawdzane 3 warunki: czy jest pusta, czy zmienna
CODE
$_GET[art_id]
istnieje no i czy jest liczbą.
Nie przesadziłem? Zasadniczo nie trzeba sprawdzać czy jest zmienna skoro nie przejdzie testu czy jest liczbą i czy jest pusta.
Grzyw
Cytat
Nie przesadziłem? Zasadniczo nie trzeba sprawdzać czy jest zmienna skoro nie przejdzie testu czy jest liczbą i czy jest pusta.

Z liczbami jest super.
  1. <?php
  2. $liczba = (int)$_GET['art'];
  3.  
  4. if ($liczba) echo 'Masz już pewnosć, że jest zmienna, niepustą i liczbą.';
  5. ?>


I wystarczy. Odpada SQL Injection i inne problemy walidacyjne.
Avatarus
rozumiem o co chodzi, ale jeśli już stosuje metode is_numeric dla wszelkich danych POST i GET. Tzn najpierw sprawdzam czy dane zmienne są liczbami, jeśli tak to wykonuje jakieś tam funkcje a jeśli nie to wywala komunikat, lub przekierowuje do innej strony.

Czy to wystarczające zabezpieczenie?

dziękuje wszystkim za pomoc i proszę o jeszcze smile.gif

Tak na marginesie, jeśli znajdziecie jakiś bug który pozwoli wam dostać się do bazy/ftp to proszę tam nie mieszać smile.gif.
Pozdrawiam
wlamywacz
Mimo wszystko uważam iż powinieneś nie pokazywać więcej stron niż masz w stronicowaniu np. te 1000 stronę jak jest tylko 33

I jeszcze <a href="http://www.silkroadonline.com.pl/testowy_s....php?art_id=100" target="_blank">http://www.silkroadonline.com.pl/testowy_silk/artykul.php?art_id=100</a>
MajareQ
Cytat(Avatarus @ 1.02.2008, 12:26:17 ) *
Od jakiegoś czasu robie mini CMS do moje strony, bo połączenie PHP Fusion + PHP bb by przemo okazały się za ciężkie dla serwerów Homa.pl (nie dziwie się sporo userów jest).


Przepraszam, że tak mało na temat, ale dziwię się że to coś wogule działało.
Połączyłeś dwa największe kombajny jakie IMO istnieją.

Gratulacje, bo do tego trzeba miec niezłego skill'a smile.gif
Avatarus
Cytat
Przepraszam, że tak mało na temat, ale dziwię się że to coś wogule działało.
Połączyłeś dwa największe kombajny jakie IMO istnieją.

Gratulacje, bo do tego trzeba miec niezłego skill'a smile.gif


no musiało paść kilka serwerów zanim doszliśmy do wniosku że to złe rozwiązanie biggrin.gif
A jak sobie radziliśmy....no cięliśmy gdzie sie dało ale tak żeby nie tracić na funkcjonalności...
Po kilku miesiącach tego cięcia doszedłem do wniosku że to nie ma już sensu...bo i tak masa zbędnych rzeczy jest....

Cytat
Mimo wszystko uważam iż powinieneś nie pokazywać więcej stron niż masz w stronicowaniu np. te 1000 stronę jak jest tylko 33


No zastanawiam się jak to zrobić....musiałbym skorzystać z kolejnego zapytania SQL żeby sprawdzić ile tych stron naprawdę jest...
Hmm albo przesunąć sprawdzanie do funkcji, a potem skorzystać z jej wyniku biggrin.gif, no dobra ale to już jutro poprawie.

Włamywacz dzięki za buga z artami już poprawiony

Coś jeszcze znaleźliście?
wlamywacz
Może jeszcze coś znajdę jak będę mieć chwilkę.
Avatarus
będę bardzo wdzięczny biggrin.gif
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.