Piczer Opublikowano 7 Listopada 2008 Udostępnij Opublikowano 7 Listopada 2008 Czy jeśli zapiszę kod w ten sposób: <?php # Wyswietl podstrone if (isset($_GET['s'])){ include($_SERVER['DOCUMENT_ROOT'].'/'.$_GET['s'].'.php'); } ?> to zapewni mi to odpowiednią ochronę przed atakami? Czy to w ogóle zadziała? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pental Stary Opublikowano 8 Listopada 2008 Udostępnij Opublikowano 8 Listopada 2008 Hmm.. zawsze robię tak samo, z tymże należy dodać: <?php if ( isset( $_GET[ 'task' ] ) ) { $file = $_GET[ 'task' ] . '.php'; $alt = 'news.php'; if ( file_exists( $file ) ) include( $file ); else include( $alt ); } ?> Tak na wszelki wypadek, ew. echo 'Kategoria nie istnieje, czy coś :)'. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawidds Opublikowano 8 Listopada 2008 Udostępnij Opublikowano 8 Listopada 2008 Absolutnie :P W ten sposób mogę wejść na praktycznie każdą podstronę, a to chyba można by zaliczyć pod atak... :P 1. Przede wszystkim sprawdzaj czy w tej zmiennej nie występuje przypadkiem "./" (albo nawet w ogóle jakikolwiek ukośnik) 2. Zrób jakiś system sprawdzania poprawności nazwy tego include'owanego pliku. Czyli najprostszym rozwiązaniem jest tutaj dozwolenie, aby nazwa pliku składała się wyłącznie z liter, cyfr i podkreślnika. 3. A poza tym to sprawdzaj, czy owy plik istnieje :P PS: A najbezpieczniej (bo raczej w głównym katalogu strony będziesz miał nie tylko podstrony, prawda...?) to wszystkie pliki podstron walnąć do osobnego katalogu :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Piczer Opublikowano 8 Listopada 2008 Autor Udostępnij Opublikowano 8 Listopada 2008 Chyba jednak każdy plik usamodzielnię i dodam generowanie szablonu :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 8 Listopada 2008 Udostępnij Opublikowano 8 Listopada 2008 if( isset( $_GET['s'] ) ) { $file = getcwd() . '/stronki/' . preg_replace( '/[^a-zA-Z0-9_]/', '', basename( $_GET['s'] ) ) . '.php'; if( file_exists( $file ) ) { include( $file ); } else { echo '404'; } } Hm? Tak dla zabezpieczenia, wszystkie podstrony w katalogu "stronki". Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się