Hoppa till innehåll

Hjälp Med Php/html


Intense

Rekommendera inlägg

Jag hittade ett php login script till min sida. Allt funkar bra, SQL databasen och allt. Men, man kan bypassa login screenen, och jag vet inte hur man täpper igen det säkerhetshålet. Det är förmodligen rätt enkelt, men jag är nybörjare. Kan ta ett exempel:

 

När man går in på sidan så kommer man till http://minsida.se/login.php.

Om man loggar in så kommer man till http://minsida.se/home.html.

Men, när man är vid login skärmen så kan man helt enkelt byta ut login.php mot home.html och så kommer man in på sidan direkt. Och jag undrar hur man gör så det inte går.

 

Tack på förhand.

Redigerat av Intense
Länk till kommentar
Dela på andra sajter

  • 1 månad senare...
Gäst pong218

Ett möjligt angripande för att lösa problemet är att du i login.php skapar en php session med "username" samt "password" när inloggningsuppgifterna har verifierats. Sedan i alla andra dina filer kollar du om användaren INTE har en aktiv session igång och därefter så sparkar du användaren till en lämplig plats som då bör vara login-sidan.

 

ex.

 

<?php

session_start();

//Om antingen username eller password är tom så skickas användaren tillbaka till login.php

if(empty($_SESSION['Username']) || empty($_SESSION['Password']))

{

header('Location: login.php');

}

?>

 

obs. att empty returnerar true även om SESSION['username'] aldrig definierats

Redigerat av pong218
Länk till kommentar
Dela på andra sajter

  • 1 år senare...

Ett möjligt angripande för att lösa problemet är att du i login.php skapar en php session med "username" samt "password" när inloggningsuppgifterna har verifierats. Sedan i alla andra dina filer kollar du om användaren INTE har en aktiv session igång och därefter så sparkar du användaren till en lämplig plats som då bör vara login-sidan.

 

ex.

 

<?php

session_start();

//Om antingen username eller password är tom så skickas användaren tillbaka till login.php

if(empty($_SESSION['Username']) || empty($_SESSION['Password']))

{

header('Location: login.php');

}

?>

 

obs. att empty returnerar true även om SESSION['username'] aldrig definierats

This is the way to go, men jag rekommenderar att använda !empty och sedan använda else, eller att placera die(); innanför if'en, för annars så kommer man kunna se sidan som endast ska vara för inloggade iaf.

 

Sorry för gravedigs, såg precis datumet på trådarna jag postat på.

Redigerat av Killingspree
Länk till kommentar
Dela på andra sajter

Gå med i konversationen

Du kan skriva nu och registrera dig senare. Om du har ett konto, logga in nu för att posta med ditt konto.

Gäst
Svara på det här ämnet...

×   Klistrade in som rich text.   Klistra in som vanlig text istället

  Endast 75 emojis är tillåtet.

×   Din länk har automatiskt inbäddats.   Visa som en länk istället

×   Ditt tidigare innehåll har återställts.   Rensa redigeraren

×   Du kan inte klistra in bilder direkt. Ladda upp eller infoga bilder från URL.

×
  • Skapa ny...