Just nu i M3-nätverket
Jump to content

Lösen...


GronK

Recommended Posts

Jag håller på med lösen skydd till min sida. jag har lite behörighet och sånt blaj..

 

detta fungerar super... men jag har 2 konton som sitter på samma lina. dom har altså samma ip. och får samma sessions variabler.. och detta är ju inte så bra för säkerheten. men tråkigare är att dom inte kan sitta på min sida samtidigt.

 

Om ni inte förstår kan jag förklara en gång till hur jag skapar buggen: Jag öppnae ett explorer fönster och loggar in på min sida. sedan öppnar jag ett nytt fönster och loggar in med ett nytt konto på min sida. då förstörs dom sessions variablerna som jag gjorde när jag loggade in på första kontot.

 

Jag vill att 5 personer om så vara skall kunna logga in från samma ip (dator)

Link to comment
Share on other sites

Då får du kanske skapa unika sessioner också? Dvs. du får kalla dem för olika saker? typ Session("1") = "User 1" session("2") = "User 2". Osv...

 

/JANspeed

 

Link to comment
Share on other sites

Hmmm bara så jag förstår.

 

fråga 1.

Så vid inloggningen så kollar jag om ex.

if session("user_id_1")<>""

 

så gör jag en ny

 

så det blir liksom.

session("user_id_" & antal_inloggade + 1) = db_User_id

 

Fråga 2.

Om någon glömmer och logga ut så kan jag ju inte tömma den aktuella sessionen. Det kommer ju att resultera i om x antal månader så är vi ju uppe i 100.000 tals gamla sessions variabler med gammal data :\ eller har jag fel.

 

Link to comment
Share on other sites

Så fort en person har varit inaktiv en viss tid (som standard är det 20 minuter eller något) så tas dennes sessions-variabler bort. Dessutom, även om han är aktiv så är ju sessions-variablerna "unika". Loggar någon annan in från en annan dator (webbläsare) så kommer den personen att ha egna sessions-variabler, och kommer också att använda "session("user_id_1"))".

 

Jag förstår dock inte...

Varför ska du bry dig om detta? Problemet uppstår ju (väl?) bara om någon sitter vid en dator, och med flera fönster loggar in på servern?

 

Ciao,

Anders

 

Link to comment
Share on other sites

Christopher Bergren

En session gör time-out efter att användaren varit inaktiv ett visst tag (default är 20 minuter), och då rensas även sessionsvariablerna kopplade till den.

/Chris

 

 

Link to comment
Share on other sites

jo jag har inte gjort min login med session förut. utan den tittade up ip numret och med andra ord så fick jag problem..

 

Jag viste inte riktigt hur session fungerade. jag antog att som namnet antyde att varje variabel oavset namn kan vara anorlunda vid varje session.

 

men men tack för hjälpen och att du klarat upp allt...

 

Link to comment
Share on other sites

Nytt problem :

jag gjorde en

session("user_id") = rs("user_id")

 

på nästa sida vill jag åter öppna databasen för att hämta lite data.

det jag gör då är

"SELECT * FROM login WHERE ID = " & session("user_id")

 

när jag loggar in från min dator så funkar alla konton...

 

Men en kompis funkar det inte för han får felet

 

Feltyp:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)

[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel (operator saknas) i frågeuttrycket 'id ='.

/home/bawet/loade_globale.asp, line 4

 

Link to comment
Share on other sites

Det betyder förmodligen att av någon anledning så har session("user_id") inget värde.

 

Om hans dator är inställd på att blockera alla cookies (inklusive så kallade sessioncookies) så kommer den inte skicka vidare session-information till dina övriga sidor, och då kommer den alltså inte åt session-variablerna.

 

Isåfall så borde han ha problem med fler hemsidor där han ska logga in.

 

Ciao,

Anders

 

Link to comment
Share on other sites

Mycket riktigt. testade sänka sin behörighet... Men det låter ju konstigt att man måste sänka behörigheten. Fins det något sätt så jag får det att funka utan att alla måste sänka sin behörighet till låg...???

 

alla jag har provat för kör w2k

 

jag skulle altså vilja ha svaret till det sista inlägget i denna tråd

//eforum.idg.se/viewmsg.asp?EntriesId=346800#348158

 

[inlägget ändrat 2002-11-11 14:02:52 av GronK]

Link to comment
Share on other sites

Om du med "behörighet" menar inställningar för sekretess i IE6, så borde det fungera på "mellanhög" och allting under. Om du sedan lyckas fixa en "kompakt sekretesspolicy" så borde det fungera på hög också. Har inte så stor koll på hur du fixar det, men det finns mer information här: http://www.w3.org/P3P/

 

Ciao,

Anders

 

Link to comment
Share on other sites

Detta funkar inte :)

 

Jag måste ha förstått principen rätt, vi har en inloggnings sida. Där namn och lösen kontrolleras mot en databas. Klienten skickas sedan till de låsta sidorna. De låsta sidorna måste varje gång kontrollera så klienten har behörighet att vara där. så för att servern skall hitta personen så behövs ett Unikt nummer för den personen (ett user_id).

 

På min första login sida så använde jag IP numret från klienten för att hitta honom i databasen. Funkade bra tills jag fick två användare på min sida delade IP nummer :/

 

Mitt andra försök va att använda mig av session(”user_id”). Men det vill inte alls funka. Jo om man ändrar säkerhets inställningarna i IE så funkar det. Men det är ju inte så farligt det gäller ju bara Windows ME, 2K, XP home och XP pro majoriteten av dagens surfare använde ju IE 1.0 och win95 eller? :P

 

Jag ser ingen jävla säkerhets risk i detta :

-login.asp-
session("user_id") = RecSet("id")
Response.Redirect "start.asp"

-start.asp-
"SELECT * FROM login WHERE id = " & session("user_id")
och sedan sidan

 

Nå ja jag ska inte vara bitter. Kan det vara så att min server enligt IE inte är riktigt pålitlig? Jag provade med Anders förslag att försöka göra en P3P på min sida. Men det var långt över min förmåga.

 

Finns det något annat sätt som jag inte har provat? Allt jag behöver är ju ett unikt nummer för varje klient som loggar på min server. Finns det något annat eller mer än IP jag kan använda. Så jag slipper alla cookies problem.

 

Det kanske till och med är så att jag fattat allt fel och helt är ute och cyklar =)

Sätt mig då på rätt väg snälla

 

/HJÄLP

 

 

[inlägget ändrat 2002-11-12 12:09:36 av GronK]

Link to comment
Share on other sites

Hmm.. det enda jag kommer på nu som klarar jätte-jätte-hög säkerhet är att du som tidigare har ett unikt ID (fast du slumpar fram ett långt tal eller något), och skickar med det i alla dina länkar.

 

Exempel:

login.asp genererar det unika ID:t "12345", och skickar sedan vidare till

medlem.asp?sessionid=12345. Vill man läsa nyheter så länkar den vidare till news.asp?sessionid=12345.

 

Alla sidor får läsa request.querystring("sessionid"), och lägga till den som querystring till alla länkar.

 

Sedan kan du lagra sessionid och annat du kan behöva i databasen eller något.

 

Sedan kan du ju i första hand försöka spara det som en session, och sedan ta från querystring.

 

medlem.asp

dim sessionid

sessionid=session("id")

if (sessionid="") then

sessionid=replace(request.querystring("sessionid"),"'","")

' kolla upp info i databasen, kolla att det är ett giltigt id, etc, etc.

end if

 

Tänk på att du måste ha ett ordentligt "unikt" id, och gärna matcha t.ex. IP-adress och browser om du måste lita på querystring och kolla upp i databasen.

 

Ciao,

Anders

 

Link to comment
Share on other sites

Jo om man ändrar säkerhets inställningarna i IE så funkar det

 

Som default så behöver du inte ändra några säkerhetsinställningar för att session skall fungera på en sida.

 

- Magnus

-----------------------------------------------------

ju mer jag lär mig ju mer inser jag så lite jag kan

 

Link to comment
Share on other sites

Det kan inte vara så... Alla mina kompisar har provat och dom har alla olika op:s och IE versioner...

 

och det är ju mina vänner som jag vill ska kunna komma in så :/

 

till Anders.

Åter tusen tack för att du tar dig tid med mig och mina konstiga frågor =)

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...