Szia! Vegyük alapul a Steamet. Rengeteg funkció szolgál arra, miként teheted biztonságossá fiókodat.
A felhasználó, természetesen magának választhatja ki, milyen biztonsággal szeretné védeni fiókját, a Felhasználói Vezérlőpultban.
1, Minden egyes bejelentkezéskor, emailt küld a weboldal a regisztrált felhasználónévhez kötött email címre, egy generált kódot.
2, SMS -t küld egy megadott számra, de ez költséges lehet.
Egyenlőre ennyi jutott eszemben, a megvalósításban tudok segíteni, ha elakadnál.
Szép estét!
JohanCorn írta:
Üdv!
Nem tudok nyugodt lenni amiatt, hogy az adatokat bárki és bármikor megbuherálhatja. Javarészt php-t használva készítem oldalaimat, de rengeteg olyan posztot olvastam, hogy az adatok áramlását védeni kell. Gondolok itt most a kódolásokra. Anno már Silen-t segített ezzel kapcsolatban, de nem jöttem rá arra, hogy ez miben is segít nekem. Jelenleg a bejelentkezéshez a 1. oldalam input mezőből kiolvasva jquery-n keresztül post metódussal elküldi json kódolásban a felhasználónevet és jelszót a 2. oldalnak, ami aztán egy adatbázis egyeztetés után false, vagy true értéket ad vissza az 1. oldalnak és kiír valamit. True esetén felveszek egy SESSION-t, ami a fiók sorszámát tárolja a későbbi beazonosításhoz.
Kaptam már infót Silent-től a JWT-ről, azonban a használata teljesen értelmetlen volt számomra. Mivel kezdő vagyok, de dökéletesen szeretném csinálni még azt is, amit csinálok így ezt is használnám a biztonság érdekében. Az interneten kutatva találtam egy forráskódot ami elméletielg nagy segítség lenne.
<?php
// base64 encodes the header json
$encoded_header = base64_encode('{"alg": "HS256","typ": "JWT"}');
// base64 encodes the payload json
$encoded_payload = base64_encode('{"country": "Romania","name": "Octavia Anghel","email": "octaviaanghel@gmail.com"}');
// base64 strings are concatenated to one that looks like this
$header_payload = $encoded_header . '.' . $encoded_payload;
//Setting the secret key
$secret_key = 'Octaviasecretkey';
// Creating the signature, a hash with the s256 algorithm and the secret key. The signature is also base64 encoded.
$signature = base64_encode(hash_hmac('sha256', $header_payload, $secret_key, true));
// Creating the JWT token by concatenating the signature with the header and payload, that looks like this:
$jwt_token = $header_payload . '.' . $signature;
//listing the resulted JWT
echo $jwt_token;
$recievedJwt = 'eyJhbGciOiAiSFMyNTYiLCJ0eXAiOiAiSldUIn0=.eyJjb3VudHJ5IjogIlJvbWFuaWEiLCJuYW1lIjogIk9jdGF2aWEgQW5naGVsIiwiZW1haWwiOiAib2N0YXZpYWFuZ2hlbEBnbWFpbC5jb20ifQ==.gbB+B063g+kwsoc4L3B1Bu2wM+VEBElwPiLOb0fj2SE=';
$secret_key = 'Octaviasecretkey';
// Split a string by '.'
$jwt_values = explode('.', $recievedJwt);
// extracting the signature from the original JWT
$recieved_signature = $jwt_values[2];
// concatenating the first two arguments of the $jwt_values array, representing the header and the payload
$recievedHeaderAndPayload = $jwt_values[0] . '.' . $jwt_values[1];
// creating the Base 64 encoded new signature generated by applying the HMAC method to the concatenated header and payload values
$resultedsignature = base64_encode(hash_hmac('sha256', $recievedHeaderAndPayload, $secret_key, true));
// checking if the created signature is equal to the received signature
if($resultedsignature == $recieved_signature) {
// If everything worked fine, if the signature is ok and the payload was not modified you should get a success message
echo "Success";
}
?>
Biztonságos oldalt szeretnék létrehozni. Nem szeretnék SESSION lopást és hasonló csúnya adathalász dolgokat belekeverni így az a kérdésem, hogy hogyan tehetném oldalam minden tekintetben biztonságossá?