directory_listing, skrypt udostępniający zawartość katalogu publicznego

0

Skrypt udostępniający zawartość katalogu publicznego.

Proszę tylko o rzut okiem czy podany kod jest podatny na przeglądanie zawartości całego systemu operacyjnego ;)

Jedynym parametrem przekazywanym do serwera za pomocą $_GET jest identyfikator pliku [numer pozycji w scandir()]

https://github.com/Blackend/php_scripts/blob/main/directory_listing.php

0

Kilka szybkich uwag:

error_reporting( "E_ALL" );

Przekazujesz string, podczas gdy ta funkcja oczekuje argumentu liczbowego. Zapewne chciałeś użyć stałej E_ALL.

    if( isset( $_GET['id'] ) && (int) $_GET['id'] < count( $files ) && is_dir( $_SESSION['path'].$files[ (int) $_GET['id'] ] ) )

    // attach correct directory name to path
    $_SESSION['path'] = realpath( $_SESSION['path'].$files[ (int) $_GET['id'] ] ) ."/";

Dorzuć tutaj klamry i wcięcie, bo musiałem trzy razy się temu przyjrzeć, by upewnić się, że przypisanie jest wykonywane tylko, gdy if przejdzie.

    $icons['file'] = array(
        array( array(

Ostatnią wersją PHP, która nie wspierała notacji [...] i wymagała array(...), było PHP 5.3, wsparcie dla którego skończyło się w sierpniu 2014 roku - więc o ile nie pracujesz z prehistorycznymi serwerami, to nie ma powodu, by używać array(...) zamiast [...] w nowym kodzie.

0

@Sensacyjny Sebastian: Dziękuje bardzo za uwagi :) @Sensacyjny Sebastian from 4programmers, sugestions.

(poprawione)
screenshot-20211126140359.png

Mój błąd, podczas przenoszenia kodu między programami źle mi sformatowało tabulatory przez co oddzieliłem linie znakiem nowej linii (poprawione)
screenshot-20211126135902.png

Nie często piszę w PHP, zatem mam naleciałości z przeszłości ;) (poprawione)
screenshot-20211126140239.png

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