菲彩国际

Archive for the ‘WordPress’ Category

僅支持域名訪問的方法

近期收到一些短信告警,大概意思是說不能通過 ip 直接訪問網站。
順手禁掉,備忘如下:

vi /etc/apache2/sites-available/000-default.conf

添加:

<VirtualHost *:80>
        ServerName xxx.xxx.xxx.xxx
        ServerAlias xxx.xxx.xxx.xxx
        <Directory />
                Order Allow,Deny
                Deny from all
        </Directory>
</VirtualHost>

重啟:
/etc/init.d/apache2 restart

爬蟲與資源消耗

最近服務器總是告警,大半夜的一連串短信通知。
開始還嘟囔著便宜沒好貨,1核1G 的機器湊合著過吧。
忍了又忍,每次重啟完,過不了幾天就死了。只好抽時間看一下。
拿到 access.log ,初步分析是 404 的頁面和 search 結果頁被吃盡了資源。

一個是被爬蟲爬了無數次。
菲彩国际 一個是被惡意廣告搜了無數次。

爬蟲的好處理:
  1. 先調整了 robots.txt,讓聽話的爬蟲別爬我廢棄的目錄:

    User-agent: *
    Disallow: /xxxx/xxxx/

  2. 不聽話的沒辦法,限制了幾個 IP ,手動的:

    order allow,deny
    deny from 46.229.168.65
    deny from 46.229.168. 121.224.143. (限制 IP 段,空格分開)
    allow from all

  3. 然而懶得總是查 IP ,得,直接屏蔽掉 xxxx 整個目錄:

    order allow,deny
    deny from all

  4. 目錄外的文件 301 指向首頁,誰都別訪問了:
    <?php
    header("HTTP/1.1 301 Moved Permanently");
    header("Location:http://cnzhongka.com");
    ?>
惡意搜索廣告:

菲彩国际這個麻煩點,我也不能屏蔽掉搜索功能,畢竟自己還要用。

  1. 還是先告訴懂事的爬蟲,別爬這些鏈接:

    Disallow: /search/*
    Disallow: /?s=
    Disallow: /index.php?s=

  2. 然后在模板的 function.php 里,加入個搜索的限制:
    add_action('admin_init', 'uicss_search_ban_key');
    function uicss_search_ban_key() {
        
    add_settings_field('uicss_search_key', 'uicss搜索關鍵詞屏蔽', 'uicss_search_key_callback_function', 'reading');
        
    register_setting('reading', 'uicss_search_key');
    }
    function uicss_search_key_callback_function() {
        
    echo '<textarea name="uicss_search_key" rows="10" cols="50" id="uicss_search_key" class="large-text code">' . get_option('uicss_search_key') . '</textarea>';
    }
    add_action('template_redirect', 'uicss_search_ban');
    function uicss_search_ban() {
        
    if (is_search()) {
            
    global $wp_query;
            
    $uicss_search_key = get_option('uicss_search_key');
            
    if ($uicss_search_key) {
                
    $uicss_search_key = str_replace("\r\n", "|", $uicss_search_key);
                
    $BanKey = explode('|', $uicss_search_key);
                
    $S_Key = $wp_query->query_vars;
                
    foreach ($BanKey as $Key) {
                    
    if (stristr($S_Key['s'], $Key) != false) {
                        
    wp_die('請不要搜索非法關鍵字');
                    
    }
                
    }
            
    }
        
    }
    }

    上傳好之后,在后臺可以配置一些關鍵詞,例如:
    www com net 杏彩,一行一個,禁止搜索這些詞。

  3. 菲彩国际 再然后,讀 log 發現,這些惡意搜索都是無 referer 的直接流量,那我可以改 search.php 的頭一行,加個域的判斷就好了:

    <?php
    $host = $_SERVER['HTTP_REFERER'];
    if (substr($host, 0, 16) != 'http://cnzhongka.com/') {
        
    header("location:http://cnzhongka.com/a/go-away.html");
        
    exit;
    } //是自己人再去讀數據庫,加載 header,不是自己人的請走開。
    get_header();
    ?>
  4. 有來源的這么搞:

    RewriteEngine on
    RewriteCond %{HTTP_REFERER} laobiao\.php [NC,OR]
    RewriteCond %{HTTP_REFERER} xxxx\.org
    RewriteRule .* - [F]

  5. 訪問指定文件名的:
    <Files ~ ".asp$">
         Order allow,deny
         Deny from all
    </Files>
  6. <FilesMatch ".(asp|htaccess|jsp|rar|zip)$">
     Order allow,deny
     Deny from all
    </FilesMatch>

    <FilesMatch "(wuwu11|xw|xw1|9678|db.init).php">
     Order allow,deny
     Deny from all
    </FilesMatch>
  7. 最后逼不得已,可以把 user agent 符合的全拒絕掉。(他們假裝正常用戶也是讓人煩躁)
    菲彩国际 配合著 user-agent Switcher 試了半天,原來各種符號全都需要轉義,不僅是空格和點,連括號都要轉,真是費勁:

    RewriteCond %{HTTP_USER_AGENT} "Mozilla/5\.0\ \(Macintosh\;\ Intel\ Mac\ OS\ X\ 10_12_4\)\ AppleWebKit/537\.36\ \(KHTML,\ like\ Gecko\)\ Chrome/57\.0\.2987\.133\ Safari/537\.36"

折騰了好幾通,繼續觀察 ing
菲彩国际 注意,折騰的時候找個測試目錄玩,自己把自己搞掛了無數次,一個空格沒轉義就整站 500 了。

admin-ajax 500

臨下班,小客戶期望我的 Widgets 能夠修改一些內容。
點完 Save 按鈕,都準備關機了,卻看到菊花轉呀轉,始終始終保存不上。
菲彩国际 得,扔個修改后的 index.html 上去,回家再說吧。

審查元素 Console 報了這個:

[Error] Failed to load resource: the server responded with a status of 500 (Internal Server Error) (admin-ajax.php, line 0)

先用了重啟大法、停插件大法,都無效之后。
開始搜 admin-ajax 500 ,結果吐出來一堆垃圾文章。
甚至傻乎乎的照做,重裝了 php5-curl 還是解決不了問題。

沉住氣,查了一下 error.log (出問題果然還是要先查日志)

[Sun Sep 06 20:51:42.828453 2015] [:error] [pid 2987] [client 211.151.229.101:58371] PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 4915229 bytes) in /cuikai/www/html/wp-includes/wp-db.php on line 1173, referer: http://cnzhongka.com/wp-admin/widgets.php

再去查 wp-db.php on line 1173
得到一個線索,wp升級的時候會產生很多雜七雜八的玩意,導致后臺各種慢。
順藤摸瓜找到一篇 7 年前的文章,是通過直接刪數據庫冗余的臨時解決方案。
略過不表。

菲彩国际說一下怎么治根。

第一步:
打開 wp-includes/taxonomy.php file 跳轉到 4448 行

wp_schedule_single_event( ‘wp_batch_split_terms’, time() + MINUTE_IN_SECONDS );
修改為
wp_schedule_single_event( time() + MINUTE_IN_SECONDS, ‘wp_batch_split_terms’ );
以絕后患。

第二步:
創建一個 /wp-content/mu-plugins/fix.php 內容如下:

<?php
function clear_bad_cron_entries() {
    
// Fix incorrect cron entries for term splitting
    
$cron_array = _get_cron_array();
    
if ( isset( $cron_array['wp_batch_split_terms'] ) ) {
        
unset( $cron_array['wp_batch_split_terms'] );
            
_set_cron_array( $cron_array );
    
}
}
clear_bad_cron_entries();

在瀏覽器地址欄訪問一下該文件 cnzhongka.com/wp-content/mu-plugins/fix.php

ok 大功告成。
捎帶著,后臺各種操作也變快了,噗哈哈哈。

WordPress后臺編輯器快速標簽

菲彩国际WordPress后臺編輯器里已經內置了一些標簽

edButtons[10] = new qt.TagButton('strong','b','<strong>','</strong>','b');
edButtons[20] = new qt.TagButton('em','i','<em>','</em>','i'),
edButtons[30] = new qt.LinkButton(), // special case
edButtons[40] = new qt.TagButton('block','b-quote','\n\n<blockquote>','</blockquote>\n\n','q'),
edButtons[50] = new qt.TagButton('del','del','<del datetime="' + _datetime + '">','</del>','d'),
edButtons[60] = new qt.TagButton('ins','ins','<ins datetime="' + _datetime + '">','</ins>','s'),
edButtons[70] = new qt.ImgButton(), // special case
edButtons[80] = new qt.TagButton('ul','ul','<ul>\n','</ul>\n\n','u'),
edButtons[90] = new qt.TagButton('ol','ol','<ol>\n','</ol>\n\n','o'),
edButtons[100] = new qt.TagButton('li','li','\t<li>','</li>\n','l'),
edButtons[110] = new qt.TagButton('code','code','<code>','</code>','c'),
edButtons[120] = new qt.TagButton('more','more',' <a rel="nofollow" href="http://cnzhongka.com/wordpress-quicktag/#more-16803" class="more-link">閱讀全文 &raquo;</a>
Page 1 of 912345...Last ?
崔凱博客
Powered by | Theme by ck web design | TOP 頂部
Copyright ? 崔凱 All rights reserved. 蜀ICP備12025891號.
菲彩国际_菲彩国际官网_Welcome 紫金阁棋牌-紫金阁棋牌官网 紫金阁棋牌-紫金阁棋牌官网 紫金阁棋牌-紫金阁棋牌官网 紫金阁棋牌-紫金阁棋牌官网