Доказателство за глупак. Защита на потребителските данни 6 изисква се влизане с име

Здравейте момчета, надявам се нещата да вървят добре, днес ще ви обясним един много полезен урок. В днешния урок ще създадем проста форма за контакт с помощта на angularJS и php.

форма за контактие стандартна уеб страница, която е достъпна във всеки сайт. Това позволява на посетителите на сайта да се свържат със собствениците на сайта или доставчиците на услуги, които отговарят за поддържането на този уебсайт. Затова си помислихме защо да не създадем проста форма за контакт с помощта на Angularjs и php за получаване на съобщения от уебсайтове, читатели и/или потребители.

Използваме Angularjs за предния край и php от страната на сървъра. Ще напишем код на php, който взема данни от Angular форма и ги изпраща по имейл до администратора на сайта. Създайте папка, наречена „contact-form“ в директорията на вашето уеб приложение и създайте примерен дизайн HTML страници– index.html. Сега копирайте и поставете кода по-долу във файла index.html.

Демонстрация - Проста форма за контакт с помощта на Angularjs и php Форма за контакт с помощта на angularjs и PHP Вашето име Имейл Съобщение Изпрати

Php код за изпращане на имейл

Създайте страница contact.php и копирайте и поставете кода по-долу. По-долу е php кодът, който ще извлече данните от ъгловата форма и ще ги изпрати по имейл на посочения имейл адрес.

< ?php $post_data = file_get_contents("php://input"); $data = json_decode($post_data); //Just to display the form values echo "Name: " . $data->име; echo "Имейл: ". $ данни-> имейл; echo "Съобщение: ". $ данни-> съобщение; // изпрати имейл $to = $data->email; $subject = "Сайт за тестови писма за тестване на формуляр за контакт с angularjs"; $message = $data->message; $headers = "От: ". $data->name .. "\r\n" .. "\r\n" . "X-Mailer: PHP/" . phpversion(); //PHP пощенска функция за изпращане на имейл до имейл адрес mail($to, $subject, $message, $headers); ?>

Защо получих този формуляр?

В момента има Brute-force атака на вашия сайт. Атаката с груба сила е атака с отгатване на парола. В този случай се избира парола за административния панел на вашия сайт.

За да предотвратим хакване на вашия сайт и да повишим неговата сигурност, сме инсталирали допълнителна защита.

Как мога сега да вляза в административния панел на сайта?

Сега, когато влизате в административния панел на вашия сайт (в Joomla или WordPress), ще се появи допълнителен прозорец за въвеждане на потребителско име и парола с надпис „моля, използвайте паролата на контролния панел“. Като вход, трябва да въведете данните за вход на вашата хостинг услуга, изглежда като „u1234567“. Паролата е текущата парола за вашата хостинг услуга.

След като преминете основно HTTP удостоверяване, ще видите стандартно поле за вход в административния панел на вашия сайт. Сега ще трябва да въведете потребителското име и паролата на администратора на сайта.

Как работи HTTP основното удостоверяване

Когато въведете вашето потребителско име и парола в основния прозорец за удостоверяване, хеш стойностите за вход и парола ще бъдат сравнени със стойностите в специалния файл ~/etc/users, наличен в контролния панел на хостинга. Съдържанието на файла изглежда по следния начин: “u1234567:dm48bspxIO3rg” . Където „u1234567“ е данните за вход, а „dm48bspxIO3rg“ е хешът на паролата (забележка: само хешът, не самата парола!). Хешът на паролата е резултат от преобразуване на парола с помощта на определен алгоритъм.

По този начин, когато въведете вашето потребителско име и парола в основния прозорец за удостоверяване, се взема хеш на въведената парола и се сравнява с хеш стойността във файла ~/etc/users. Ако стойностите съвпадат, вие сте удостоверени.

Не мога да премина основно удостоверяване

Вероятно въвеждате грешна парола. Инсталирай нова паролаза основно удостоверяване:

Ако сте преминали основно удостоверяване, но не можете да влезете директно в административния панел на вашия Joomla или WordPress сайт, използвайте помощта:

Как да увеличите защитата на уебсайта си срещу Brute-force атаки?

За да увеличите сигурността на сайта:

  • променете влизането на суперпотребител на по-уникално. Не използвайте кратки имена, по-добре е да използвате първото име заедно с фамилията. В интернет има много ресурси, където се събират най-популярните влизания. Запознайте се с тях и никога не ги използвайте;
  • Задайте сложна администраторска парола на сайта. Сложна паролатрябва да съдържа главни и малки букви, цифри и допълнителни символи като "* - _ # :" и т.н. Дължината на паролата е не по-малко от 6 знака. За предпочитане 10 и повече.
Как да премахна формуляра за основно HTTP удостоверяване?

За да премахнете формуляра за основно HTTP удостоверяване:

AuthType Basic AuthName "моля, използвайте паролата на контролния панел" AuthUserFile .../users Изискване valid-user

За да коментирате ред, поставете решетка (“#”) в началото на реда, като това.

Ще ни трябват следните страници:

  • Страница за регистрация с регистрационна форма
  • Страница за активиране на акаунт
  • Страница за възстановяване на парола
  • Страница за повторно задаване на парола

Формата за влизане в сайта ще бъде поставена на всички страници на сайта (например в заглавката).

Това е страницата за регистрация, която искаме да получим:

Ето го типа сметкаще определи в коя група ще регистрираме потребителя. Освен това полето за идентификация (потребителско име) ще бъде имейл.

Нека добавим извикване към фрагмента за регистрация на страницата:

[[!Регистрирам? &submitVar=`register-btn` &activationResourceId=`27` &activationEmailTpl=`Email.Activation` &activationEmailSubject=`Вие сте регистрирани в example.com` &placeholderPrefix=`reg.` &successMsg=`Благодарим ви за регистрацията. На вашия имейл [[!+reg.email]] е изпратено писмо с връзка за активиране на вашия акаунт. Следвайте тази връзка, за да завършите регистрацията си. ` &usernameField=`имейл` &usergroupsField=`reg_type` &customValidators=`valueIn` &validate=`username:blank, reg_type:valueIn=^Readers;Writers;Idlers ^, fullname:required:minLength=^6^, password:required:minLength =^6^, password_confirm:password_confirm=^password^, email:required:email` ]] [[!+error.message:default=`[[!$Register.Form]]`]]

Моля, обърнете внимание, че всички етикети, свързани с регистрацията, трябва да се наричат ​​некеширани. Същите правила се прилагат при обработка на формуляри с фрагмента FormIt.

Нека да разгледаме параметрите на повикването:

&submitVar=`register-btn` - указва атрибута name на тага за въвеждане. Тоест, фрагментът ще работи само ако формата е изпратена с бутон с конкретно име.

&activationResourceId=`42` - гледайки напред, 42 е идентификаторът на страницата, на която ще активираме потребителя.

&activationEmailTpl=`Email.Activation` - част с писмото за активиране, повече за това по-късно.

&placeholderPrefix=`reg.` - показва, че всички контейнери, с редки изключения (повече за това по-късно), които са създадени в този фрагмент, трябва да започват с „reg.“

&successMsg – съобщението, което ще се покаже, когато формулярът бъде изпратен успешно. Обърнете внимание, че може да съдържа стойности от формуляра и всякакви други тагове. Това съобщение ще бъде записано в контейнера [[!+error.message]]. Доста странно име, а в момента има грешка в документацията. Пише [[!+reg.error.message]], но кодът на компонента показва, че това не е така.

&usernameField=`email` - указва, че полето за имейл ще се използва като потребителско име.

&usergroupsField=`reg_type` - дефинира поле, което указва групата, към която ще бъде добавен новият потребител.

&customValidators=`valueIn` - указва допълнителни валидатори, които трябва да бъдат създадени ръчно.

&validate – валидаторите се посочват разделени със запетаи за всяко поле, а ако са необходими няколко валидатора за едно поле, те също се разделят с двоеточие. Нека ги разгледаме поотделно:

username:blank е обикновен капан за спам, който означава, че полето за потребителско име трябва да остане празно.

reg_type:valueIn=^Readers;Writers;Idlers^ - ограничаваме възможните групи до посочените три. В първоначалната дистрибуция няма такова нещо и злите хакери могат да се регистрират например под групата администратор (ако не сте я преименували).

fullname:required:minLength=^6^ - полето за пълно име не трябва да е празно и да съдържа поне 6 знака.

password:required:minLength=^6^ - подобно на паролата.

password_confirm:password_confirm=^password^ - паролите трябва да съвпадат.

email:required:email – имейлът трябва да е непразен и да е действителен имейл.

Конструкцията [[!+error.message:default=`[[!$Register.Form]]`]] показва съобщение за успешното изпращане на формуляра или част от формуляра, ако току-що сте посетили страницата или сте я попълнили излиза неправилно.

Нека създадем горния валидатор valueIn. За да направите това, създайте фрагмент, наречен valueIn и следния код:

$valueIn = explode(";", $param); return in_array($value, $valueIn);

Сега трябва да създадете парче Регистрирайте се.Формуляр. В този случай ще бъде както следва (използва се Bootstrap 3):

Изберете тип акаунт Chukchi-Reader Peysatel Bum Представете се: [[!+reg.error.fullname:notempty=`[[!+reg.error.fullname]]`]] електронна поща: [[!+reg.error.email:notempty=`[[!+reg.error.email]]`]] Парола: [[!+reg.error.password:notempty=`[[!+reg.error .password]]`]] Повторете паролата: [[!+reg.error.password_confirm:notempty=`[[!+reg.error.password_confirm]]`]]

Всички полета са задължителни

В тази форма ще отбележа няколко неща относно MODX:




Свързани статии: