Avatar billede compac Seniormester
07. marts 2021 - 17:16 Der er 2 kommentarer og
1 løsning

Sikring af database-program

Jeg har en et database-system med new-edit-delete osv.
Jeg vil nu gøre det sikkert så man ikke blot kan skrive i menulinien og få adgang til det.
I princippet er det bygget op sådan at edit or new ligger i samme fil:

if (isset($_GET['id'])) {
//...edit record
}
else
{
//opret ny record
-med denne metode kan man  oprette en ny record, selvom der ikke er logget ind . Jeg har brugt dette som baggrund:
https://www.killersites.com/community/index.php?/topic/3064-basic-php-system-view-edit-add-delete-records-with-mysqli/

I begyndelsen af filen har jeg brugt dette der kommer fra et loginscript:
<?php
// Initialize the session
session_start();
// Check if the user is logged in, if no redirect him to login page
if(!isset($_SESSION["loggedin"]) && $_SESSION["loggedin"] === true){
    header("location:login.php");
  exit;
}
Avatar billede arne_v Ekspert
08. marts 2021 - 01:09 #1
Den if ser meget funky ud.

hvis ikke session har loggedin og session loggedin er sand
Avatar billede arne_v Ekspert
08. marts 2021 - 01:10 #2
Hvis du skal fremtidsskire lidt burde du maaske have roller - brugere med edit adgang og brugere kun med læse adgang.
Avatar billede compac Seniormester
08. marts 2021 - 12:56 #3
De var netop den sætning der var skyld i det: Den skulle være:

if(!isset($_SESSION["loggedin"]) || $_SESSION["loggedin"] !== true){

-bortset fra det føler jeg ikke at der er særlig sikkert at ny record kan oprettes hvis "id" ikke er der - altså uden betingelse. Det kunne jeg nok få ved en omskrivning.
NB! script med læseadgang har jeg for sig selv.
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

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