2013年6月2日

Blogger 私密文章的偽裝方案﹍隱藏文章的工具

A+

(Pic from: bpm-ingenuity.com)
從別的部落格平台搬到 Blogger 的站長,應該有不少會懷念「文章上鎖」的功能,這在其他平台是常見的設計,但不知為何 Blogger 就是不開放?也許是 Google 以搜尋引擎起家,不希望大家都把文章上鎖,那麼機器人就沒文章可爬了吧!

本文要提供的語法及技巧,可讓需要私密文章功能的站長,達到隱藏文章的目的,讓所有訪客都看不到特定文章的內容,只有以站長身份才看得到。

這篇文章的概念與「讓 Blogger 有快速載入的展示(DEMO)頁面」相同,都是從文章網址下手,只要自訂文章網址就能產生私密文章,以下說明如何安裝此功能。


2013.7.11 公告

本篇的程式碼可讓私密文章只有站長一人可看到。如果有給特定人看私密文章的需求(經由給密碼的方式),那麼請安裝更新版的程式碼:




一、安裝程式碼

在修改範本之前,如果第一次安裝本站工具的讀者,建議先閱讀「備份範本的訣竅」系列文章。

接著請見以下的程式碼──


1. 首先到後台 → 範本 → 編輯 HTML → 找到字串 <body ....> 這一行,在其後面一行,插入 A~M 行。

2. 接著搜尋類似以下的字串──

<b:if cond='data:post.isDateStart'>
&lt;div class=&quot;date-outer&quot;&gt;
</b:if>

小心不要找錯了,上面的第二行有 "date-outer" 字串。
找到這三行後,在其下面一行,插入 O~U 行。

3. 不急著存檔,先改幾個參數,請對照程式碼的行號──

H:紅字 "prv-" 字串可改為自訂字串,這代表文章網址以 "prv-" 字串開頭的文章,會自動成為「私密文章」。

G:如果部落格有自己設計「404 錯誤頁面」的話,請將網站的「404 頁面網址」填入此行的雙引號內;如果沒有的話,請保持原狀即可。

B:如果範本中已經裝過 jquery (可搜尋看看有沒有 "jquery" 的字串),那麼可刪除此行。

以上完成後,即可存檔,接下來請看使用方式。



二、簡便的使用方式

過去曾有部落客曾寫出「文章加密」的方式來讓 Blogger 文章上鎖,其缺點是使用方法稍嫌繁複,每篇文章得重複「複製」、「貼上」的過程,還得記住密碼(密碼忘了可就沒人打得開文章)。

本文提供的使用方式很簡單,如同「讓 Blogger 有快速載入的展示(DEMO)頁面」的原理一樣──



借用該篇文章的圖,只要在文章編輯的頁面,於「文章設定」→「連結」→「自訂永久連結」→ 輸入自訂字串開頭的網址。

以本文為例,如果在「一、安裝程式碼」設定的字串為 "prv-",上圖的文章網址字串 "DEMO-toc-date" 改成 "prv-toc-date",那麼這篇文章就能成為 "私密文章",只有站長能看到該篇文章。



三、其他必要動作

1. 建議移除「網誌存檔」小工具

本文的程式碼,無法處理「網誌存檔」這個小工具的文章,這代表網站上有裝「網誌存檔」時,訪客有機會看到私密文章,因此建議移除「網誌存檔」這個小工具。

如果需要依日期排列的文章列表功能,可改安裝「動態檢視 Blogger 文章列表」→「四、個別安裝」,來安裝依日期排列的文章列表。


2. 文章日期不要設太近

本文的程式碼,當偵測到非站長身份,且在 "首頁" 或 "標籤索引" 頁面時,會將私密文章刪除,讓其不顯示。

不過當部落格安裝了「最新文章」這樣的小工具時,在首頁會產生弔詭的情形──某篇私密文章會出現在「最新文章」小工具的列表,但在首頁又看不到這篇文章。

因此為了不讓訪客覺得奇怪,私密文章的日期建議設定地古早一點,讓其不要出現在近期的「最新文章」。


3. 設定「繼續閱讀」及「網站資訊提供」

如果部落格沒開放 RSS 訂閱的話,那麼可以略過此部分的內容;不過如果開放 RSS 訂閱的話,那麼私密文章就有可能被看到。因此必須設定以下兩件事才能避免:

A. 繼續閱讀:



如上圖,私密文章的內容,請放在「繼續閱讀」標示的後面。


B. 網站資訊提供



如上圖,請到後台 → 設定 → 其他 → 允許網誌資訊提供 → 改為「直到繼續閱讀標示為止



四、測試效果與小結

以上動作都完成後,可以設定幾篇測試用的私密文章,然後登入站長身份(登入Google帳號)、或用訪客身份(登出Google帳號)分別測試效果。

以訪客身份唯一能進入私密文章的管道,是從「最新文章」小工具,不過當訪客點擊私密文章後,系統馬上會將網址導向「404錯誤頁面」,讓訪客誤以為此篇文章已刪除,因此私密文章的內容是不會被看到的。

跟「讓 Blogger 有快速載入的展示(DEMO)頁面」一樣,一開始的設定動作比較麻煩一些,不過以後只要設定文章網址後,就能在 Blogger 自動產生私密文章,這算是比較簡單、有效率的方案了。


2013.6.14 補充

五、快速列出網站私密文章的方法

1. 建議先在 Blogger 安裝「Google 自訂搜尋」,搜尋速度很快。

2. 假設私密文章設定的字串為 "prv-",那麼利用這個「Google 自訂搜尋」小工具來搜尋字串 "prv-",就能列出所有的私密文章。不過前提是,這幾篇私密文章要能先被 Google 搜尋引擎收錄。

3. 例如在 +Ken Lo 的網站「K.one Dreamhouse」進行搜尋,就可看到以下兩篇私密文章──



4. 感謝 ken 提供測試效果,當然以上兩篇只是用來測試的私密文章。不過為了避免被有心人士知道有私密文章,真的要在 Blogger 藏私密文章的話,最好將預設字串 "prv-" 改成只有自己知道的字串,會比較安全。



私密文章相關系列:

7 則留言:

  1. 我想問問,這功能是只限於文章?
    能否連網頁都能夠這樣加密?

    回覆刪除
  2. <6349920517954823532>(以上內容請勿刪除,從括號之後開始留言)如果網頁能自訂網址的話,或許可以吧~
    BTW,這個功能只有"偽裝",沒有"加密"喔!

    回覆刪除
  3. 回報問題:
    原來在相關文章裡會看見這些偽裝文章 O.O

    回覆刪除
  4. <350502796229280712>(以上內容請勿刪除,從括號之後開始留言)這樣的話,因為你裝的是本站的「相關文章」,會列出相同標籤的相關文章,那麼只要
    私密文章使用跟一般文章不同的標籤即可。

    回覆刪除
  5. <4934917446251746721>(以上內容請勿刪除,從括號之後開始留言)THX~ ^^

    回覆刪除
  6. 版主你好,我之前為了加密文章所以選擇了你在文章中提到的複製貼上的繁雜步驟
    前幾日想回顧文章意外發現輸入密碼都沒有作用,才發現是自己當初忘了複製以下這串語法
    script src="http://m017.googlecode.com/files/encrypt-blog-posts.js" charset="utf-8" type="text/javascript"></script
    於是選一篇文章重新複製張貼,這時文章可以順利解開看到內容
    於是我非常開心的將這串語法重新複製貼上那些被我鎖起來的文章
    可是就在剛才,我發現我有一部分的文章在輸入密碼後竟然完全變成亂碼
    (我知道密碼錯誤會有亂碼產生,但是我發誓我的密碼完全正確)
    就連前幾日我第一個拿來測試的文章打開也是亂碼
    在此想請教版主,有沒有方法可以救回那些文章,那可是我從2005年累積至次的紀錄
    之前因為無名關閉,還耗費心力一篇一篇的搬到blogger
    萬萬沒想到這個加密的過程會讓我遺失這些珍貴的東西
    我上網想解碼這些亂碼,但不知道這些亂碼是屬於哪一種
    拜託版主了,這是我最後一絲的希望,希望我的文章還有救,拜託拜託!

    回覆刪除
  7. <376589489400789607>(以上內容請勿刪除,從括號之後開始留言)你好,基本上那個程式不是我寫的,我看發佈那個程式的網站,他的部落格也把文章都刪光了。

    從你的敘述,似乎是部分文章可解密、部分文章不能解密?如果是這樣的話,或許經由一個機制,可找出是什麼問題,不過不保證成功就是了。由於這個 case 牽涉到機密性,當作個人諮詢處理,請從 http://www.wfublog.com/2013/06/service-suggest-cooperation.html → 文末的聯絡表單與我聯繫此事。

    回覆刪除

張貼留言注意事項:

◎ 勾選「通知我」可收到後續回覆的mail!
提問請附網址、詳細描述狀況,如提供的資訊不足,則無法回覆。
◎ 請在相關文章留言,與文章無關的主題請至「Blogger 中文論壇」。
◎ 若詢問 CSS 、非官方範本問題、或貴站為商業網站 ,請參考「本站諮詢頁面」→「1. 諮詢服務」
◎ 若留言要輸入語法,"<"、">"這兩個符號請用其他符號代替,否則語法會消失!
◎ 若發現留言不見了,通常是因為 "複製貼上" 的內容常被系統判定為垃圾留言,請不用擔心,我會定期將留言恢復。
◎ 本站「已關閉自刪留言功能」。