{"id":228849,"date":"2022-10-31T20:28:00","date_gmt":"2022-10-31T17:28:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=228849"},"modified":"2022-11-09T04:30:47","modified_gmt":"2022-11-09T01:30:47","slug":"mida-taehendab-wordpressi-kasutamine-puhverserverina","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/et\/mida-taehendab-wordpressi-kasutamine-puhverserverina\/","title":{"rendered":"Mida t\u00e4hendab WordPressi kasutamine puhverserverina?"},"content":{"rendered":"\n<p>Kui olete WordPressiga kaua t\u00f6\u00f6tanud, eriti mis puudutab teatud t\u00fc\u00fcpi Ajaxi funktsioonide kasutamist, siis olete t\u00f5en\u00e4oliselt mingil hetkel kuulnud fraasi &quot;kasuta WordPressi puhverserverina&quot;.<\/p>\n<p>Ja isegi kui teil pole t\u00f5en\u00e4osust, et olete seda tegelikult teinud, on \u00fcsna k\u00f5rge.<\/p>\n<p>Kuigi ma arvan, et aja m\u00f6\u00f6dudes n\u00e4eme l\u00f5puks, et REST API asendab traditsioonilised viisid, mida oleme Ajaxi kasutanud, kuid see on t\u00f5en\u00e4oliselt teine \u200b\u200b\u200b\u200blugu.<\/p>\n<p>Mida t\u00e4hendab WordPressi kasutamine puhverserverina alati, kui t\u00f6\u00f6tate Ajaxi taotlustega? See n\u00f5uab pisut arusaamist saidi\u00fclestest p\u00e4ringutest, p\u00e4ringu marsruutimisest WordPressi kaudu ja seej\u00e4rel vastuse s\u00f5elumisest.<\/p>\n<h2>Kasutage puhverserverina WordPressi<\/h2>\n<p>See on natuke pikk postitus, kas pole? Selle asemel proovin selle l\u00fchemaks jaotada, et saaksite seda lugeda ja seej\u00e4rel t\u00f6\u00f6le naasta.<\/p>\n<h3>Puhverserverina<\/h3>\n<p>Esiteks v\u00f5tke <a href=\"https:\/\/www.google.com\/search?q=define%3A+proxy&#038;oq=define%3A+proxy&#038;aqs=chrome..69i57j69i58.1706j0j7&#038;sourceid=chrome&#038;ie=UTF-8\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">puhverserveri m\u00e4\u00e4ratlus<\/a> :<\/p>\n<blockquote>\n<p>volitused kedagi teist esindada, eriti h\u00e4\u00e4letamisel<\/p>\n<\/blockquote>\n<p>Kui kl\u00f5psate \u00fclaloleval lingil, m\u00e4rkate, et on veel m\u00f5ned m\u00e4\u00e4ratlused, kuid \u00fckski neist ei ole tegelikult piisav. Selle asemel meeldib mulle m\u00f5elda neile natuke abstraktsemalt, v\u00e4hemalt mis puudutab tarkvara.<\/p>\n<p>Selle postituse jaoks oletame, et WordPress on p\u00e4ringu puhverserver, mis t\u00e4hendab, et see vastutab p\u00e4ringu alguse ja sellele vastuse vahelise vahendajana.<\/p>\n<p>L\u00fchidalt,<\/p>\n<blockquote>\n<p>WordPress toimib puhverserverina, suunates p\u00e4ringu teise teenusesse ja j\u00e4\u00e4dvustades selle vastuse.<\/p>\n<\/blockquote>\n<p>V\u00f5ib-olla olete midagi sarnast kuulnud, v\u00f5ib-olla mitte. Sellest hoolimata v\u00f5ib see k\u00f5rgel tasemel v\u00e4lja n\u00e4ha j\u00e4rgmiselt:<\/p>\n<p>N\u00fc\u00fcd, kui teil on vaja esitada as\u00fcnkroonne taotlus (v\u00f5i Ajaxi p\u00e4ring, nagu ma kasutan selle postituse \u00fclej\u00e4\u00e4nud osas), on teil \u00fcks kahest v\u00f5imalusest.<\/p>\n<ol>\n<li>esitage taotlus lehele, mis eksisteerib WordPressis,<\/li>\n<li>esitage p\u00e4ring teisel domeenil asuvale lehele.<\/li>\n<\/ol>\n<p>Kui esitate p\u00e4ringuid teie rakenduses (loe: WordPressis) olemasolevatele lehtedele, pole teil probleeme.<\/p>\n<h3>Taotluste turvalisuse kohta<\/h3>\n<p>Kuid Ajaxi p\u00e4ringute tegemine v\u00e4ljaspool oma domeeni on keelatud. Seda seet\u00f5ttu, et see on m\u00f5eldud <a href=\"https:\/\/www.owasp.org\/index.php\/Cross-site_Scripting_(XSS)\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">XSS<\/a> -i ja <a href=\"https:\/\/www.owasp.org\/index.php\/Cross-Site_Request_Forgery_(CSRF)\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">CSRF<\/a> -i kaitsmiseks .<\/p>\n<p>L\u00fchidalt, iga\u00fcks neist viitab vastavalt j\u00e4rgmisele:<\/p>\n<blockquote>\n<p>XSS-r\u00fcnnakud ilmnevad siis, kui r\u00fcndaja kasutab veebirakendust pahatahtliku koodi saatmiseks, tavaliselt brauseripoolse skripti kujul, teisele l\u00f5ppkasutajale.<\/p>\n<\/blockquote>\n<p>ja:<\/p>\n<blockquote>\n<p>Cross-Site Request Forgery (CSRF) on r\u00fcnnak, mis sunnib l\u00f5ppkasutajat sooritama soovimatuid toiminguid veebirakenduses, milles ta on praegu autentitud.<\/p>\n<\/blockquote>\n<p>L\u00fchidalt, sellep\u00e4rast peame puhverserverina kasutama WordPressi. Loomulikult tekitab see aga k\u00fcsimuse, kuidas?<\/p>\n<h3>WordPressi kasutamine puhverserverina<\/h3>\n<p>Selleks vajate mitut asja:<\/p>\n<ol>\n<li>\u00a0leht, millelt teie Ajaxi p\u00e4ring saab p\u00e4ringuid teha,<\/li>\n<li>funktsioon ajaxi p\u00e4ringu p\u00fc\u00fcdmiseks ja \u00f5igele URL-ile saatmiseks,<\/li>\n<li>viis serveri poolel vastuse s\u00f5elumiseks,<\/li>\n<li>funktsioon andmete tagastamiseks algsele Ajaxi funktsioonile.<\/li>\n<\/ol>\n<p>J\u00e4llegi, ruumi huvides, ma ei esita selle kohta p\u00f5hjalikku n\u00e4idet, kuid sellest peaks piisama, et alustada.<\/p>\n<p>Esiteks peate veenduma, et teil on Ajaxi p\u00e4ringu p\u00fc\u00fcdmiseks m\u00e4\u00e4ratud funktsioon. Codexis on selle kohta juba palju dokumentatsiooni. <a href=\"https:\/\/gist.github.com\/tommcfarlin\/833c1d1819b8863697aea00a716b2116#file-01_get_columns-js\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Selle lihtne n\u00e4ide<\/a> n\u00e4eks v\u00e4lja selline:<\/p>\n<pre><code>var _get_columns = function() {\n\n    \/\/ Don't forget to use a nonce or security value here.\n    var data = {\n        'action':   'get_all_columns'\n            'security': '&lt;?php echo wp_create_nonce( \"acme-security-ajax-nonce\" ); ?&gt;'\n    };\n\n    \/\/ TODO Check for error logging if the response value doesn't exist.\n    $.get( ajaxurl, data, function( response) {\n\n        response = $.parseJSON( response );\n        \/\/ Your custom functionality here\n    });\n};\n<\/code><\/pre>\n<p>J\u00e4rgmiseks vajate serveris lehte, et esitada p\u00e4ring teie andmeid sisaldavale URL-ile. Seda saab teha kasutades <a href=\"https:\/\/curl.haxx.se\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">cURL<\/a> -i, seda saab teha <a href=\"https:\/\/php.net\/manual\/en\/function.file-get-contents.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">faili_get_contents<\/a> abil ja seda saab teha m\u00f5nel muul viisil.<\/p>\n<p>Kuna ma ei tea ega taha ettekirjutavat n\u00e4idet tuua, jagan v\u00e4ga lihtsat demo selle kohta, kuidas see v\u00f5iks toimida (<a href=\"https:\/\/gist.github.com\/tommcfarlin\/833c1d1819b8863697aea00a716b2116#file-02-wp_ajax_get_all_data-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">v\u00e4hemalt algstaadiumis<\/a> ):<\/p>\n<pre><code>&lt;?php\n\nadd_action( 'wp_ajax_get_all_data', 'get_all_data' );\n\/**\n * Retrieves the requested data from the specified URL \n * returns the values in JSON.\n *\/\nfunction get_all_data() {\n\n  \/\/ Note $url is up to you.\n  $curl = curl_init( $url );\n\n  curl_setopt( $curl, CURLOPT_RETURNTRANSFER, 1 );                         \n  curl_setopt( $curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY );                    \n  curl_setopt( $curl, CURLOPT_SSL_VERIFYPEER, false );                          \n  curl_setopt( $curl, CURLOPT_FOLLOWLOCATION, true );                           \n\n  $response     = curl_exec( $curl );                                          \n  $resultStatus = curl_getinfo( $curl );                                   \n\n  if( 200 !== $resultStatus['http_code']) {\n    echo 'Call Failed '.print_r( $result_status );                         \n  }\n  curl_close( $curl );\n\n  echo json_encode( utf8_encode( $response) ); \n  wp_die();\n}\n<\/code><\/pre>\n<p>Kui saate vastuse, saate selle s\u00f5eluda serveri poolel (mida ma soovitan) ja tagastada see kerges vormingus algsele JavaScripti funktsioonile, nagu \u00fclaltoodud. Pange t\u00e4hele, et ma kasutan \u00fclaltoodud koodis koodi <a href=\"https:\/\/php.net\/manual\/en\/function.json-encode.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">json_encode .<\/a><\/p>\n<p>Sealt saate oma olemasolevate andmetega k\u00f5nealuse lehega teha k\u00f5ike, mida vajate. Pange t\u00e4hele, et teave sisaldub vastuseobjektis ja selle \u00f5igeks k\u00e4sitlemiseks peate v\u00f5ib-olla kontrollima, mida see sisaldab. See on saavutatud ja seda n\u00e4itab \u00fclaltoodud kood.<\/p>\n<p>Kuid selle \u00fcksikasjad s\u00f5ltuvad suuresti sellest, mida soovite saavutada.<\/p>\n<h2>WordPress puhverserverina<\/h2>\n<p>L\u00f5ppkokkuv\u00f5ttes n\u00e4eb juhtimisvoog v\u00e4lja umbes selline:<\/p>\n<p>K\u00f5ige \u00fclaltoodu m\u00f5te on aidata anda natuke tausta selle kohta, miks v\u00f5ite n\u00e4ha m\u00f5nda koodi, mida teete, ja miks peate oma koodi niimoodi struktureerima.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mida t\u00e4hendab WordPressi kasutamine puhverserverina alati, kui t\u00f6\u00f6tate Ajaxi taotlustega? Vaadake neid n\u00e4iteid.<\/p>\n","protected":false},"author":1,"featured_media":223885,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[718,894,916,842,863],"tags":[1165],"class_list":["post-228849","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arendaja","category-kood","category-muud","category-opetused","category-wordpress-4","tag-affiai-et"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/228849","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/comments?post=228849"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/228849\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media\/223885"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media?parent=228849"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/categories?post=228849"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/tags?post=228849"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}