Junior — Middle
Ինչպե՞ս է պահվում և պաշտպանվում օգտվողների գաղտնաբառերը PostgreSQL տվյալների բազայում։
sobes.tech AI
Պատասխան AI-ից
PostgreSQL-ում օգտվողների գաղտնաբառերը սովորաբար չեն պահվում բացատ տեքստով տվյալների բազայում: Փոխարենը, օգտագործվում են հեշավորում և աղիք՝ գաղտնաբառերը պաշտպանելու համար:
Հիմնական մոտեցումները:
- Ապլիկացիայի մակարդակում՝ օգտվողի գաղտնաբառը հեշավորվում է (օրինակ՝ bcrypt, Argon2 կամ PBKDF2)՝ ավելացնելով յուրահատուկ աղիք, և միայն հեշը պահվում է տվյալների բազայում:
- PostgreSQL մակարդակում՝ հաստատման համար, տվյալների բազան օգտագործում է իր սեփական մեխանիզմը, որտեղ գաղտնաբառերը պահվում են հեշերի տեսքով (MD5 կամ SCRAM-SHA-256):
Օրինակ՝ գաղտնաբառի պահպանում օգտվողների աղյուսակում:
CREATE TABLE users (
id SERIAL PRIMARY KEY,
username TEXT UNIQUE NOT NULL,
password_hash TEXT NOT NULL
);
Գրանցման ժամանակ՝ հավելվածում:
const bcrypt = require('bcrypt');
const password = 'user_password';
const saltRounds = 10;
const hash = await bcrypt.hash(password, saltRounds);
// պահել hash-ը password_hash դաշտում
Այսպիսով, նույնիսկ տվյալների բազայի խախտումից հետո, օգտվողների իրական գաղտնաբառերը մնում են պաշտպանված։