logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak napisać prosty skrypt PHP do bezpiecznego uploadu plików?

qzynos 21 Lis 2005 22:11 1316 4
  • #1 2013260
    qzynos
    Poziom 11  
    Posty: 11
    Witam!!! Mam problem tego typu: muszę napisać skrypt PHP (w miarę prosty, ale niewiem jak się za niego zabrać), w skrócie chodzi o to aby można było robić upload plików przez stronę www (jak najprostszy). Nie wiem jak ustawić w kodzie dostęp do plików żeby były same wgrywane, a żeby nikt inny nie mogł zrobić bałaganu na serwerze. Dzięki za każdą podpowiedź!!!!! Pozdrawiam!!!!!
  • Pomocny post
    #2 2013871
    pmichniewski
    Poziom 18  
    Posty: 242
    Pomógł: 22
    Ocena: 5
    Samo wysyłanie plików można zrealizować na przykład tak:

    nazwa skryptu plik.php (lub inna - ustalić w polu action !!)

    
    <?php
    if (!$HTTP_POST_FILES['userfile']) {
    ?>
    
    <form enctype="multipart/form-data" action="plik.php" method="post">
    Podaj nazwę pliku: <input name="userfile" type="file">
    <input type="submit" value="Wyślij">
    
    <?php
    } else if (move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], "/katalog/upload".$HTTP_POST_FILES
    ['userfile']['name']))
    {
        echo "Plik " . $HTTP_POST_FILES['userfile']['name'] . " zapisany. Dziękuję";
    }
    ?>
    


    nie sprawdzałem, ale powinno chodzić. Jest to BARDZO prosty i okrojony przykład - praktyczny brak kontroli błędów. Polecam manual na www.php.net !

    Jeśli chodzi o kontrolę dostępu, to sprawa się komplikuje i bez bazy danych będzie cienko. Można oczywiście zrobić proste porównywanie hasła podanego z zapisanym w skrypcie, ale szybko przekonasz się, że to bardzo niepraktyczne...
  • Pomocny post
    #3 2015871
    elektryk
    Poziom 42  
    Posty: 11029
    Pomógł: 439
    Ocena: 241
    Nijak tego nie zabezpieczysz, bez bazy danych musisz mieć katalog z możliwością zapisu dla każdego.
  • #4 2024108
    ostry_18
    Poziom 24  
    Posty: 824
    Pomógł: 64
    Ocena: 35
    niekoniecznie
    Cytat:
    katalog z możliwością zapisu dla każdego.
    - wystarczy w phpinfo() - mam nadzieje że wiesz co to jest - zobaczy pod jaką nazwą i grupą pracuje serwer apache, zazwyczaj apache:apache lub nobody lub http i ustawic chown katalogu właśnie dla niego. Wtedy ustawiamy parametry dostępu np na 7 - wlaściciel - jest nim teraz skrypt php, chocaiżby 7 dla grupy i 1 dla świata - odczyt.
    jakbys nie wiedział jak zmienic chown - włąściciela
    chown apache:apache -r katalog_uploadu


    edit: to sie da zrobic o ile znasz badz sam jestes adminem serwera
  • #5 2024175
    groovee
    Poziom 20  
    Posty: 485
    Pomógł: 38
    Ocena: 5
    Mozesz tez blokowac pliki roznych typow (np nie pozwalac wrzucac skryptow php) -zobacz w manualu jak dokladnie to sie robi;)


    Pozdrawiam!
REKLAMA