webForumDet fria alternativet

Förhindra sidor att öppnas i browsern

HTML & CSS

6 svar · 645 visningar · startad av md7dani

Medlem sedan okt. 201012 inlägg
Frågan#1

Testade vår sida genom att logga in med en användare, sen stänga ner fönstret och öppna en sida genom att skriva i url:en själv. Då öppnar den sidan utan att sessionen är igång, vilket är fel. Hur gör man så att de alltid hamnar på login när de skriver i url:en manuellt?

Medlem sedan juni 200032 967 inlägg
#2

Du får kontrollera på serversidan att det finns en session - gör det inte det får du redirecta till inloggningssidan. Du kan inte veta om någon har skrivit in en URL manuellt eller följt en länk.

Medlem sedan okt. 201012 inlägg
#3

@nders skrev:

Du får kontrollera på serversidan att det finns en session - gör det inte det får du redirecta till inloggningssidan. Du kan inte veta om någon har skrivit in en URL manuellt eller följt en länk.

aha tackar, sant ju :)

Blir nåt sånt här i början på varje sida:

<?php
//om inte sessionen lever, skicka till inloggningen
if (!isset($_SESSION['sess_inloggad']))
{
    header("Location: inlogg.php");
    exit;
}
Medlem sedan juni 200032 967 inlägg
#4

Det var någonting sånt jag tänkte mig ja - men eftersom jag inte kan php så kan jag bara säga att det "ser" bra ut. :)

mvh

Medlem sedan juni 20014 290 inlägg
#5

Det stämmer men glöm inte att köra session_start() innan, annars kommer det aldrig finnas en session och man blir alltid skickad till login sidan.

Jag brukar inkludera följande kod högst upp i alla filer som skall vara skyddade:

<?php
session_start();
if(!isset($_SESSION['username'])) {
        header("location:/login.phtml");
}
?>
Medlem sedan okt. 201012 inlägg
#6

Funderar på hur jag gör med sidor som inte använder en session, som tex databas connection fil som inkluderas på sidor som använder Mysql. När den skrivs in i URL:en öppnas en blank sida, vilket är fel. Den ska alltid skickas till login när den öppnas manuellt i browsern.

Medlem sedan juni 20014 290 inlägg
#7

Besökare vet normalt inte om att du har en connection.php (eller vad den nu heter) och dom kan inte se att du länkar in den i dina sidor.

Om dom manuellt skriver in URL'en till den så får dom bara en tom sida.

Är svårt att skydda sig mot detta m.h.a php eftersom du måste inkludera och köra koden på dina sidor och då vill du inte skickas till login sidan.

Ett alternativ är att lägga denna typen av filer i en egen katalog och katalogen lägger du in en .htaccess fil som nekar all åtkomst, då vår eventuella besökare som knappar in adressen manuellt en felsida tillbaka den sidan kan seda skicka besökaren till login sidan.

256 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)
117 ms — ändringar (db)