Проблем с логин форма

Ако си спомняш преди няколко дена като те питах за какво, му е на някой да се занимава с глупости при положение че вече ми е ударил базата, ти ми отговори "пълна липса на въображение" :D . Някой който ми е ударил базата дори да разбере как хеширам няма да може да познае нито една парола на потребител защото на всеки потребител солта му е рандом, демек дори да има двама или повече потребители с една и съща парола то хешовете пак ще им бъдат различни. А самата функция openssl_random_pseudo_bytes() генерира някакви рандом битове които аз после завъртам с bin2hex в нещо четимо. С други думи някой ако ми удари базата може да ме прецака мене но няма да може да разбере паролите на потребителите и да тръгне по една много плодородна верига както, ти сам се изрази преди :) .
 
Това ти обеснявах, че ти този ключ генериран с (openssl_random_pseudo_bytes() генерира някакви рандом битове които аз после завъртам с bin2hex в нещо четимо. ) трябва да го пазиш отново в базата за да можеш при извеждането да сравниш паролата фактически това ти е рандом да но пак пазиш ключа за да можеш да сравниш после паролата въведена от потребителя. Тоест реално той има ключа за паролата просто ще разпише подобни на теб заявки и идва същото ми по-горно обяснение че не е наложащо. Ако паролата на самият потребител е слаба акощеш и 100 пъти да я хешираш ти отново трябва да хешираш въведената по същият начин за да са еднакви хешовете. Тоест криптирането е въпрос на декриптиране което само с две бързи md5 и hash става изключително невъзможно. За Бруте форс атака може да го направи по много начини. Просто е нужно да караш потребителя да използва по-сложни пароли при регистрация. :)
 
Това е така но пак му е много по трудно защото трябва за всяка парола да действа по отделно, докато ако солта е една и съща той като я открие един път после му става елементарно да извлече всички пароли. Другото което е че принципа е този ключ да се пази на отделен сървър. Така Хакера първо трябва да осъзнае че има някакъв ключ, да открие къде се съхранява и да удари още една база данни.
 
teroristd каза:
Това е така но пак му е много по трудно защото трябва за всяка парола да действа по отделно, докато ако солта е една и съща той като я открие един път после му става елементарно да извлече всички пароли. Другото което е че принципа е този ключ да се пази на отделен сървър. Така Хакера първо трябва да осъзнае че има някакъв ключ, да открие къде се съхранява и да удари още една база данни.
Това вече е съвсем различно нещо! Ако го ползваш, да, това е правилният начин. Ключът винаги трябва да е отделно, но тук говорим вече за изключително много ненужни заявки за малък сайт и отделни конекции между сърварите и прочие. Да това е наистина едно мноого добро решение на проблема но самото то предизвиква много проблеми. Реално е наложащо за сайтове с мнооого голям набор от потребители за да са защитени но дърпа много от скоростта. Относно другото ми становище и ако примерно таблицата с ключовете е налична просто си прави една заявка свързва ги по ид та или по каквото и ти ги свързваш и си ги ползва. Не е нужно отново за всеки да търси и прочие просто си ги сортира по начина по който и ти. Да прав си ако има конекция към другият сървър но за да стигне до базата и ако има конекцията през ftp пак може да ги извика от другият сървър. Проблема е да не достига до базата или ако е достигнал какъв достъп има до нея. Просто нещата са доста намешани. Прав си с горният пост сложи край на доста от приказките ми но просто е прекалено да бавиш системата излишно с външни конекции. :)
 
Оправих ги нещата. Трябваше ми един foreach и бях подценил полетата в базата данни. Там бяха варчар 64 и е нямало място за целия стринг но като ги дигнах на 255 сработи. Благодаря за помощта.
 

Back
Горе