Avatar billede solari Nybegynder
18. februar 2005 - 12:00 Der er 10 kommentarer

back / tilbage knappen Sikkerhedshul kan det løses

Hej Eksperter

Har et websystem hvor man logger ind til personlige oplysninger.

Jeg har et hul som jeg ikke ved hvordan jeg skal lukke.

Hvis en bruger logger ind. Finder hans/hendes oplysninger og ikke logger ud men skriver en ny URL addresse og surfer videre for tilsidste at forlader computer uden at have lukket browseren.

Det er ikke særlig usansyndlig det sker. Så kan en ondsindet person bruge tilbage knappen og vil kunne komme ind på de fortrolig sider.

Det eneste modangrab jeg har nu er at seesion virker ikke efter 10 min som starter når personen logger ind(synes ikke jeg kan sætte tiden kortere).

Havde håbet på at løse det med HTTP_REFERER (ved at tjecke host mod host) men den virker ikke når man bruger tilbage knappen.

Havde så overvejde Javascript og bruge af den's history men der kan man ikke indlæse selve URL.

Håber der er en rigtig ekspert der kan hjælpe mig
Avatar billede articfruit Nybegynder
18. februar 2005 - 12:15 #1
lytter lige med... :o)
Avatar billede moocher Nybegynder
18. februar 2005 - 12:54 #2
Jeg lavede noget engang af samme hensyn.

JEg lavede en todelt frame side, den øverste indeholder den normale side den nederste som kan sættes til at fylde ingenting, havde jeg en side uden grafik eller noget, så satte jeg session timeout til 1:30, men den lille side, havde et script det reloaded siden selv, og hver gang siden reloadede opdaterede den så sessionen og derved også timeren, dvs at de kunne være på siden så længe de gad og hvis de gik væk, gik der ikke mere end 1:30 så var de logget af
Avatar billede sjh Nybegynder
18. februar 2005 - 13:06 #3
hvis du setter seesion til 10 min, så kan du vel holde den igang med en <iframe.. som loader efter 8 min.. ved ikke om det virker men måske en løsning..
Avatar billede solari Nybegynder
18. februar 2005 - 13:45 #4
--> Moocher løsning
Det er en løsning der virker. havde ikke tænkt på den.
Må dog indrømme at jeg helst vil undgå frames.
P.S. hvis der ikke kommer andre løsninger så for du pointne

--> sjh
Det med vilje at session stopper efter 10 minutter. Vil gerne have at folk lige logger på en gang til efter 10 minutter.


udvidet svaret:
løsningen skal være uden frames.
Avatar billede moocher Nybegynder
18. februar 2005 - 18:04 #5
Jeg vil tro at du kan smide en iframe ind på alle dine sider. (Lidt besværligt men kan klares med include) Hvis du så bruger en iframe der reloader, burde det ikke invirke på noget andet
Avatar billede sukos Juniormester
18. februar 2005 - 21:49 #6
Du kan også sætte en session ved login,

$aktiv_tid = 600; // 10 minutter

$_SESSION["log_ind_tid"] = (time()+$aktiv_tid);

Hver gang en "sikret" fil requestes, starter du med at tjekke hvornår log_ind_tid sidst er sat, og er det mere end ti min. siden, echo'er du en ny login, evt. sletter alle sessions, men er den under, så opdaterer du session'en til time()+$aktiv_tid
Avatar billede sukos Juniormester
18. februar 2005 - 21:54 #7
Ved login:

$_SESSION["log_ind_tid"] = (time()+600);



På undersider:

if($_SESSION["log_ind_tid"] < (time()+600)) {
$_SESSION["log_ind_tid"] = (time()+600);
}else{
$_SESSION = array();
session_destroy();
echo"Din session er udløbet!;
}
Avatar billede solari Nybegynder
18. februar 2005 - 23:45 #8
--> sukos
tror du har misforstået spørgsmålet. Din idee har jeg insat i midt system. det jeg ledte efter var mere en metode hvor på man kunne tjecke URL browseren lige kom fra. På den måde kan man kunne man:

$Min_URL = "www.mitdomain.dk";
$Sidste_URL = $_SERVER['HTTP_REFERER'];

if(!$Min_URL == $Sidste_URL)
{
  session_destroy();
  // ny logion
}

men problemet er at når man bruger tilbage knappen bliver siden ikke loadet og man kan ikke bruger HTTP_REFERER.
Problem med din løsning er at der stadig er mulighed (ikke så stor men) for at tiden ikke er sluppet op før en ond person bruger tilbage knappen. og hvis man sætter tiden forkort så vil det være en irrettersion for brugerne (de venlige).

--> moocher
IFRAME gør det faktisk ret simpel har allerede standarde includes på alle sider så det er lige til at sætte ind.
P.S krydser stadig lige finger for at der en der har et andet forslag der ligger lidt tætter på min ide men lig et svar så giver jeg dig point hvis der ikke er en anden løsning.
Avatar billede solari Nybegynder
21. februar 2005 - 11:12 #9
Moocher hvis du ligger et svar så for du pointne din løsning er ret god.

Der dog et minus Med en sikkerside er det en god ide at registere brugeren hver gang det vil sige tjeckke session, URL lås, brugernavn og brugerkode i databasen, og hvis du har en 100 bruger inde der skal tjeckkes hvert 30 sekund kunne jeg forstille mig det bliver lidt tungt (har ikke testet det).
Der er også det lille uheld der kan ske når man trukker videre ligge efter et tjeck så kan da opstå en fejl når man session_regenerate_id(). det betyder jo bare at brugeren lige skal logge på igen.

Men hvis man vil være meget sikker så er Moocher løsning en god ide.

hvis man ikke er så sart så er sukos og sjh udmærket alternativ.(det er kun minutter vi snakker om :-)
Avatar billede moocher Nybegynder
21. februar 2005 - 15:20 #10
Tror bare at du kan nøjes med $_SESSION[id] = $_SESSION[id]

Da den derved bliver opdateret, den skal ikke foretage noget tjek bare opdatere værdien og derved genstarte tælleren
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