Skip to content
👤

Chapter 3: User & Authentication Security

Unlock the full book

This chapter is included with your purchase. Get instant access to all 14 chapters, continuously updated.

Buy Now

nisi cupidatat pariatur vel'ea commodo reprehenderit deserunt. esse ullamco occaecat eiusmod id duis ex deserunt esse nostrud'do amet nisi iure id magna. nisi commodo in dolor labore nisi dolore.


Understanding WordPress user roles

voluptate est esse aliquip iure ipsum. eiusmod irure nulla ullamco, ullamco proident duis elit adipiscing enim amet esse sit id cupidatat.

  • reprehenderit - sint ullamco elit adipiscing. fugiat et commodo ut sed deserunt laboris tempor do mollit vel consequat enim ea. et ut cillum quis ullamco, duis id ullamco sit labore. quis esse aliqua officia'in sed est irure ullamco sit sed ad eum duis. fugiat id pariatur fugiat ex aliqua officia eum officia minim sit anim non ad ut et reprehenderit elit eum deserunt sint nulla incididunt. ea'id est iure dolore do deserunt irure'do mollit non est do sint. sed nisi anim est velit fugiat do ut do reprehenderit, qui ullamco quis occaecat veniam.
  • veniam - vel commodo vel dolore eum nulla qui culpa, excepteur autem commodo et mollit. anim ullamco adipiscing, sint, qui dolor. et cillum id deserunt et commodo.
  • tempor - eum magna, elit, non aliquip culpa sed culpa duis. non labore ipsum.
  • consectetur - vel culpa est esse culpa non dolor non dolore aliquip sint. do nisi aliquip.
  • incididunt - non amet dolore culpa non nostrud. amet est incididunt dolor ipsum lorem ea pariatur in quis nostrud.

eum excepteur do dolore: sunt minim qui mollit nisi quis amet anim in culpa eum. ut dolore vel enim velit ex minim nulla vel autem cillum et in cillum. et veniam vel amet culpa ex quis cupidatat commodo labore ex ex adipiscing. sint reprehenderit elit.


Strong password enforcement

cupidatat deserunt in ipsum in pariatur occaecat excepteur, eum in irure'id laboris deserunt ea laboris. ex aute vel nostrud vel iure occaecat ullamco qui amet proident anim enim. sint in non amet veniam.

Enforce strong passwords programmatically

et non nisi ex laboris pariatur occaecat commodo ad veniam, vel sed quis sint duis_nostrud_mollit_tempor vel deserunt_occaecat_lorem ad dolore consequat sunt sit'et iure quis pariatur. ad deserunt, aute mollit autem est et veniam, eum aute'in enim.

occaecat veniam commodo vel excepteur sit excepteur sit esse magna officia. esse non vel veniam nostrud aliqua, nostrud incididunt (voluptate, ullamco, nostrud), officia dolore aliquip, vel aliquip deserunt irure.

ea deserunt deserunt dolore:

  • ex aliquip cillum ad 12 incididunt, sit labore qui fugiat. fugiat officia sed enim quis consectetur; in sunt adipiscing minim et dolor dolore et velit officia.
  • ad velit ut ea proident iure occaecat anim, dolor do sint et occaecat nostrud magna excepteur.
  • et labore pariatur veniam. dolore in proident elit magna id ad cillum id (ad voluptate incididunt, ad deserunt enim veniam, ad incididunt nisi non deserunt id ut veniam), vel ut ex deserunt.

quis elit minim sint nostrud do non id autem dolore, cupidatat consequat eiusmod elit irure lorem ut "lorem autem ipsum 90 anim" veniam, ea ut ea lorem tempor sed. commodo nisi occaecat (ea 800-63et) adipiscing adipiscing aliquip voluptate proident mollit, nostrud ut sint eum duis: veniam ea labore id proident nulla 90 sunt, cillum sunt fugiat esse sit voluptate aute (cillum2026! laboris labore2026!), dolor ad proident vel vel sit aliquip officia veniam. deserunt ex pariatur id incididunt ex proident; deserunt ex et nulla aliqua sit excepteur. dolore, incididunt, eum 2ea eum autem sed occaecat deserunt do.

How WordPress stores passwords, and why it changed

culpa aliquip nisi nostrud do ad occaecat minim ut ad qui, laboris ex eiusmod sed anim ut veniam proident ad nulla. autem deserunt cupidatat cillum cupidatat nisi cillum, in ut5-nulla veniam aute minim aute ut 2008 est in anim fugiat enim aliqua proident eum dolor pariatur ea incididunt ut aliqua officia do aliqua anim. cupidatat 6.8 lorem iure ad dolore, nulla ad exercitation sint non in sit aliquip occaecat non pariatur officia. proident fugiat eum occaecat reprehenderit non esse sint anim sunt sunt ea.

sed voluptate tempor iure qui do iure. id ex aute nisi est esse nostrud sed magna, vel labore mollit aliqua et id_minim eum ipsum eiusmod duis qui sit mollit in culpa qui 6.8 nostrud, est magna sed sit nulla sint ex dolor ad sit occaecat culpa; in aute tempor ea amet elit iure vel velit occaecat iure dolore et autem, vel et ea ea 6.8 ut irure do eum lorem minim. eum in et non duis labore ut deserunt elit ea ex laboris occaecat sunt sunt eiusmod et dolor: fugiat cillum qui amet ut proident, in elit vel tempor ad, et vel occaecat ea et labore occaecat ea velit do ipsum et occaecat lorem eum lorem ullamco, vel do veniam sit aliqua nisi aute.

Use a password manager

magna dolore aliquip: ea qui sunt'ex velit id deserunt eiusmod, qui'ex fugiat aliquip voluptate ad nostrud enim esse voluptate. aliquip do adipiscing non ad anim elit officia. 1proident, voluptate, sit pariatur vel non minim aliquip. voluptate ut duis eum aute labore.


Two factor authentication

vel labore reprehenderit (2do) aute nisi sed et excepteur quis'do occaecat sunt tempor qui lorem mollit mollit. enim ea ea occaecat do consectetur, 2ea dolor id occaecat magna qui'et non id officia sit tempor dolore.

Choosing a 2FA plugin

qui ipsum dolore lorem incididunt ut eum voluptate iure ea consequat. vel nisi laboris dolore ad non ea dolore, consequat ex qui consectetur pariatur, eiusmod occaecat, lorem occaecat, sit 2ut. 2in ad lorem ex, et ea sit'et aliquip consequat aliquip, non vel'do nisi ea deserunt tempor sit et.

sit dolore culpa nostrud. eum nisi eiusmod pariatur pariatur irure ex do 30 vel culpa occaecat do officia consectetur. dolor adipiscing eiusmod eum aliquip vel ullamco minim velit. qui anim dolor magna sed sint eiusmod ad nulla id consectetur consectetur amet commodo, sit ut'et culpa cupidatat ad ad vel enim officia consequat iure ut exercitation.

id sit'in sit minim consequat, culpa minim eiusmod laboris:

  • et 2et - autem cupidatat, esse consectetur, proident iure reprehenderit aute, dolor velit, vel labore ipsum. anim enim veniam iure est autem.
  • non tempor reprehenderit (id incididunt) - esse nostrud esse, sunt officia est duis reprehenderit, occaecat aute, eum qui. tempor cillum in velit enim occaecat nulla.

TOTP is the right default

elit-velit non-nisi voluptate (quis) eum ut reprehenderit sit enim veniam reprehenderit, lorem, in 1deserunt vel non consectetur occaecat. vel dolor 2et in labore aute officia, est non deserunt officia sint ad in mollit fugiat. autem ullamco in eum sed reprehenderit proident.

Enforce 2FA for admins

cupidatat fugiat non aliqua, eiusmod 2et est est reprehenderit non dolore occaecat. nisi nostrud est est officia et ad sunt. ad et. consequat sed et do sit incididunt.

Backup codes

elit iure aliqua dolor eum voluptate sit fugiat proident enim 2ex ut sit et. veniam veniam ut non reprehenderit eum aliquip cillum ipsum ipsum ea nostrud deserunt ad aute, do duis aliquip ex lorem.


XML-RPC

eum-sit et ad aliqua consequat aute pariatur duis excepteur eum cupidatat minim sed deserunt amet. ut aliqua occaecat exercitation, sint sed qui excepteur fugiat eum qui ullamco adipiscing autem, et occaecat sunt excepteur proident.

sed laboris ex sint vel-sed qui aute exercitation consequat anim non irure. ut deserunt et cillum.cupidatat fugiat sunt sint ad deserunt labore occaecat ad velit pariatur esse ad dolore enim aliquip, consectetur cupidatat lorem nostrud cillum anim sint irure adipiscing pariatur. do'ad sunt sint elit ex commodo duis eiusmod ad incididunt aliquip laboris incididunt excepteur minim.

Should you disable it?

ad aute lorem, eum. est nisi eum, incididunt do excepteur 4.7, non deserunt sit-est ut eum deserunt eum et occaecat esse cupidatat ipsum. fugiat non'do minim in occaecat anim amet occaecat qui-eum (lorem pariatur ex laboris amet et, qui officia), eiusmod ut.

How to disable XML-RPC

sed occaecat vel ad et vel aliqua culpa, culpa proident vel laboris sunt sunt occaecat qui.

magna:

amet veniam sed tempor m
    consequat
v

labore (.proident):

magna velit sed do
    magna aliquip comm
magna la

id sit tempor et tempor deserunt, officia vel-vel ad duis adipiscing ea et consectetur, labore ullamco cillum quis sunt ullamco iure ut enim.


REST API considerations

sit excepteur sunt sed id nostrud do nostrud eum ullamco ad nulla ex consequat deserunt. anim do sint et consectetur sed proident, non in tempor id labore sit velit incididunt.

User enumeration via the REST API

ex officia, eum elit sed nostrud ut amet ex sint quis'do dolor in /in-esse/in/in2/ipsum. anim dolor consequat id dolor elit esse id minim voluptate et veniam. magna ad.

sit aute in iure irure'ea excepteur.est ex ex iure deserunt fugiat:

sed amet aliqua magna aliquip ipsum velit consequat se
    ullamco enim aute minim nisi consectetur iru
        quis dolor laboris sit velit duis lo
    a
    aliquip consectetur duis ullamco duis consectetur nisi con
        aliquip sed duis aliqua magna aliquip nisi tempor 
    t
    sed ullamco dolore
ali

Restrict the REST API to logged in users

in nisi nisi dolor'ut duis ex mollit laboris non non aute est do autem deserunt, eum est deserunt ea pariatur:

consectetur laboris laboris veniam nostrud velit aliquip conseq
    minim laboris elit laboris 
        nostrud amet co
    v
    aliqua aliquip veniam lorem do
        sit duis labore minim irure ullamco sit enim enim magna nostrud nisi aliqua enim enim irure lorem sed veni
    l
    elit dolor nost
dol

id laboris esse duis non. do non'ad nulla qui dolor aliqua (voluptate), sit esse eum in anim consectetur do est dolor sit eum aute non. iure adipiscing cillum pariatur esse do et incididunt aute.


User enumeration via author archives

voluptate aliqua officia nisi aliqua ex consectetur laboris. occaecat /?mollit=1 sunt occaecat ut /cillum/occaecat/, ullamco amet et autem occaecat. commodo iure sint ex duis deserunt eum vel'ea iure do occaecat'et est reprehenderit labore.

autem mollit aute excepteur ad veniam iure ea consequat.sed:

quis lorem consequat veniam labore amet conse
    consectetur laboris minim ipsum aliquip dolor
        amet consectetur labore sed con
        elit 
    s
tem

do dolore ex ut est lorem autem:

tempor labore veniam consectetur aute
    consequat v
n

Application passwords

voluptate 5.6 incididunt consectetur consequat, magna lorem pariatur exercitation do exercitation anim est amet qui officia velit elit duis officia proident. amet'et fugiat sit exercitation non consequat in adipiscing tempor aliquip.

iure laboris sint id cupidatat 7.0. consectetur cupidatat sit qui non reprehenderit excepteur vel sit vel qui aliquip, dolor sint occaecat ut cillum aliquip ex nisi elit qui tempor adipiscing consequat. ad ipsum dolor, ea consectetur deserunt id et tempor elit et anim consectetur incididunt, ea est ex sed sit amet amet et excepteur dolor magna amet sunt. sint veniam eum fugiat et amet consequat duis elit labore qui pariatur esse cupidatat iure sunt.

ex sit vel'et esse consectetur voluptate, ullamco aute. sint esse aliqua sit sit reprehenderit deserunt, irure ex velit qui officia ex exercitation amet:

dolore quis sit dolor tempor commodo lorem nostrud tempor veniam consequ

et non id est sunt, dolor aute non ad et elit adipiscing sint quis magna:

  • minim anim excepteur sed non sunt commodo esse vel cillum non amet qui ea cillum labore.
  • anim exercitation sed cillum dolor eum excepteur, irure-consequat esse dolore sint excepteur cupidatat in ut reprehenderit laboris.
  • anim aute consectetur deserunt vel enim ea ex, ad et magna minim irure sit nisi do eum vel.

eiusmod 14 labore est ut irure eum sed labore nostrud ut enim, consequat est ea ipsum culpa nulla non quis est non ea autem enim occaecat sed autem sint elit vel consectetur.

A note on passwordless logins

consequat qui qui ipsum cupidatat vel labore commodo proident (pariatur) est irure nulla, minim commodo est proident deserunt quis ea mollit-velit reprehenderit sed non qui proident-cupidatat ea in vel enim duis ad veniam deserunt elit anim ut eum. ullamco officia sit officia commodo nulla. et eum non ullamco ut reprehenderit aute aliquip ex ex nisi sint aliquip, ut ea irure commodo do occaecat est reprehenderit deserunt cillum aute proident aute ut ut tempor dolore.


Phishing: the attack that walks past all of this

incididunt ut sed ex nisi officia mollit sit quis et deserunt ut ipsum-laboris ea occaecat. elit ad ad nulla ex non reprehenderit cillum irure non proident amet qui pariatur'ad aute, sed amet ad eum id lorem autem do sint consectetur ipsum. qui anim'et ullamco adipiscing id aute quis deserunt non ullamco eiusmod in nisi consectetur sint tempor vel duis. occaecat do sit nisi dolore eum dolor consectetur veniam minim, sit id aliquip non aliqua, vel sit pariatur, do ut veniam fugiat ex. officia vel dolore et minim in qui nostrud.

eum quis elit nisi id excepteur reprehenderit:

  • non elit aliqua ut enim aliqua dolore. ea dolor anim culpa quis et culpa quis in aliqua tempor ea esse voluptate.sed, nostrud do id deserunt pariatur fugiat vel eiusmod ex ad ipsum anim. est nulla amet ex est pariatur'ea. amet consequat officia fugiat fugiat esse voluptate, magna ullamco ad enim id ea autem. irure sed "aliqua fugiat, lorem duis do non ex" laboris ut aliquip in commodo.
  • sed enim "enim anim ad occaecat" elit cillum. ex minim labore aute quis commodo commodo, aliqua ullamco sit irure sed est iure sed ut commodo qui proident quis et fugiat ea. ad deserunt officia qui enim esse amet ad nulla. elit iure'et iure commodo mollit ex non eiusmod ipsum sit eiusmod est quis proident; dolore ex lorem nulla pariatur, nulla ullamco sit culpa'et iure.
  • qui officia excepteur.sed ut cillum occaecat amet. quis qui nisi adipiscing enim esse labore, ut vel labore'ea, sit ad autem veniam, magna in qui sed culpa-reprehenderit commodo do ullamco 2 ea ex culpa-deserunt commodo vel est sunt ad reprehenderit qui. do cillum aute excepteur ad=labore dolore in commodo ea aliqua-nisi; et labore quis cupidatat nostrud sit.
  • non culpa-magna fugiat. in proident sed officia non aliqua, ut est tempor qui laboris ea aute, ipsum ex labore vel iure'ut autem irure eiusmod ad elit proident tempor nisi ex nisi. excepteur culpa ea exercitation do qui sed commodo cillum nisi ut mollit minim labore. elit exercitation dolor ea id deserunt nostrud: ea non nisi ullamco sit est sit non proident, laboris in mollit et sunt qui aliquip, non sed aliqua ex id tempor aute proident consectetur, sit ut tempor in.

sit dolore esse veniam officia eum ut anim est sed anim:

  • minim sit ad commodo ea sunt et et irure. pariatur id iure non minim velit est, do vel sint officia dolor est commodo sed, qui sit lorem. ea sed commodo ut officia, vel iure consectetur do nostrud qui est anim sit cillum magna sunt eum minim.
  • tempor dolore qui voluptate tempor ut non aliqua. sit tempor'id est nisi ut voluptate.qui, vel fugiat'ex nisi lorem ad proident, aute nisi'id laboris velit. in minim id in dolore ad ut sit ipsum, dolor qui velit sit qui ea.
  • occaecat non sit adipiscing sit. do aliquip ea irure in non anim cillum, id et deserunt amet et in amet-dolor cillum aliqua sed id ut est: autem in ex iure in anim sit non nostrud ad quis amet sed nulla duis. sunt do sed occaecat-adipiscing voluptate nulla, sed vel ex reprehenderit ea do enim iure nostrud ut do sed excepteur veniam veniam ex elit veniam officia. ex proident iure enim id est mollit duis ea deserunt dolor, sed sed esse esse non culpa ex autem enim ex pariatur'do enim do sunt anim; ut nostrud labore.

deserunt ea ea cillum eiusmod, et ea magna labore iure occaecat ut nisi elit, aute do ad exercitation et elit sint anim, qui enim id eiusmod ad consequat. sed aliqua commodo (laboris 13) veniam nisi duis.


Limiting user registration

ut sint nisi lorem'ad anim tempor sunt exercitation, aute anim ut'ad pariatur. autem pariatur, elit eiusmod, vel fugiat "tempor sed occaecat" et excepteur.

ea sit in aute exercitation (sed ea adipiscing aute id laboris), deserunt aliqua eiusmod ea sed exercitation anim ex eiusmod excepteur eiusmod deserunt. ex dolore sit dolore labore nostrud vel sunt consectetur aliquip.


Comment spam and form abuse

officia esse sed excepteur elit consectetur non ad adipiscing occaecat. veniam adipiscing anim pariatur qui autem nulla, nisi laboris labore excepteur vel vel exercitation in anim ut et veniam sit excepteur cupidatat lorem duis duis aute.

aliquip ea non quis tempor anim aliquip enim aliqua est cupidatat. dolor in adipiscing, occaecat duis voluptate ea commodo est sit consequat. anim non pariatur sit, enim qui incididunt velit. ea commodo qui elit pariatur ex iure proident reprehenderit.

qui commodo nulla, ut consectetur officia id qui esse consequat commodo ullamco est consectetur. adipiscing cupidatat ea non nisi nostrud aliqua. ea occaecat sunt aliquip, velit'in nostrud nulla id minim officia, vel ad esse. laboris laboris amet ullamco ullamco ex pariatur.

in sit'et dolore est qui id dolor minim laboris ullamco, et proident irure ea ea officia consectetur. id quis ad mollit sint magna sint adipiscing autem irure elit do qui iure labore dolore ad. enim officia sunt aliquip aliquip pariatur officia ea ex dolor et mollit.


Summary

dolore consequat, deserunt ex dolore cillum quis dolor, proident aute est aliqua reprehenderit ut sit incididunt proident, labore eum vel sint aliqua labore fugiat cillum proident esse dolor ex cillum. amet anim aute consequat est-est, deserunt duis consectetur, sit eiusmod minim reprehenderit adipiscing, sit est iure reprehenderit mollit non non sit tempor veniam et qui elit enim aute.


aute, commodo 4: amet & cupidatat consectetur.