Category: Software

軟體

  • 2007 Open Source CMS Award

    星期天就透過 Drupal Taiwan 的網站得知,Drupal 贏得本年度的總冠軍,拍拍手真不錯!有 USD$ 5,000 可以拿耶~

    剛剛這禮拜的 WordPress Wednesday News 頭條則是《WordPress Wins and Loses》,原來 WordPress 只拿到  Best Open Source Social Networking Content Management System  第一名而已,還是今年的新項目…是不是往後都會開一些新項目給大家分啊?XD 而在這個項目 Drupal 則是與 eLGG 並列第二。

    Packt 舉辦的票選自七月開始,經過三個月一萬八千多網友以及各專業人士的評選,今年的2007 Open Source CMS Award 把兩萬美金通通送出去啦!明年不知道還有哪些競爭者?

  • WordPress Scanner 1.3 Beta 服務

    BlogSecurity 發表 WordPress Scanner 服務 1.3 Beta 版本,外掛部份則無更新,新增的功能:

    • WordPress Backdoor 檢查(給 2.1.1 那個安全性漏洞用)。
    • 檢查您的備份用目錄是否可由網路上讀取(說好要做)。
    • 增加了一些檔案的檢查(例如:phpinfo.php, .htaccess 等)。

    服務使用方式很簡單,請參閱先前這篇《BlogSecurity 提供 WordPress Scanner 工具》。

    要提醒一下,他有關 .htaccess 的建議並不恰當,依樣畫葫蘆後可能會發生外掛有問題以及視覺化編輯器消失等症狀。

  • 固定網址結構更新

    WordPress 有個「自訂固定網址結構」的功能,當初因它處理中文文章代稱時問題很大,就使用自訂結構如下:

    /%year%_%monthnum%/%day%/%post_id%

    就這麼相安無事用了很久,不過人總是得求新求變咪!想換一下…其實是因為 WordPress.com 統計外掛會把底線(_)給去掉…Orz 於是,就把它改成新的自訂結構:

    /%year%/%monthnum%/%day%/%post_id%

    不過問題出現,那存在搜尋引擎與書籤網站還有其他人的瀏覽器連結怎麼辦?改了就會有 404 – Not Found 出現啊~Orz

    經過好一段嚐試錯誤,終於找到解法。但這方法只適用於 Kirin 的狀況,您的固定網址結構根本站不同的請勿使用歐!只要在 .htaccess 中的 #BEGIN WordPress 那行前面加上下面這段:

    # BEGIN Old Rewrite
    
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^([0-9]{4})_([0-9]{1,2})/(.*)$ $1/$2/$3 [R=301,QSA,L]
    
    # END Old Rewrite
    
  • 網誌升級至 WordPress 2.3

    花了將近一小時升級,步驟跟上次升級差不多,但是沒有很認真備份…XD

    Apache 怪怪的,主機特別慢,關也關不掉,所以直接整台重開,大概是上次暈到死自動升級後沒重開的後遺症。

    總之,Kirin 所使用的外掛只有 Live Space Sync 1.0 不相容。因為它後台有個選分類的相關設定,直接使用 SQL 去撈資料庫。您也知道,這次 2.3 改變最大以至於讓一堆外掛死翹翹的就是分類…

    稍微修改一下,看起來是可以用,回報給 priv 看看。改法:

    $categories = (array) get_categories('get=all');
  • Secure Site

    由於部門網站僅供內部使用,而我們面對的客戶又是國際大廠。所以,大家在上面所討論的東西或者資訊,不可避免地會觸及客戶資料。為了安全起見,整個網站使用 HTTPS 是必要的作法,直接把所有 HTTP request 用 Rewrite 轉給 HTTPS。

    除了將 anonymous user 取消所有權限外,另外也啟用 Secure Site 模組,加上使用瀏覽器輸入帳號密碼的 Basic Authentication 方式。

    不過這模組有個小 bug,啟用之後會影響到 cron 的執行。仔細觀察 securesite.module 後發現,它其實有處理 cron bypass。那…為什麼會有問題?因為我在 setting.php 裡面對 $base_url 做了設定,結果就產生錯誤。

    回頭去翻 CVS messages,又發現舊的方法反而比較對:

      // bypass cron.php
      if (!$securesite_enabled || strstr(request_uri(),'cron.php')) {
        return;
      }

    於是手動改掉,並且回報給開發人員,靜待回音。

    更新
    又重新思考一下為什麼開發者會放掉這個方式?很簡單,若是有人使用 http://example.com:88/drupal/whatever?cron.php 類似的 URL 就可以通過該檢查。那,我們從 $base_url 下手如何?

      // bypass cron.php
      $cron_uri = preg_replace('/^(http|https):\/\/[\d\w.:-]*/i','',$base_url.'/cron.php');
      if (!$securesite_enabled || request_uri() == $cron_uri) {
        return;
      }

    改成這樣,就可以取得 $cron_uri 啦!不知道對不對齁?

    更新
    不知道為什麼 mail new password 的功能有問題,造成新密碼無法使用,只好將它停用。