webForumDet fria alternativet

lyckades hacka min egna sida...

6 svar · 616 visningar · startad av Tulork

TulorkMedlem sedan aug. 2004903 inlägg
#1

Måste fixa en lösning till ett ganska dumt och klantigt hål...

Så här va, man loggar in på sidan, en session sätts, jag kan gå in på mina inställningar och titta på vilka filer jag laddat upp... jag har två alternativ där.. ta bort eller redigera. När jag trycker redigera så skickas filnamnet och filid't med till edit.php där jag får fylla i nya uppgifter i fälten.. länken ser ut så här

http://blabla/edit.php?filnamn=hej.zip&filid=20

Om man sen, genom vilket konto som helst, kollar på andra filer som finns att ladda ner kan man se filid där också, filnamnet står utskrivet....

så för vem som helst som är inloggad så kan man bara skriva
http://blabla/edit.php?filnamn=ugg.zip&filid=21 så kan jag ändra informationen om den filen (n)

Hur löser jag detta otroligt dåliga fel?

colioneMedlem sedan juni 20014 421 inlägg
#2

Knyter filerna till ett användar-id i en databas?

TulorkMedlem sedan aug. 2004903 inlägg
#3

kanske jag som är trött och seg. men hur menar du?

så som det ser ut nu så när jag går in i min "redigera filer" så hämtar den filerna baserat på mitt session id. Jag skickar med 2 variabler till edit.php som innehåller filnamn och filid. Baserat på dessa två hämtar jag informationen relaterad till dessa filerna och skriver ut dem i ett formulär. Ändrar jag informationen och trycker spara så uppdateras databasen med de nya värdena.

Förstår inte riktigt hur du menar med att knyta filerna till ett användar id, men det låter bra ;)

hmm kanske kan skicka med ett värde som skapats när man registrerade sig i ett hidden field, och hämta och gämföra det i edit.php..?

TulorkMedlem sedan aug. 2004903 inlägg
#4

Löste det på följande sätt

När man laddar upp en fil händer följande

efter att all den vanliga kontrollen är klar och det är dags för att skicka in allting i databasen gör jag följande

$qq = rand(100,9999999);
$filsec = md5($qq);

Sen skickar jag in detta värdet tillsammans med falla dem andra värdena.

När jag sen listar filerna och jag lista länkarna för att editera det man skrivit in när man laddade upp filen, så skickar jag med i länkarna $filsec till edit.php där den checkas mot den som finns i databasen.. säkert nog?

emissionMedlem sedan dec. 19996 721 inlägg
#5

Det blir säkert säkert nog, men det som colione menade (tror jag), och som är den mer naturliga lösningen är att kolla i databasen.

Eftersom du redan har information där om vem som "äger" vilken fil (du använder väl den informationen för att filtrera filerna som visas i listan?) så kan du ju också fråga databasen på "edit.php" om det är den inloggade användaren som äger den efterfrågade filen.

TulorkMedlem sedan aug. 2004903 inlägg
#6

aha...så kan man också göra ;) men min lösning är flashigare tycker jag.. kan göra bådeoch kanske

emissionMedlem sedan dec. 19996 721 inlägg
#7

Möjligen flashigare, men mindre säker, eftersom en URL på vift gör att man går runt säkerheten.

135 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)