Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 0 Dołączył: 8.08.2010 Skąd: Warszawa Ostrzeżenie: (0%)
|
Witam. Posiadam dość dużą stronę internetową. Osób online jest czasami ponad 200.
Strona jest pisana przeze mnie w php, zawiera dużo formularzy. Użytkownicy mogą sobie dodawać usuwać i wyświetlać informacje/rekordy zapisane w bazie mysql. Od jakiegoś czasu użytkownicy skarżą się, że znikają im dane zapisane w bazie. Na stronie jest system tworzenia logów który zapisuje każdy ruch i akcję wykonaną na stronie. W logach nie ma żadnej informacji, że ktokolwiek coś usunął. Wczoraj ze strony zniknęło kilka długich artykułów - dodatkowo dostęp do formularza który służy do usuwania tych artykułów posiadam tylko i wyłącznie ja tak więc nikt inny nie mógł ich usunąć. Pisałem do administracji hostingu i dostałem odpowiedź, że rekordy w bazie nie mogą się same usuwać i mój skrypt jest prawdopodobnie podatny sql injection. Podczas pisania skryptu zastosowałem różne zabezpieczenia, adslashes, warunki sprawdzające czy user ma odpowiednie prawa i czy treść którą chce usunąć należy do niego itp. Dziwi mnie sytuacja z artykułami ponieważ tylko ja fizycznie mogę je usunąć. Dziwne jest też też to, że logi nie rejestrują tych operacji tak więc wydaje mi się, że rekordy nie są usuwane przez stronę/skrypt tylko jakoś z zewnątrz. Czy ktoś może spotkał się z podobną sytuacją? Zupełnie nie wiem czego to może być przyczyna. Proszę o pomoc. |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 0 Dołączył: 8.08.2010 Skąd: Warszawa Ostrzeżenie: (0%)
|
Dziękuję, skorzystałem trochę z prezentacji. Niektóre z zabezpieczeń tam pokazanych miałem zastosowanych już wcześniej.
Przyszedł mi jeszcze jeden pomysł do głowy. Mam ustawionego crona na skrypt który co 10 minut wyszukuje z pośród kilku tysięcy rekordów te, spełniające warunek WHERE a następnie je edytuje i wykonuje UPDATE. To wszystko w pętli for. Czy możliwe jest, że ten skrypt może powodować usuwanie danych? Atak sql injection wydaje się coraz mniej prawdopodobny ponieważ rekordy nie znikają jakoś równomiernie tylko np raz w tygodniu poleci 100 rekordów a potem jest kilka dni spokoju i znów... Próbowałem samodzielnie dokonać ataku sql injection na moją stronę lecz nie udało mi się to nawet zmieniając dane post w locie. W każdym formularzu jest addlsahes, mysql_escape_string oraz valint (jeżeli potrzeba). Jeżeli można już wykluczyć atak poprzez formularz zamieszczam cały skrypt który jest uruchamiany przez crona, może zrobiłem w nim jakiś głupi błąd którego nie potrafię odnaleźć. (tak wiem, bałagan w kodzie ale działa prawidłowo) Skrypt sprawdza wszystkie APLIKACJE. Jeżeli APLIKACJA ma STATYSTYKI=1 to wtedy wtedy skrypt sprawdza czy w tabeli STATYSTYKI znajduje się dj o nazwie $dj. Jeżeli istnieje to go edytuje dodając mu 10 minut. Jeżeli go nie ma to go utworzy i doda mu 10 minut.
Czy ograniczenie czasowe w skrypcie może mieć takie skutki? Proszę o pomoc. Ten post edytował denis94 28.02.2011, 16:57:23 |
|
|
|
denis94 Poważny problem z mysql 20.02.2011, 15:01:58
erix A blokowania tabel używasz? Transakcji? 21.02.2011, 11:30:07
denis94 Witam. Nie nie używam ani blokowania ani transakcj... 23.02.2011, 21:48:05
kokers a może ktoś po prostu ma dostęp do bazy, skoro wyw... 23.02.2011, 22:11:17
denis94 Ta opcja jest najmniej prawdopodobna ponieważ nikt... 23.02.2011, 22:30:41
kokers wiesz, ja jeśli bym widziała że mi znika z bazy c... 23.02.2011, 22:34:20
denis94 Niestety w logach nic nie ma. Hasło zostało już zm... 23.02.2011, 22:49:20
kokers nie przypominam sobie żadnej sytuacji nawet książk... 23.02.2011, 22:54:48
kokers poza tym, że skrypt działa dla statystyki > 0 a... 28.02.2011, 17:05:00
denis94 Dzięki za odpowiedź.
Niestety pisałem już do admin... 28.02.2011, 17:09:54 ![]() ![]() |
|
Aktualny czas: 27.12.2025 - 15:19 |