Melyik a legjobb megoldás egy jelszóval levédeni a weboldalt?
Szeretnék egy nagyon egyszerű weboldalt készíteni, ahol egy jelszó beírása utána érhető el egy felület.
Nem lenne más a weboldalon csak egy field ahová ha beírják hogy "JELSZÓ1234" és a gombra kattintanak akkor látják a rejtett tartalmat.
Milyen megoldást lenne a legjobb használni, ami a megfelelő hosszúságú jelszó esetén nem lehetséges feltörni? Vagy csak nagyon nehezen.
így tudod a jelszót betáplálni: oldalad.hu/oldalad.php?pw=akarmi
<?php
if(isset($_GET['pw']) && $_GET['pw'] === "akarmi"){
setcookie("pw", "akarmi", time()+3600*24);
require 'rejtett-tartalom.php';
} else if(isset($_COOKIE['pw'] && $_COOKIE['pw'] === "akarmi"){
require 'rejtett-tartalom.php';
} else {
http_response_code(404);
}
#1: Oké, kezdetnek jó elképzelés, de
1. Jelszót SOSEM(!!!!) tárolunk önmagában.
Képezzük az ellenőrzőösszegét password_hash() függvénnyel:
majd a képzett ellenőrzőösszeget vetjük össze a felhasználótól kapott jelszóval - erre ott a password_verify() függvény:
2. A helyett, hogy a jelszót önmagában sütiben tárolod, használj munkamenetet (amiben nem a jelszót tárolod) - lásd $_SESSION:
illetve session_start() függvény:
3. A nem megfelelő autentikáció HTTP-hibakódja a 401:
vagy esetleg a 403:
4. A rejtett-tartalom.php jelen helyzetében védtelen.
Vagy a webszerver beállításával:
vagy az esetedben a süti, de inkább a 2. pontban említett munkamenet meglétének az ellenőrizésével kell korlátozni az elérést.
#2: Bár egy potenciális megoldásnak tűnik a HTTP Basic Authentication, de ajánlatos észben tartani, hogy szimpla Base64-es kódolással történik a felhasználónév és jelszó elküldése (Authorization fejléc, Basic <felhasználónév:jelszó Base64 kódolva>). Mindenképpen titkosított HTTPS protokoll használata kifejezetten javasolt!
Bár a HTTP Digest Authentication már ellenőrzőösszeget képez, de bár az MD5 sok böngészőben elérhető:
de nem kellően biztonságos; az SHA-512-t nem támogatja egyik böngésző sem:
így marad az SHA-256:
azt meg csak a Firefox 93 vagy újabb verziója támogatja.
#3: Jókat írsz, de jelen esetben fölösleges, mert
1. A kérdező úgysem tudja megvalósítani
2. Úgyis olyan tartalmat akarna védeni, amire senki sem kíváncsi
Nem, egyáltalán nem fölöslegesek. Alapvető biztonsági mechanizmusok, a PHP-ban alapból benne vannak ("There is no installation needed to use these functions; they are part of the PHP core." [link] ), könnyen alkalmazhatóak.
A kérdezőt dehonesztáló, és a tartalom fontosságát megkérdőjelező ex katedra kijelentéseid pedig nincsenek bizonyítva, légből kapottak.
Érdekes válaszok születtek.
Arra valamiért senki nem gondolt, hogy ezt könnyen meg lehet oldalni a webszerver beállításával. Nincs itt szükség semmiféle PHP kódolásra (vagy inkább gányolásra).
De igen egyébként, nem világos a kérdező mit is szeretne elérni.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!