Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Upload plików MP3
Forum PHP.pl > Forum > PHP
slawo
witam, mam taki kod do wrzucania plików na serwer...

  1. <title>Upload
  2. MP3</title>
  3.  
  4. <?php
  5.  
  6. if($_POST['submit']=="Upload") {
  7. if ($_FILES['file']['name'] != "") {
  8. if (($_FILES['file']['type'] == "audio/mpeg") || ($_FILES['file']['type'] == "application/force-download")) {
  9. if ($_FILES["file"]["size"] < 8097152) {
  10. move_uploaded_file($_FILES["file"]["tmp_name"], "mp3/" . $_FILES["file"]["name"]);
  11. echo "Plik
  12. został pomyślnie wrzucony na serwer.";}
  13. else { echo "Maksymalny rozmiar pliku to 2MB!";}
  14. } else {
  15. echo "Proszę wrzucić mp3!";
  16. } else { echo "Proszę podać plik.";}
  17. }
  18. ?>
  19.  
  20. </head>
  21.  
  22. <body>
  23.  
  24. <p style="font-family: verdana;">Proszę wybrać plik mp3: </p>
  25.  
  26. <br />
  27.  
  28. <form action="<?php echo $PHP_SELF ?>" method="post" enctype="multipart/form-data">
  29.  
  30. <input type="file" name="file" size="40" />
  31.  
  32. <br /><br />
  33.  
  34. <input type="submit" name="submit" value="Upload" />
  35.  
  36. <br /><br />
  37.  
  38. <span style="font-family: verdana; font-size: 12px;">* Tylko mp3 ! Maksymalny rozmiar pliku to 2MB.</span>
  39.  
  40. </form>
  41.  
  42. </body>
  43.  
  44. </html>



myślicie, że jest bezpieczny? może macie lepiej napisane?
neversoft
o jakim bezpieczeństwie piszesz? o co konkretnie Ci chodzi?
slawo
zeby nie dalo sie wrzucic jakiegos pliku niby z rozszerzeniem mp3 a to np. jakis 'trojan'
kiler129
Cytat(slawo @ 30.10.2010, 19:05:39 ) *
zeby nie dalo sie wrzucic jakiegos pliku niby z rozszerzeniem mp3 a to np. jakis 'trojan'


* Sprawdzaj mimetype
* Sprawdzaj nagłówek pliku mp3

Nie chce mi się używać za ciebie google - gotowcy jest multum winksmiley.jpg
Wysil sie a doradzimy.
slawo
czyli ten kod jest w miarę bezpieczny i nikt raczej nie wrzuci mi przez niego coś brzydkiego? tongue.gif
Fifi209
Spokojnie, wrzuci Ci choćby skrypt php odpowiednio modyfikując nagłówki. ;]

mime_content_type - tak jak pisał kolega, sprawdzaj po stronie serwera a nie to co dostajesz od użytkownika.
slawo
  1. <?php
  2.  
  3. $typy_mime = array("audio/mpeg");
  4. $plik_mime = $_FILES['file']['type'];
  5.  
  6. if($_POST['submit']=="Upload") {
  7. if ($_FILES['file']['name'] != "") {
  8. if(in_array($plik_mime,$typy_mime)){
  9. if ($_FILES["file"]["size"] < 8097152) {
  10. move_uploaded_file($_FILES["file"]["tmp_name"], "mp3/" . $_FILES["file"]["name"]);
  11. echo "Plik
  12. został pomyślnie wrzucony na serwer.";}
  13. else { echo "Maksymalny rozmiar pliku to 2MB!";}
  14. } else {
  15. echo "Proszę wrzucić mp3!";
  16. } else { echo "Proszę podać plik.";}
  17. }
  18. ?>



napisałem coś takiego. jak wrzucam plik jpg to wywala błąd.. a jak mam plik nazwa.jpg, zmienię rozszerzenia na nazwa.mp3 to normalnie przechodzi;/ a nie powinno bo niby wpisalem to mime audio/mpeg. hhmm?
Fifi209
Cytat(slawo @ 1.11.2010, 15:50:49 ) *
napisałem coś takiego. jak wrzucam plik jpg to wywala błąd.. a jak mam plik nazwa.jpg, zmienię rozszerzenia na nazwa.mp3 to normalnie przechodzi;/ a nie powinno bo niby wpisalem to mime audio/mpeg. hhmm?

Potrafisz czytać? Przestudiuj mojego posta...
slawo
potrafie.. tylko nie bardzo rozumiem jak to zrobić :/

pewnie trzeba cos takiego:

  1. jesli mime_content_type( $_FILES['file']['type'] ) = audio/mpeg to przepusc dalej



dobrze mysle?
Fifi209
  1. jesli mime_content_type($_FILES["file"]["tmp_name"]) == audio/mpeg to przepusc dalej


Tak jak coś ^

Ciężko jest sprawdzić samemu? Zobaczyć przykłady? Poczytać komentarze?
slawo
  1. if ((echo mime_content_type($_FILES['file']['name']) == "audio/mpeg")) {



cos takiego?
Fifi209
konkretniej jako parametr podajesz:
  1. $_FILES["file"]["tmp_name"]


Czyli:
  1. if (mime_content_type($_FILES["file"]["tmp_name"]) == 'audio/mpeg') {
  2. // zapisz
  3. }else{
  4. echo 'Oj ktoś łamie zabezpieczenia';
  5. }
slawo
  1. echo mime_content_type('mp3/ggg.mp3');


sprawdzam sobie przykladowy plik mp3 i wywala mi text/plain

i dalej mi 'prawdziwych' plikow nie chce przepuszczac

i czy sprawdzam jpg, png czy jakis inny to pokazuje text/plain ;/
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.