{"id":232500,"date":"2023-01-20T14:35:00","date_gmt":"2023-01-20T11:35:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=232500"},"modified":"2023-01-29T10:11:31","modified_gmt":"2023-01-29T07:11:31","slug":"paras-tehokas-roskapostin-esto-php-koodin-tunnistus-wordpressille","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fi\/paras-tehokas-roskapostin-esto-php-koodin-tunnistus-wordpressille\/","title":{"rendered":"Paras tehokas roskapostin esto PHP-koodin tunnistus WordPressille"},"content":{"rendered":"<p>WordPress-blogi voi vastaanottaa yli 100 roskapostikommenttia (roskapostirobottien tuottamia) p\u00e4iv\u00e4ss\u00e4, mik\u00e4 on \u00e4rsytt\u00e4v\u00e4\u00e4.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-156584-61e5bfcecc6e1.jpg\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-156584-61e5bfcecc6e1.jpg\" alt=\"Paras tehokas roskapostin esto PHP-koodin tunnistus Wordpressille\"><\/a><\/p>\n<p>wordpress-spam<\/p>\n<p>Yleens\u00e4 ne voidaan kaapata lis\u00e4osilla, kuten Akismet, mutta n\u00e4m\u00e4 tiedot s\u00e4ilytet\u00e4\u00e4n edelleen tietokannassa ennen kuin ne <a href=\"https:\/\/wordpress.mediadoma.com\/fi\/pienennae-wordpress-tietokannan-kaeyttoeae\/\" title=\"karsitaan pois\">karsitaan pois<\/a> manuaalisesti tai <a href=\"https:\/\/wordpress.mediadoma.com\/fi\/kuinka-maeaerittaeae-php-skripti-crontabissa-useiden-wordpress-tietokanta-puhdistamiseksi-samalla-palvelimella\/\" title=\"vanhenemisp\u00e4iv\u00e4n j\u00e4lkeen\">vanhenemisp\u00e4iv\u00e4n j\u00e4lkeen<\/a>.<\/p>\n<p><a href=\"https:\/\/leonax.net\/p\/6732\/block-spam-comments-from-web-page\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">LEONA<\/a> tarjoaa n\u00e4pp\u00e4r\u00e4n ratkaisun, jolla estet\u00e4\u00e4n roskapostikommenttien p\u00e4\u00e4sy edes tietokantaan. Se perustuu piilotetun kent\u00e4n sijoittamiseen lomakkeeseen ja arvon asettamiseen, kun k\u00e4ytt\u00e4j\u00e4 painaa n\u00e4pp\u00e4int\u00e4 (onkeyup). Joten jos arvot eiv\u00e4t t\u00e4sm\u00e4\u00e4, uskomme, ett\u00e4 se ei ole ihmisen l\u00e4hett\u00e4m\u00e4.<\/p>\n<p>wordpress tarjoaa <strong>preprocess_comment<\/strong> &#8211; suodattimen, joten voit tarkistaa kommentit ja poistua sivulta komennolla <strong>wp_die()<\/strong> aiemmin.<\/p>\n<p>WP:n virallinen API sanoo (<a href=\"https:\/\/codex.wordpress.org\/Plugin_API\/Filter_Reference\/preprocess_comment\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">https:\/\/codex.wordpress.org\/Plugin_API\/Filter_Reference\/preprocess_comment<\/a> ), $commentdata sis\u00e4lt\u00e4\u00e4 seuraavat tiedot:<\/p>\n<pre><code>'comment_post_ID' \u00a0 \u00a0 \u00a0- The post to which the comment will apply\n\u00a0 \u00a0'comment_author' \u00a0 \u00a0 \u00a0 - (may be empty)\n\u00a0 \u00a0'comment_author_email' - (may be empty)\n\u00a0 \u00a0'comment_author_url' \u00a0 - (may be empty)\n\u00a0 \u00a0'comment_content' \u00a0 \u00a0 \u00a0- The text of the proposed comment\n\u00a0 \u00a0'comment_type' \u00a0 \u00a0 \u00a0 \u00a0 - 'pingback', 'trackback', or empty for regular comments\n\u00a0 \u00a0'user_ID' \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0- (empty if not logged in)<\/code><\/pre>\n<p>Voimme sitten k\u00e4ytt\u00e4\u00e4 t\u00e4t\u00e4 laajennusta salliaksemme pingback\/trackbackin (mik\u00e4 mielest\u00e4ni on hy\u00f6dyllist\u00e4) ja p\u00e4\u00e4st\u00e4 eroon roskapostikommenteista tehokkaasti.<\/p>\n<pre><code>$leonax_magic_lower = 328;\n$leonax_magic_upper = 3450709;\n\u00a0\nfunction leonax_anti_spam_form($fields){\n\u00a0 \u00a0 global $leonax_magic_lower, $leonax_magic_upper;\n\u00a0 \u00a0 $leonax_magic = mt_rand($leonax_magic_lower, $leonax_magic_upper);\n\u00a0 \u00a0 $fields['leonax_magic'] = &lt;&lt;&lt;EOT\n\u00a0 \u00a0 \u00a0 \u00a0 &lt;input type=\"hidden\" id=\"leonax-magic\" name=\"leonax-magic\" value=\"0\"&gt;\n\u00a0 \u00a0 \u00a0 \u00a0 &lt;script type=\"text\/javascript\"&gt;\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 jQuery(function() {\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 jQuery(\"#comment\").on(\"keyup\", function() {\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 jQuery(\"#leonax-magic\").val(\"$leonax_magic\");\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 });\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 })\n\u00a0 \u00a0 \u00a0 \u00a0 &lt;\/script&gt;\nEOT;\n\u00a0 \u00a0 return $fields;\n}\n\u00a0\nadd_filter('comment_form_default_fields', 'leonax_anti_spam_form');\n\u00a0\nfunction leonax_anit_spam_caught() {\n\u00a0 wp_die('&lt;strong&gt;ERROR&lt;\/strong&gt;: Looks like you are a spam bot. Please stop doing this.');\n}\n\u00a0\nfunction leonax_anti_spam_check( $commentdata) {\n\u00a0 $comment_type = '';\n\u00a0 if (isset($commentdata['comment_type'])) {\n\u00a0 \u00a0 $comment_type = trim($commentdata['comment_type']);\n\u00a0 } \u00a0 \n\u00a0 \n\u00a0if (($comment_type == 'pingback') || ($comment_type == 'trackback')) {\n\u00a0 \u00a0 return $commentdata;\n\u00a0 }\n\u00a0 $content = '';\n\u00a0 if (isset($commentdata['comment_content'])) {\n\u00a0 \u00a0 $content = trim($commentdata['comment_content']);\n\u00a0 } \u00a0 \n\u00a0 if (!strlen($content)) {\n\u00a0 \u00a0 leonax_anit_spam_caught();\n\u00a0 }\n\u00a0 \n\u00a0 if (preg_match(\"\/[a-e0-9]{25,}\/i\", $content)) { \/\/ To capture the strange IDs\n\u00a0 \u00a0 leonax_anit_spam_caught(); \u00a0\n\u00a0 }\n\u00a0\n\u00a0 global $leonax_magic_lower, $leonax_magic_upper; \u00a0\n\u00a0 \n\u00a0 if (isset($commentdata['user_ID']) &amp;&amp; $commentdata['user_ID']) { \/\/ Login-users are not bad\n\u00a0 \u00a0 return $commentdata;\n\u00a0 }\n\u00a0 \n\u00a0 if (!isset($_POST['leonax-magic'])) {\n\u00a0 \u00a0 leonax_anit_spam_caught();\n\u00a0 }\n\u00a0 $magic = intval($_POST['leonax-magic']);\n\u00a0 if ($magic &lt; $leonax_magic_lower || $magic &gt; $leonax_magic_upper) {\n\u00a0 \u00a0 leonax_anit_spam_caught();\n\u00a0 }\n\u00a0 return $commentdata;\n}\n\u00a0\nadd_filter( 'preprocess_comment', 'leonax_anti_spam_check' );<\/code><\/pre>\n<p>Jos testaamme toimintoa\/suodatinta sy\u00f6tt\u00e4m\u00e4ll\u00e4 tarkoituksella outoja tunnuksia, saamme seuraavan (eik\u00e4 kommenttia sy\u00f6tet\u00e4 odotusalueelle).<\/p>\n<p>Huomautus: Laita yll\u00e4 oleva koodi <strong>functions.php<\/strong> &#8211; mallin (tai alateeman) loppuun.<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-156584-61e5bfd03126a.jpg\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-156584-61e5bfd03126a.jpg\" alt=\"Paras tehokas roskapostin esto PHP-koodin tunnistus Wordpressille\"><\/a><\/p>\n<p>wordpress-spam-detect<\/p>\n<p>Se toimii kuin taikuutta!<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/helloacm.com\" class=\"external external_icon\">helloacm.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Paras tehokas roskapostin esto PHP-koodin tunnistus WordPressille<\/p>\n","protected":false},"author":1,"featured_media":223984,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[719,843,803,1030,864],"tags":[1166],"class_list":["post-232500","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kehittaejae","category-opetusohjelmia","category-php-5","category-turvallisuus","category-wordpress-5","tag-affiai-fi"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/232500","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/comments?post=232500"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/posts\/232500\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media\/223984"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/media?parent=232500"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/categories?post=232500"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fi\/wp-json\/wp\/v2\/tags?post=232500"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}