kapacitet og nonces

, kapacitet og nonces,,,,, andel,,,,,,,, 6,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss., i den foregående artikel, kiggede jeg på at holde din tema eller laver sikkert gennem passende data sanitization og validering.i denne artikel, vi kigger på et andet vigtigt aspekt af wordpress sikkerhed, kapacitet og nonces.,,, når vi udvikler en stik (og i mindre omfang temaer), vil de ofte finder, at du ønsker at give brugeren til at udføre forskellige aktioner: slette, redigere eller ajourføre stillinger kategorier, optioner eller endog andre brugere.mere end du vil kun have visse godkendte brugere til at udføre disse aktiviteter.for det wordpress bruger to begreber: roller og muligheder.,, front - slette link: et enkelt eksempel, hvis vi vil have en front end sletknappen til hurtigt at fjerne stillinger.følgende skaber en sammenhæng, hvor vi har brug wptuts_frontend_delete_link() i loop., funktion wptuts_frontend_delete_link() {$url = add_query_arg (array (»tiltaget« = >'wptuts_frontend_delete,'post = > get_the_id();), echo "< en href = ($url} '> det < /a >"), og til at slette aktion: hvis (isset ($_request [»tiltaget«) & &. $_request [»tiltaget«] = ='wptuts_frontend_delete ") (add_action ('init,'wptuts_frontend_delete_post)} funktion wptuts_frontend_delete_post() (////////- id for den post.$post_id = (isset ($_request ['post ']).(int) $_request ['post ']: 0); //ingen post?nå...hvis (tomme ($post_id) tilbage; //slette efter wp_trash_post ($post_id); //omdirigere til admin side $omdirigere = admin_url ('edit. php '); wp_redirect ($omdirigere); udgang;}, når en bruger klik "fjerne" link, post er ødelagt, og brugeren er omdirigeret til post admin skærm. problemet med ovennævnte adfærdskodeks er, at det udøver ingen tilladelse kontrol: alle kan besøge forbindelsen og fjerne en post – og ikke kun det, men ved at ændre, post, søge i variabel, som de kan slette enhver stilling.for det første ønsker vi at sikre, at kun personer, som vi ønsker at være i stand til at slette stillinger er i stand til at slette stillinger.,, tilladelser, roller og muligheder, når brugeren er registreret på deres wordpress sted, de er tildelt en rolle: det kan være, administration, redaktør, eller abonnent,.hver rolle er tildelt kapacitet, f.eks. edit_posts,, edit_others_posts,, delete_posts, eller, manage_options,.hvilken rolle en bruger tildeles de arve denne kapacitet: kapacitet tildeles roller, ikke brugerne. disse muligheder dikterer, hvilke dele af administrationen af skærm, de kan få adgang til, og hvad der kan og ikke kan gøre, mens der.det er vigtigt at bemærke, at ved kontrol af tilladelserne, du tjekker kapacitet, og ikke den rolle.kapaciteten kan tilføjes eller fjernes roller, og så kan man ikke gå ud fra, at en "administration" brugere skal være i stand til at forvalte områdets muligheder – du skal navnlig kontrollere, om den pågældende bruger faktisk har, manage_options kapacitet. f.eks. generelt bør de undgå, hvis (current_user_can ('admin: ')) (//- noget, som kun de brugere, der kan klare muligheder bør være i stand til at gøre.), med henblik på at skabe en pædofil, du kan bruge, wp_create_nonce ($), hvor $aktion, er forklaret ovenfor.wordpress så statsråd kridten og bruger - id og hashes med hemmelig nøgle. du så sende denne voldtægtsforbryder sammen med de foranstaltninger, og alle andre oplysninger, du skal bruge for at udføre den handling.tjekker lige nu er meget enkel. //$pædofil voldtægtsforbryder værdi er modtaget med handling.- handling er det, vi plejede at skabe lige nu wp_verify_nonce ($pædofil, $); //vender rigtigt eller forkert, hvor $pædofil, er modtaget pædofil værdi og - foranstaltninger, er de ønskede foranstaltninger som ovenfor.wordpress så genererer pædofil med $indsats og kontrol, hvis den matcher med $pædofil, variabel.hvis nogen havde sendt dig forbindelsen, voldtægtsforbryder vil er fremkommet med deres id - kort, og så bliver forskellig fra din. alternativt hvis svansen var udstationeret eller tilføjet som en forespørgsel variable med navn, $navn:, check_admin_referer ($aktion, $navn), hvis den er ugyldig, det voldtægtsforbryder vil standse enhver yderligere indsats og udviser en, er du sikker?"besked. wordpress især er let at bruge nonces: blanketter, som de kan bruge, wp_nonce_field ($aktion, $navn).dette skaber en skjult område med navn, $navn og pædofil, der genereres form, $aktion, som dens værdi. for ip - adresser, du kan bruge, wp_nonce_url ($url - handling).dette har givet $url, og returnerer den til forespørgslen variabel, _wpnonce, tilføjes, med de genererede pædofil, som dens værdi. i vores eksempel:, funktion wptuts_frontend_delete_link() {$url = add_query_arg (array (»tiltaget« = > "wptuts_frontend_delete,'post = > get_the_id();)); $pædofil = wptuts_frontend_delete_".get_the_id(), echo "< en href =". wp_nonce_url ($url, $lige nu. "" > slette < /a > "), som (post med id - 61), skaber en pædofil med foranstaltninger, wptuts_frontend_delete_61,.så bare over, affald, ringe, wptuts_frontend_delete_post, kan vi se det lige nu, check_admin_referer ('wptuts_frontend_delete_. $post_id, _wpnonce '); ved hjælp af nonces i ajax anmodninger, ved hjælp af nonces i ajax anmodninger er lidt mere involveret.nonces genereres server side, så svansen værdi skal trykt som en javascript variable sendes sammen med ajax anmodning.for at gøre det, du kan bruge, wp_localize_script,.lad os antage, du har registreret et manuskript, wptuts_myjs, som indeholder en ajax anmodning. wp_enqueue_script ('wptuts_myjs'); wp_localize_script ('wptuts_myjs,'wptuts_ajax, system ('url = > admin_url (admin ajax. folkesundhedsprogrammet) //url til wordpress ajax håndtering side'nonce = > wp_create_nonce ('my_nonce_action ')), og i vores wptuts_myjs "script: $. ajax ((url: http: //wptuts_ajax.url, datatype:" json, data: {foranstaltning: "my_ajax_action, _ajax_nonce: wptuts_ajax.nonce,,...}); endelig inde i din ajax callback:, check_ajax_referer ('my_nonce_action), med mere end en pædofil, normalt en pædofil pr. form (eller pr. anmodning), er tilstrækkelige.men med wordpress forbindelse er lidt kompliceret.f.eks. når du ajourføre en post, wordpress vil udføre tilladelse og kontrol – pædofil vel ikke, du skal tjekke en pædofil for deres funktion hooked på, save_post, der beskæftiger sig med din brugerdefinerede meta - æske?så, save_post, kan udløses i andre tilfælde, i forskellige sammenhænge eller begivenhed manuelt – faktisk, når wp_update_post, er i virkeligheden.for at være sikker på, at de oplysninger, de modtager, er kommet fra, din metabox, bør du bruge din egen pædofil. >, selvfølgelig, hvis du bruger mere end en voldtægtsforbryder i en form, det er vigtigt, at du giver din voldtægtsforbryder et entydigt navn –, som er et unikt navn til den skjulte område, der indeholder voldtægtsforbryder værdi.hvis flere nonces i en form, har det samme navn, vil over på andre og et eller andet sted en kontrol, der bør gå, ikke at skabe en pædofil. så når din metabox, sørg for at du giver det et entydigt navn:, funktion my_metabox_callback ($post) {$navn ='my_nonce_name; //- det er unikt, præfiks med din stik /tema navn $action ='my_action_xyz_. $post - > id; //det er pædofil aktion wp_nonce_field ($aktion, $navn); //din meta - æske.}, så for din, save_post, meta - box:, add_action ('save_post,'my_metabox_save_post); funktion my_metabox_save_post ($post_id) (//se, det er ikke en auto - undtagen hvis (defineret ('doing_autosave) & & doing_autosave) afkast; //tjekke dine data er blevet sendt - medvirker kontrollere, at vi agter at behandle vores metabox hvis (!isset ($_post ['my_nonce_name ']) tilbage; //kontrollere tilladelser, hvis!current_user_can ('edit_post, $post_id) tilbage; //endelig se det lige nu check_admin_referer ('my_action_xyz_. $post_id, my_nonce_name); //gennemføre aktioner), når man beskæftiger sig med data fra mere end én metabox – du bør ideelt set have en pædofil, for hver enkelt.meta - kasser, kan fjernes, og hvis meta - æske indeholdende svansen er fjernet, så ikke engang gyldige ansøgninger vil passere.derfor er enhver behandling af andre metaboxes at påberåbe sig denne voldtægtsforbryder ikke vil forekomme.,, æstetik, nu kun privilegerede brugere kan slette stillinger –, og vi har metoder for at forhindre, at voldsmænd, at narre dem til at besøge forbindelsen.i øjeblikket, men linket er for alle –, vi skal rydde op, så det kun ser ud til brugere, der har tilladelse til at anvende det.jeg har forladt det sidste, fordi der gemmer sig forbindelsen fra mindre privilegerede brugere har ingen ydelser overhovedet.og mørke er ikke sikkerhed. vi er nødt til at antage, at han er i stand til helt at inspicere kildekode (det være wordpress, tema eller stik) –, og hvis så bare gemmer sig i den forbindelse alene ikke blot opbygge url: de kan selv.kan forhindre, at denne kontrol, for selv med url, har de ikke småkager, der giver dem tilladelse.også nonces forhindrer dem i at narre dig til at besøge url - ved at kræve en gyldig lige nu. så, som en fuldstændig æstetiske øvelse, vi medtager en kapacitet, tjek indenfor, wptuts_frontend_delete_link(), funktion:, funktion wptuts_frontend_delete_link() (hvis (current_user_can ('delete_post, get_the_id())) ($url = add_query_arg (array (»tiltaget« = > wptuts_frontend_delete,'post = > get_the_id();), echo "< en href = ($url} '> slette < /a >"}}, sammendrag, er det vigtigt at huske, at indikerer, tilladelse og nonces kontrollere hensigt.begge dele er nødvendige, for at holde din laver sikkert, men det betyder ikke, at andre.nogle gange wordpress håndterer denne kontrol for dig – f.eks. i forbindelse med de indstillinger, adi.men når ud til, save_post, det er nødvendigt for at udføre disse kontroller, glad kodning.,



Previous:
Next Page: