Avatar billede steenolsen1 Nybegynder
14. marts 2005 - 09:36 Der er 13 kommentarer

Kryptering af sti

Hej,

jeg er ved at lave en downloadsektion for en kunde, og skal i den forbindelse kryptere stien til den fil der downloades, så man ikke blot kan videresende stien til filen til alle mulige andre.

stien er eks. mappe1/undermappe/filnavn
Stien er ALTID den samme, og filnavnet er naturligvis forskellig på de forskellige filer. Alle filnavne er registreret i en db.

Jeg har været inde og kigge på MD5, men som jeg har forstået det, så beregnes der her en værdi, som altid vil være den samme, og dermed er sti blot ulæselig, og ikke "krypteret". Har også været inde og kigge på crypt, men det spiller ikke helt.

Any good suggestions til hvordan man gør det her bedst?
Avatar billede Daniel.E Praktikant
14. marts 2005 - 10:24 #1
Hvis du godt vil sende en sti til en anden bruger over nettet, og den sti skal være krypteret er det kun 1 måde at gøre dette på, medmindre at alle brugerere kender til alle stiger HELE TIDEN !!

Og det er sansynligt ikke praktisk en god ide.

MD5 er en hash algoritme og kan ikke decrypteres.  Jo, det kan den faktisk godt, men på den måde hvor man kan få flere forskellige resultater ud af den.  Så man ved faktisk ikke om man har fået det rigtige.  Men man snakker om MD5 som at den ikke kan brydes.  Men alt kan brydes med det rette kode.

Jeg synes at du enten selv skal opfinde din egen kryptering, og inplamentere den server/cliet side.
Avatar billede steenolsen1 Nybegynder
14. marts 2005 - 11:22 #2
Okay.... Det tror jeg ikke lige jeg er med på. Mener du noget med at gange og plusse og dividere en masse gange eller hvad?

Kan man bruge MD5 - er den rimelig sikker eller hvad?
Avatar billede sukos Juniormester
14. marts 2005 - 11:32 #3
Du kan ved hver request, lave et "random" ting, som du registrerer med sessions.
I download.php tjekker du om den session er sat, og er den det, så "download" filen, og ellers sende til forsiden.
Avatar billede steenolsen1 Nybegynder
14. marts 2005 - 11:59 #4
Vil det sige at hvis man skal have logget sig ind for at komme til shop/ så vil et link, med direkte sti til filen, sendt via email til en eller anden, der ikke skulle have set ,linket ikke kunne downloade uden at han logger ind først?
Avatar billede Jonas Nybegynder
14. marts 2005 - 12:08 #5
En evt anden løsning jeg selv bruger kunne være at låse din downloadsektion til en bestemt ip adresse.
Avatar billede sukos Juniormester
14. marts 2005 - 12:15 #6
Du behøver jo ikke at logge ind.
Ved hver request kan du bruge (IKKE på download.php)


<?php
session_start();

// Funktion til at lave et pasword, hentet på http://www.php.net/manual/da/function.rand.php

function randomPassword($len = 4)
{
$pass = '';
$lchar = 0;
$char = 0;
for($i = 0; $i < $len; $i++)
{
while($char == $lchar)
{
$char = rand(48, 109);
if($char > 57) $char += 7;
if($char > 90) $char += 6;
}
$pass .= chr($char);
$lchar = $char;
}
return $pass;
}

unset($_SESSION["ref"];

$_SESSION["ref"] = randomPassword();

?>
<a href="download.php?download_ref=<?php echo $_SESSION["ref"]; ?>&file=filnavn">download fil</a>


I download.php
<?php
session_start();

if($_GET["download_ref"] == $_SESSION["ref"]) {

/*
ok...............
download...................
*/

}

?>
Avatar billede sukos Juniormester
14. marts 2005 - 12:16 #7
Hmm, dog skal der jo lige tjekkes på en anden måde.
Men et eksempel, som du ka nikke kan hente, men jeg kan, fordi jeg er på siden:

http://users.showsource.dk/download.php?ref=5f1a7e9be60932d772995db8353463f5&file=user_system
Avatar billede steenolsen1 Nybegynder
14. marts 2005 - 13:20 #8
Hmmm. Tak for inputtet, men jeg tror desværre ikke at det kommer til at du. Alle brugere oprettes af kunden, og de handlende SKAL logge sig ind, før de kan købe noget som helst. De kan vælge at downloade i forbindelse med et køb eller efterfølgende.

Det jeg i bund og grund vil, det er at man ikke kan linke eksternt fra direkte til filen og på den måde få fat i den - UDEN at man er logget ind.
Avatar billede Daniel.E Praktikant
14. marts 2005 - 14:57 #9
steenolsen1 >>  Har desværre ikke tid til at sætte mig mere ind i dit problem.  Hvis mit svar var for meget, så spørg en af de andre.. de har nok mere tid til live eks..

god fornøgelse.. :)
Avatar billede steenolsen1 Nybegynder
14. marts 2005 - 15:46 #10
Det er helt i orden - tak for hjælpen/dit input :-)
Avatar billede olebole Juniormester
14. marts 2005 - 17:27 #11
<ole>

Det var ærgeligt ... jeg ville ellers gerne have spugt vb2 om, hvordan han vil afgøre, om det er mig eller en ven - som jeg har sendt det krypterede link til - der henter filen  ;o)

steenolsen1 >> Når en bruger logger ind, opretter du jo en session og lægger sikkert også info om brugerens session i DB. Når brugeren vil downloade filen, kan du jo bare kontrollere, at brugeren er logget ind. I princippet det samme, som sukos er inde på.
Så kan brugeren sende linket til, hvem somhelst - uden vedkommende kan downe filen.

/mvh
</bole>
Avatar billede steenolsen1 Nybegynder
14. marts 2005 - 17:50 #12
Ja, men sessionid'et er jo noget nyt næste gang han logger sig på systemet. Dermed vil han ikke kunne downloade sine egne filer næste gang, eller snakker vi forbi hinanden?
Avatar billede olebole Juniormester
14. marts 2005 - 19:41 #13
Sjovt, som vb2 altid skal lægge sure, anonyme Karma'er, når man påpeger, han vrøvler. Spøjs, lille, selvhøjtidelig fætter, vi har kørende der ... men man må jo være stolt over, han nedværdiger sig til at tage sig tid til én  :D

steenolsen1 >> Det er svært at sige nøjagtigt, hvad du skal gøre, når man ikke kender din data-/kodestruktur. Du bliver dog nødt til på en eller anden måde at gemme nogle info om filen i forhold til brugeren, så du kan genkende vedkommende - og vide, om han har rettigheder til at downe filen. At kryptere eller hashe URL'en løser ikke i sig selv noget
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester