Напиши на PHP удостоверяване на потребителя, уеб разработчик блог
Първо трябва да се наложи на началната страница и го поставете в корена на сайта в папката с шаблони. За този урок, достатъчно е, че този файл е с форма вход потребителско име и парола, както и бутона "Вход". По-долу е кодът на този формуляр:
Файлът ще се нарича index.html.
След като формата е готово, ние ще създадем най-важният файл за бъдещето на обекта - основният контролер, т.е. файла, който лежи в основата на обекта - .. index.php. Това, че той ще започне на входа на обекта. Към момента на писане на тази статия за нашия проект код на този файл отнема 92 линии, ние също трябва момента само около 25 линии. Това е кода:
Сега по-отблизо как работи.
През първите три реда, ние просто свързване на файлове с функции, които ще бъдат използвани по-късно в кода. За тях малко по-късно. След това проверете, да параметъра действие = дали предава. Когато той е прехвърлен, след което потребителят кликне върху линка, за да на мястото на освобождаване. По този начин, кодът на тази справка. Добавете го към файл с формуляр, за да въведете кода.
самата функция, като всички останали, ще разгледа по-късно. На първо място, логиката ...
Сега ние трябва да разберем всички функции, наречени в този код. Първо ще опиша функцията за вход в сайта:
И създаде две бисквитка: потребителско име и парола, с продължителност на живота - 50,000 секунди. На първи пишем за вход, а вторият - хеш на паролата.
В този ред ние осъществяваме функция, която е отговорна за настройка на времето на последната дейност от страна на потребителя. Това е кодът на тази функция:
Всичко. $ варианти за масиви могат да бъдат използвани, за да вмъкнете във вашия браузър и търсене. Мисля, че там непременно ще съвпадне. Ръчно със сигурност трудно, но опитен хакер автоматизира процеса.
3. Кражба на бисквитки могат да бъдат предотвратени чрез криптиране на връзката (HTTPS), поне най-важните страници на вашия сайт.
За този подход за изпълнение на такива страници само HTTPS. За идентифициране на потребителя да използва друга линия на тези страници, може би с още по-голяма дължина. Това е задължително време. Откраднете тази бисквитка от подслушване трафик е невъзможно (много, много трудно, тъй като - друга история).
Твърде много "но-та". На ваше място аз по-добре да се обърне внимание на линията:
mysql_query ( "SELECT * FROM потребители КЪДЕ вход = ''»)
Има една наистина голяма уязвимост. Или по-скоро - възможност MySQL инжекция. Потребителят може да записва в Cook злонамерен поискване. Това е наистина една уязвимост. Съжаляваме, само тооолкова код е написана много отдавна и отдавна пренаписана в реални проекти.
Съжалявам, отново, не работи (ако можете да премахнете предишното съобщение). Опитайте отново, за пълния код на първото съобщение:
Юри, защо сте объркани md5 парола със сапун, сол и така нататък. D. Да не харесваш? Според сложността това не се получи случаен низ.
Докато, обаче, идеята е да се запази постоянно в различни редове Cookie интересни.
За SQL-инжекция - Да, прав си. Но в този случай аз говоря за схема за удостоверяване на потребителя. Най-неуязвим начин - да се съхраняват в бисквитка случаен, е трудно да се отгатне линията. Всички манипулации на сол - просто от неразбиране на същността. Можете просто да го получите, и става ясно :).
Ако изборът се извършва на компютъра, той естествено ще бъде по-бърз и в много пъти, но поради наличието на голям хеширане, с добавена различни параметри, включително случаен, намалява с "не" шанс. Rainbow таблици няма да помогнат, защото материала за хеш - също хеш, но тези маси са построени за почистване на пароли.
Ако ние осъзнаваме, селекцията, генерира поредица от хешове на всички възможни комбинации на символи и сравняване на получената хеш на хеша на съществуването си, както и да се има предвид, че това е паролата в бисквитка хешираното само веднъж и без да забележи, а след това ...
16 ^ 32 - брой варианти (минус една малка част от сблъсък). няма да бъдат разглеждани, и едва ли излезе)
парола познае. Това е друг въпрос. Аз просто не са се докоснали до този момент. Аз говорех за математически лесен и сигурен начин за идентификация на потребителя.
парола познае. Разбрах, че е. След 3 повреди изход CAPTCHA. И вие може да се прилага към времезакъснението.
Благодаря Ви много. Какво ви трябва. Аз се абонирате за новини :)
Въпреки това, на твое място не бих се похвали и се обадете нещо идиотско, защото действителната грешка в кода не сте забелязали, и то е точно в линията, която ви цитиран в публикацията си 🙂 По мое мнение, идиотизъм - да се обърне внимание звездичка, която, обаче, в проекта за тест има право да съществува и ако грешката не е по дефиниция, но не и да погледнем истинската уязвимост ...
В моя стил Попов в лицето ...
Formatirovanie- ужасни грешки ... +
Първо се има обща променлива се проверява чрез Isset (),
и задръжте, и проверете празен (), а не == преди проверката за валидност би било хубаво през тапицерия ()
Това е в допълнение към груби нарушения на сигурността
Анатолий не goduet
- Твърде много ненужни заявки към базата данни
- Малко проверка и обработка на редовете
- Nope се опита / улов - нека красиви дръжка изключения!
- По принцип не разполагат с достатъчно различни платформи. Regekspy, разбира се, изключват оставащи символи, но една и съща включване проверка магически kavychem е нужно да се
- име и парола в бисквитка обикновено не магазините. Дръжте го случаен хашиш и aydishnik през деня, например.
- В цитирания кодекс съдържа грешки, поради което е необходимо, за да се справят със своите корекции
Единственото нещо, което ми хареса - това е наистина интуитивно управление алгоритъм + въпреки това, сортиране, че скрипт чрез папки / подпапки.
$ Rez = mysql_query ( "SELECT * FROM потребители КЪДЕ вход = $ вход"); // заявките редове от базата данни с данните за вход, въведената потребителя
Хаха. Къде скрининг искания? Къде харесва?