Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Bezpieczeństwo uploadu
Forum PHP.pl > Forum > PHP
Babcia@Stefa
Witam, mam taki kod:

  1. <?php
  2. $sql = mysql_query('SELECT id FROM tools_scripts ORDER BY id DESC LIMIT 0,1');
  3. $array = mysql_fetch_assoc($sql);
  4. $codeid = $array['id']+1;
  5. if(ereg('[A-Za-z0-9]{5,40}', $_POST['ftext']))
  6. {
  7. if($_FILES['codefile']['size'] < 5001)
  8. {
  9. $pathinfo = pathinfo($_FILES['codefile']['name']);
  10. if(in_array(strtolower($pathinfo['extension']), $allowed_extensions))
  11. {
  12. if(is_uploaded_file($_FILES['codefile']['tmp_name']))
  13. {
  14. @mysql_query('INSERT INTO `tools_scripts` (`id`, `name`, `desc`, `uploader`, `file`, `date`, `category`, `views`) VALUES (NULL, '' .mysql_escape_string($_POST['ftext']). '''Brak opisu''' .mysql_escape_string($_SESSION['sv']['logged']). '''' .mysql_escape_string($pathinfo['filename'].$pathinfo['extension']). '', NOW(), '' .mysql_escape_string($pathinfo['extension']). '''0')');
  15. $moved = move_uploaded_file($_FILES['codefile']['tmp_name'], 'scripts/' .$codeid. '.ot');
  16. if ($moved)
  17. echo '<center>Skrypt został pomyślnie załadowany.</center>';
  18. else
  19. echo '<center>Nie można załadować skryptu. (Nieznany błąd po stronie serwera) ' .$moved. '</center>';
  20. } else
  21. echo '<center>Hakować to możesz swoją babcie.</center>';
  22. } else
  23. echo '<center>Nie prawidłowe rozszeżenie pliku!</center>';
  24. } else
  25. echo '<center>Plik przekracza 5kb</center>';
  26. } else
  27. echo '<center>Nie poprawna nazwa wyświetlana! ([a-z 0-9] 5 - 15 znaków)</center>';
  28. ?>


Z uploadu bardzo żadko kożystam, więc się pytam Was czy ten kod jest bezpieczny smile.gif

Dziękuję, Babcia@Stefa
em1X
co to znaczy
Cytat
żadko kożystam
? biggrin.gif

mam małą uwagę... zauważ, że najpierw zapisujesz informacje o uploadzie:
  1. <?php
  2. @mysql_query('INSERT INTO `tools_scripts` (`id`, `name`, `desc`, `uploader`, `file`, `date`, `category`, `views`) VALUES (NULL, '' .mysql_escape_string($_POST['ftext']). '''Brak opisu''' .mysql_escape_string($_SESSION['sv']['logged']). '''' .mysql_escape_string($pathinfo['filename'].$pathinfo['extension']). '', NOW(), '' .mysql_escape_string($pathinfo['extension']). '''0')');
  3. ?>


a dopiero potem sprawdzasz czy upload się udał.. trochę bez sensu ?
chyba powinno być tak:

  1. <?php
  2. if ($moved)
  3. {
  4.  print "Skrypt zapisany";
  5.  @mysql_query(...);
  6. }
  7. else
  8. {
  9.  print "Blad uploadu";
  10. }
  11. ?>
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.