login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Url adres profielfoto niet zichtbaar na uploaden.

Offline Topken - 08/05/2016 09:03 (laatste wijziging 08/05/2016 09:11)
Avatar van TopkenLid Ik maak gebruik van de code die op mijn index.php staan: Dus urladres wordt dan getoond: index.php?pagina=....

Ik heb een ledensysteem waarbij de lid hun profiel kunnen bewerken en of opslaan. Ook kunnen de lid een profielfoto (avatar) toevoegen en of verwijderen.

Echter als één van de leden een profielfoto gaat toevoegen, dan toont url adres van deze profielfoto niet aan: index.php?pagina=leden/avatar/2.jpg, maar paginas/leden/avatar/2.jpg. (Kortom url adres wordt dan volledig zichtbaar).

Dit is natuurlijk wat ik NIET wil ivm veiligheid. Hoe lost ik dan op? Iemand hopelijk een idee?

Bedankt alvast.

Code:
  1. <?php
  2.  
  3. if(empty($_GET['pagina']))
  4. header("location: ../../index.php?pagina=leden/avatar");
  5.  
  6. beveiliging(4);
  7.  
  8. if($_GET['actie'] == "verzenden")
  9. {
  10. if(!is_uploaded_file($_FILES['bestand']['tmp_name']))
  11. {
  12. echo "<div class=\"titel\">Fout</div>";
  13. echo "<div class=\"bericht\">Je hebt geen afbeelding geselecteerd... <a href=\"javascript:history.go(-1)\">Ga terug</a></div>";
  14. }
  15. else
  16. {
  17. $extensie = explode(".", $_FILES['bestand']['name']);
  18. $extensie = strtolower(end($extensie));
  19. $extensie = trim($extensie);
  20.  
  21. list($breedte, $hoogte) = @getimagesize($_FILES['bestand']['tmp_name']);
  22.  
  23. if($extensie != "gif" && $extensie != "jpg" && $extensie != "jpeg" && $extensie != "png")
  24. {
  25. echo "<div class=\"titel\">Fout</div>";
  26. echo "<div class=\"bericht\">Je kan alleen maar .gif, .png en .jpg bestanden uploaden! <a href=\"javascript:history.go(-1)\">Ga terug</a></div>";
  27. }
  28. elseif($_FILES['bestand']['size'] > $website['size'])
  29. {
  30. echo "<div class=\"titel\">Fout</div>";
  31. echo "<div class=\"bericht\">Het bestand is te groot... Maximaal ".$website['size']." bytes... <a href=\"javascript:history.go(-1)\">Ga terug</a></div>";
  32. }
  33. elseif($hoogte > $website['avatar'] || $hoogte < 20 || $breedte > $website['avatar'] || $breedte < 20)
  34. {
  35. echo "<div class=\"titel\">Fout</div>";
  36. echo "<div class=\"bericht\">De afbeelding mag niet groter zijn dan ".$website['avatar']."x".$website['avatar']." px en niet kleiner dan 20x20 px. <a href=\"javascript:history.go(-1)\">Ga terug</a></div>";
  37. }
  38. else
  39. {
  40. if(file_exists("paginas/leden/avatar/".$_COOKIE['id'].".jpg"))
  41. unlink("paginas/leden/avatar/".$_COOKIE['id'].".jpg");
  42.  
  43. copy($_FILES['bestand']['tmp_name'], "paginas/leden/avatar/".$_COOKIE['id'].".jpg");
  44.  
  45. echo "<div class=\"titel\">Uploaden</div>";
  46. echo "<div class=\"bericht\">Je avatar is succesvol geüpload...</div>";
  47. }
  48. }
  49. }
  50. elseif($_GET['actie'] == "verwijderen")
  51. {
  52. if(file_exists("paginas/leden/avatar/".$_COOKIE['id'].".jpg"))
  53. unlink("paginas/leden/avatar/".$_COOKIE['id'].".jpg");
  54.  
  55. echo "<div class=\"titel\">Verwijderen</div>";
  56. echo "<div class=\"bericht\">Je avatar is succesvol verwijderd...</div>";
  57. }
  58. else
  59. {
  60. echo "<div class=\"titel\">Uploaden</div>";
  61. echo "<div class=\"bericht\">";
  62. echo "<form action=\"index.php?pagina=leden/avatar&actie=verzenden\" enctype=\"multipart/form-data\" method=\"post\" name=\"formulier\" onsubmit=\"wachten()\">";
  63. echo "<input name=\"bestand\" type=\"file\"> <input type=\"submit\" name=\"knop\" value=\"Verzenden\">";
  64. echo "</form>";
  65. echo "</div>";
  66.  
  67. if(file_exists("paginas/leden/avatar/".$_COOKIE['id'].".jpg"))
  68. {
  69. echo "<div class=\"titel\">Huidige avatar</div>";
  70. echo "<div class=\"bericht\"><img src=\"paginas/leden/avatar/".$_COOKIE['id'].".jpg\"><br><a href=\"javascript:beheer('Weet je zeker dat je deze avatar wilt verwijderen?','index.php?pagina=leden/avatar&actie=verwijderen')\">Verwijderen</a></div>";
  71. }
  72. }
  73. ?>

3 antwoorden

Gesponsorde links
Offline Jointjeff - 08/05/2016 10:45
Avatar van Jointjeff HTML interesse Hoi,

Wat is er op tegen dat de URL volledig zichtbaar is? Waarom wordt het dan onveilig?
Offline Topken - 08/05/2016 11:14 (laatste wijziging 08/05/2016 11:15)
Avatar van Topken Lid Zodat iemand mijn mapstructuur kent, denk aan bv hacken? Of is dat onzin?

Volgens mij is het veiliger:
domeinnaam/images/Hier profielfoto's uploaden

dan

domeinnaam/index.php?pagina=leden/avatar/Hier profielfoto's uploaden

Als je url adres bekijkt via afbeeldingsinfo zie je staan: domeinnaam/paginas/leden/avatar/2.jpg

Dan weet je mijn map structuur nu dankzij "paginas".

Of maakt het toch niks uit?
Offline Thomas - 08/05/2016 14:59 (laatste wijziging 08/05/2016 15:00)
Avatar van Thomas Moderator Waarom zou je in hemelsnaam een afbeelding willen serveren via een PHP script?

Een avatar lijkt mij niet super persoonlijk?
En anders moet je het wellicht niet behandelen als een avatar.

Dan nog een aantal opmerkingen over bovenstaande code:
* header('Location: ...'); transporteert je pas na afloop van het script naar de nieuwe locatie, tenzij je dit dus direct laat volgen door een exit wordt alle code die na het header() statement komt uitgevoerd. Afhankelijk van wat je "beveiliging" functie doet betekent het aan- of afwezig zijn van een exit-statement het verschil tussen een veilig of onveilig script.

* je bent daar bezig met de verwerking van een formulier, en het produceren van output? dit lijkt mij een nogal rare spagaat; ik zou je aanraden deze acties beter te scheiden.

* echo echo echo echo... Het is gewoon mogelijk om een PHP-blok te onderbreken door deze af te sluiten, en later weer voort te zetten met respectievelijk ?> en <?php hoor.

* cookies worden aan de client zijde beheerd, ik kan hiermee dus effectief iemand anders zijn avatar weggooien? Ik hoop ook van harte dat je $_COOKIE['id'] niet gebruikt om een ingelogde gebruikers te identificeren? Dat is helemaal onveilig...

Volgens mij rammelt het qua security aan alle kanten.
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.219s