itthon / Windows oktatóanyagok / Hogyan lehet elérni, hogy a bevitelhez szükséges attribútum működjön az IE régebbi verzióiban? Megoldás: Sajnáljuk, hiba történt az Instagram h 6 bejelentkezési névvel

Hogyan lehet elérni, hogy a bevitelhez szükséges attribútum működjön az IE régebbi verzióiban? Megoldás: Sajnáljuk, hiba történt az Instagram h 6 bejelentkezési névvel

A következő oldalakra van szükségünk:

  • Regisztrációs oldal regisztrációs űrlappal
  • Fiókaktiválási oldal
  • Jelszó-helyreállítási oldal
  • Jelszó-visszaállítási oldal

A webhely bejelentkezési űrlapja a webhely összes oldalán (például a fejlécben) megjelenik.

Ezt a regisztrációs oldalt szeretnénk megszerezni:

Ide írja be fiókot meghatározza, hogy melyik csoportba regisztráljuk a felhasználót. Ezenkívül az azonosítás mezője (felhasználónév) az e-mail cím lesz.

Hívás hozzáadása a regisztrációs kódrészlethez az oldalhoz:

[[!Regisztráció? &submitVar=`register-btn` &activationResourceId=`27` &activationEmailTpl=`Email.Activation` &activationEmailSubject=`Regisztrált az example.com oldalon` &placeholderPrefix=`reg.` &successMsg=`Köszönjük a regisztrációt. A fiók aktiválásához szükséges linket tartalmazó e-mailt elküldtük a [[!+reg.email]] e-mail címére. A regisztráció befejezéséhez kövesse ezt a linket. ` &usernameField=`e-mail` &usergroupsField=`reg_type` &customValidators=`valueIn` &validate=`felhasználónév:üres, reg_type:valueIn=^Olvasok;Writers;Idlers ^, teljes név:kötelező:minLength=^6ed:minLengthquir =^6^, password_confirm:password_confirm=^password^, email:required:email` ]] [[!+error.message:default=`[[!$Register.Form]]`]]

Vegye figyelembe, hogy az összes regisztrációval kapcsolatos címkét uncachednek kell nevezni. Ugyanezek a szabályok érvényesek az űrlapok FormIt kódrészlettel történő feldolgozásakor is.

Elemezzük a hívásparamétereket:

&submitVar=`register-btn` – A bemeneti címke név attribútuma. Vagyis a kódrészlet csak akkor fog működni, ha az űrlapot egy adott nevű gombbal küldik be.

&activationResourceId=`42` - előretekintve a 42 annak az oldalnak az azonosítója, amelyen aktiválni fogjuk a felhasználót.

&activationEmailTpl=`Email.Activation` - egy darab aktiváló e-mailt, erről később.

&placeholderPrefix=`reg.` – azt jelzi, hogy az ebben a kódrészletben létrehozott valamennyi helyőrzőnek – ritka kivételektől eltekintve (erről bővebben később) – „reg.” szóval kell kezdődnie.

A &successMsg az az üzenet, amely az űrlap sikeres elküldése után jelenik meg. Vegye figyelembe, hogy tartalmazhat értékeket az űrlapból és bármely más címkéből. Ez az üzenet a [[!+error.message]] helyőrzőbe lesz írva. Elég furcsa név, és a dokumentációban Ebben a pillanatban hiba. Azt írja, hogy [[!+reg.error.message]], de a komponens kódjából az következik, hogy ez nem így van.

&usernameField=`email` – azt jelzi, hogy az e-mail mező lesz felhasználónévként használatos.

&usergroupsField=`reg_type` - meghatároz egy mezőt, amely beállítja azt a csoportot, amelyhez az új felhasználót hozzáadni kell.

&customValidators=`valueIn` – további manuálisan létrehozandó érvényesítőket ad meg.

&ellenőrzés – Az érvényesítőket minden mezőben vesszővel elválasztva adjuk meg, és ha ugyanahhoz a mezőhöz több érvényesítő szükséges, akkor kettősponttal is elválasztjuk őket. Elemezzük őket külön-külön:

A username:blank egy egyszerű spamcsapda, ami azt jelenti, hogy a felhasználónév mezőt üresen kell hagyni.

reg_type:valueIn=^Readers;Writers;Idlers^ - korlátozza a lehetséges csoportokat a megadott háromra. Az eredeti disztribúcióban ilyen nincs, és a gonosz hackerek regisztrálhatnak például az Adminisztrátor csoport alatt (ha nem nevezted át).

fullname:required:minLength=^6^ - a teljes név mezőnek nem szabad üresnek lennie, és legalább 6 karaktert kell tartalmaznia.

jelszó:required:minLength=^6^ - ugyanaz a jelszónál.

password_confirm:password_confirm=^password^ - a jelszavaknak egyeznie kell.

email:required:email - az e-mail-cím nem lehet üres, és a tényleges e-mail.

A [[!+error.message:default=`[[!$Register.Form]]`]] konstrukció üzenetet jelenít meg az űrlap vagy az űrlap egy részének sikeres elküldéséről, ha éppen most lépett be az oldalra vagy töltötte ki azt helytelenül.

Hozzuk létre a fenti valueIn validátort. Ehhez hozzon létre egy valueIn nevű kódrészletet és a következő kódot:

$értékIn = explode(";", $param); return in_array($érték, $értékIn);

Most létre kell hoznia egy darabot Regisztráció.Űrlap. Ebben az esetben a következő lesz (a Bootstrap 3 használatával):

Válassza ki a fiók típusát Chukcha-Reader Paysatel Idler Mutatkozzon be: [[!+reg.error.fullname:notempty=`[[!+reg.error.fullname]]`]] E-mail: [[!+reg.error.email : notempty=`[[!+reg.error.email]]`]] Jelszó: [[!+reg.error.password:notempty=`[[!+reg.error.password]]`]] Jelszó ismétlése: [ [!+reg.error.password_confirm:notempty=`[[!+reg.error.password_confirm]]`]]

Minden mező kitöltése kötelező

Ebben a formában megjegyzek néhány dolgot a MODX-ről:


email; echo "Üzenet: " . $adat->üzenet; // e-mailt küldött $to = $data->email; $subject = "Teszt e-mail webhely az angularjs kapcsolatfelvételi űrlap teszteléséhez"; $üzenet = $adat->üzenet; $headers = "Feladó: " . $adat->név .. "\r\n" .. "\r\n" . "XMailer: PHP/" . phpversion(); // PHP mail függvény küldeni Email egy e-mail címre mail($címzett, $tárgy, $üzenet, $fejlécek); ?>

Fontos, hogy a webalkalmazások készítése során komolyan vegyük a biztonságot, különösen, ha a felhasználóktól származó adatokról van szó.

Általános biztonsági szabály, hogy ne bízzon senkiben, így nem várhatja el a felhasználóktól, hogy mindig a megfelelő értékeket írják be az űrlapokba. Például ahelyett, hogy a megfelelő e-mail címet írná be a mezőbe, a felhasználó rossz címet írhat be, vagy akár rosszindulatú adatokat is megadhat.

Ami a felhasználói adatok érvényesítését illeti, azt mind a kliens oldalon (böngészőben), mind a szerver oldalon meg lehet tenni.

Korábban az ügyféloldali érvényesítést csak JavaScript használatával lehetett elvégezni. De a dolgok megváltoztak (vagy majdnem megváltoztak), mert a HTML5-tel az érvényesítés a böngészőben is elvégezhető anélkül, hogy bonyolult JavaScript-ellenőrző szkripteket kellene írni.

Űrlapérvényesítés HTML5-tel

A HTML5 meglehetősen robusztus mechanizmust biztosít a következő címkeattribútumok alapján: típus , minta és követelmény . Ezekkel az új attribútumokkal az adatok ellenőrzésének egy részét kiszervezheti a böngészőnek.

Vessünk egy pillantást ezekre az attribútumokra, hogy megtudjuk, hogyan segíthetik az űrlap érvényesítését.

típusú attribútum

Ez az attribútum megmondja, hogy melyik beviteli mezőt kell megjeleníteni az adatfeldolgozáshoz, például a már ismert típusú mezőt

Néhány beviteli mező már megadja szabványos módokonérvényesítések, írás nélkül kiegészítő kód. Például ellenőriz egy mezőt, hogy megbizonyosodjon arról, hogy a megadott érték megegyezik egy érvényes e-mail cím mintájával. Ha egy mezőbe érvénytelen karaktert írnak be, az űrlapot az érték kijavításáig nem lehet elküldeni.

Próbáljon meg játszani az e-mail mező értékeivel az alábbi demóban.

Vannak más szabványos mezőtípusok is, például a számok, URL-ek és telefonszámok érvényesítésére.

Megjegyzés: A telefonszámok formátuma országonként eltérő a telefonszámok számjegyeinek számában és a formátumban mutatkozó eltérések miatt. Ennek eredményeként a specifikáció nem határoz meg algoritmust a telefonszámok ellenőrzésére, így a cikk írásakor ez a lehetőség a böngészők rosszul támogatják.

Szerencsére a telefonszám-ellenőrzés elvégezhető a minta attribútum használatával, amely egy reguláris kifejezést vesz argumentumként, amelyet a következőkben nézünk meg.

minta attribútum

A minta attribútum valószínűleg sok front-end fejlesztőt ugrásra késztet örömében. Ez az attribútum reguláris kifejezést fogad el (hasonlóan a reguláris formátumhoz JavaScript kifejezések), amely ellenőrzi a mezőben megadott adatok helyességét.

A reguláris kifejezések a szöveg elemzésére és manipulálására használt nyelvek. Gyakran használják összetett keresési és helyettesítési műveletekhez, valamint a bevitt adatok érvényesítéséhez.

Manapság a reguláris kifejezések megtalálhatók a legnépszerűbb programozási nyelvekben, valamint számos szkriptnyelvben, szerkesztőben, alkalmazásban, adatbázisban és parancssori segédprogramban.

A reguláris kifejezések (RegEX) hatékony, tömör és rugalmas eszköz a szöveges karakterláncok, például egyedi karakterek, szavak vagy karakterminták egyeztetésére.

Ha egy reguláris kifejezést ad át a minta attribútumának értékeként, megadhatja, hogy mely értékek elfogadhatók adott mező bevitel, valamint a felhasználó tájékoztatása a hibákról.

Nézzünk meg néhány példát a reguláris kifejezések használatára a beviteli mezők értékének ellenőrzésére.

Telefonszámok

Mint korábban említettük, a tel mező típusát a böngészők nem támogatják teljes mértékben a telefonszám-formátumok különböző országokban tapasztalható következetlenségei miatt.

Például egyes országokban a telefonszám formátuma xxxx-xxx-xxxx , és a telefonszám valami ilyesmi lesz: 0803-555-8205 .

A reguláris kifejezés, amelyre ez a minta illeszkedik: ^\d(4)-\d(3)-\d(4)$ . A kódban ez így írható:

telefonszám:

Alfanumerikus értékek A kötelező attribútum

Ez egy logikai attribútum, amely azt jelzi, hogy ennek a mezőnek az értéke kötelező az űrlap elküldéséhez. Amikor ezt az attribútumot hozzáadja egy mezőhöz, a böngésző megköveteli a felhasználótól, hogy töltse ki a mezőt az űrlap elküldése előtt.

Ezzel megkímél minket attól, hogy JavaScripttel kelljen végrehajtani a mezőellenőrzést, ami némi időt takaríthat meg a fejlesztőknek.

Például: vagy (XHTML-kompatibilitásért)

Az összes fent látott demó a kötelező attribútumot használja, így kipróbálhatja úgy, hogy megpróbálja elküldeni az űrlapot a mezők kitöltése nélkül.

Következtetés

A böngésző támogatása az űrlapérvényesítéshez elég jó, a régebbi böngészőkhöz pedig polifilleket is használhat.

Érdemes megjegyezni, hogy csak a böngészőoldali érvényesítésre hagyatkozni veszélyes, mivel ezeket az ellenőrzéseket a támadók vagy a botok könnyen megkerülhetik.

Nem minden böngésző támogatja a HTML5-öt, és nem minden, a szkriptbe küldött adat származik az űrlapról. Ez azt jelenti, hogy mielőtt véglegesen elfogadnánk az adatokat a felhasználótól, ellenőrizni kell azok helyességét a szerver oldalon.

Miért telepítettem ezt az űrlapot?

Egy brute force támadás folyik jelenleg a webhelyén. A brute-force attack egy jelszókitaláló támadás. Ebben az esetben a jelszó a webhely adminisztrációs paneljéhez van kiválasztva.

A webhelye feltörésének megelőzése és biztonságának növelése érdekében további védelmet telepítettünk.

Hogyan férek hozzá most a webhely adminisztrációs paneljéhez?

Most, amikor eléri webhelye adminisztrációs paneljét (Joomla vagy WordPress rendszeren), egy további bejelentkezési és jelszóbeviteli ablak jelenik meg a „kérem, használja a vezérlőpult jelszavát” felirattal. Bejelentkezésként meg kell adnia tárhelyszolgáltatásának bejelentkezési adatait, ez így néz ki: "u1234567". Jelszóként a tárhelyszolgáltatás jelenlegi jelszava.

Az alapvető HTTP-hitelesítés átadása után egy szabványos engedélyezési mező jelenik meg webhelye adminisztrációs panelén. Most meg kell adnia a webhely rendszergazdájának bejelentkezési nevét és jelszavát.

Hogyan működik a HTTP alapszintű hitelesítés

Amikor beír egy bejelentkezési jelszót az alap hitelesítési ablakba, a bejelentkezési és jelszókivonat értéke összehasonlításra kerül a speciális fájl~/etc/users , elérhető a tárhely vezérlőpultján. A fájl tartalma valahogy így néz ki: "u1234567:dm48bspxIO3rg" . Ahol az „u1234567” a felhasználónév, a „dm48bspxIO3rg” pedig a jelszó hash-je (megjegyzés: csak a hash, magát a jelszót nem!). A jelszókivonat a jelszó egy adott algoritmus szerinti átalakításának eredménye.

Így amikor megad egy felhasználónevet és jelszót az alap hitelesítési ablakban, a rendszer a beírt jelszóból kivonatot vesz, és összehasonlítja a ~/etc/users fájl hash értékével. Ha az értékek egyeznek, Ön hitelesítve van.

Nem tudom átadni az alapvető hitelesítést

Valószínűleg rossz jelszót ad meg. Telepítés új jelszó alap hitelesítéshez:

Ha átment az alapszintű hitelesítésen, de nem tud közvetlenül bejelentkezni a Joomla vagy a WordPress webhely adminisztrációs paneljére, használja a súgót:

Hogyan lehet növelni a webhely védelmét a brute-force támadásokkal szemben?

A webhely biztonságának javítása érdekében:

  • módosítsa a szuperfelhasználói bejelentkezést valami egyedibbre. Ne használjon rövid neveket, jobb, ha az utónevet a vezetéknévvel együtt használja. Az interneten számos forrás található, ahol a legnépszerűbb bejelentkezési adatokat gyűjtik össze. Ismerkedjen meg velük, és soha ne használja őket;
  • állítson be egy összetett webhely rendszergazdai jelszót. Az összetett jelszónak tartalmaznia kell kis- és nagybetűket, számokat és további karaktereket, például "* - _ # :" stb. A jelszó hosszának legalább 6 karakternek kell lennie. Lehetőleg 10 vagy több.
Hogyan lehet eltávolítani az alapvető HTTP hitelesítési űrlapot?

A HTTP alapvető hitelesítési űrlap eltávolítása:

AuthType Basic AuthName "kérjük, használja a vezérlőpult jelszavát" AuthUserFile .../users Valid-user szükséges

Egy sor megjegyzéséhez tegyen egy font jelet ("#") a sor elejére, így.