將 .htaccess 檔案改名

.htaccess 可以改變很多網站的設定,這也造成一個安全性的問題,因為有心人都會估計到網站可能會用 .htaccess,如果未有對 .htaccess 進行權限設定,所有人都可以瀏覽 .htaccess 的內容。除了變更權限外,也可以設定 Apache 讀取其他檔案名稱,那麼其他人便不會那麼容易知道設定檔的位置,但這個方法需要編輯 httpd.conf 才可以實現。 在 Apache 建立的 virtualhost 裡面,只要加入 “AccessFileName” 便可以自訂設定檔的名稱,例如:AccessFileName .htaccess.hidden以上語句會指定 .htaccess.hidden 代替原本的 .htaccess 檔案。

PHP 及 .htaccess 實現阻擋 ip

如果發現某些 ip 的用戶在網站上搗亂,可以將他/她的 ip 封殺,這不但可以停止搗亂行為,也可以減少主機的資源浪費及頻寬,以下介紹透過 PHP 及 Apache 的 .htaccess 的實現方法。PHP 如果要阻擋的 ip 不多,可以直接加上以下一行到程式頂端: 以上程式碼很簡單,只要檢查訪客的 ip 是否 192.168.1.101,如果正確則結束程式罷了,但這樣的問題是當要阻擋的 ip 數量增多時,需要每次都在以上程式碼上加上 ip,要維護很不方便。以下的方法是使用文字檔儲存了要阻擋的 ip,每一行一筆資料,檔案為 ban_ip_list.dat,實現方法如下:以上第一行是從 ban_ip_list.dat 讀入每一行資料,並儲存到 $banned 陣列內,然後用 in_array() 檢查訪客的 ip …

iPhone 備份與還原

上星期五中午就透過 DHL 收到 iPhone 6,晚上便立即從舊 iPhone 5 過 data,第一次備份 iPhone,先來紀錄一下。我沒有用 iCloud 而是用 iTunes 直接備份到電腦內,過程超級簡單:備份 1. 將舊 iPhone 接上電腦,並開啟 iTunes。 2. 在備份一欄入面,選擇 “這部電腦”,意思是將備份檔案儲存在電腦上面,按 “立即備份” 便會開始制作備份,這時會彈出是否同步備份 App, 我是選擇備份 App。我大概用了 12GB 容量,大約用了 10 …

透過 SSH 傳送檔案

在兩台主機間傳送檔案時,用 ftp 指令很方便,但另一個較為安全的做法是透過 SSH 來傳送,而且使用上十分簡單 ,只要使用 scp 指令則可。假如你要把 /home/samtang/ 目錄下所有 .php 副檔名的檔案,傳送到主機 192.168.1.100 的 /var/www/ 下面,登入名稱是 user1,可以輸入:scp /home/samtang/*.php user1@192.168.1.100:/var/www/然後系統會詢問你連接密碼,輸入正確密碼後就可以傳送了,但當然用來傳送的帳號需要有合法權限在遠端目錄寫入資料。

匯出 PuTTY 設定備份

每次重新安裝 Windows 後,其中一個必裝的軟件是 PuTTY,但每次也要將自己每一台主機加上去實在很麻煩,以下是匯出 PuTTY 設定備份的方法:1. 按 “開始” -> “執行”,然後輸入 “RegEdt32” 並按確定。 2. 移到 HKEY_CURRENT_USER -> Software -> SimonTatham 3. 選擇 SimonTatham 後按 “檔案” -> “匯出”。 4. 儲存好匯出的登錄檔。 5. 將登錄檔放到需要匯入設定的電腦上,並 …

檢查及修復檔案系統指令 — e2fsck

在 Linux 裡面有一個 e2fsck 的指令,可以檢查及修復檔案系統。它的參數包括有:-a: 檢查 partition,如發現問題會自動修復。 -b: 設定 superblock 位置。 -B size: 指定 size 作為區塊大小。 -c: 檢查 partition 是否有壞軌。 -C file: 將檢查結果儲存到 file。 -d: 輸出 e2fsck debug 結果。 -f: …

iPhone 6 及 iPhone 6 Plus 有貨了

今日看到網上新聞說 Apple Store 可以買 iPhone 6,對於自用又不想每天搶著訂購很有用,我自己即時訂了一部 iPhone 6 64GB 太空灰版,下單時顯示 3-5 有貨,預計下星期到手。http://store.apple.com/hk-zh/buy-iphone/iphone6

MySQL 的 Safe Update Mode

最近要更新 MySQL 資料表內其中一個欄位的所有資料,只是用以下這個 SQL 指令:UPDATE table_name SET field_name=0;有個 MySQL 回傳的錯誤訊息為:“You are using safe update mode and you tried to update a table without a WHERE clause that uses a KEY …

MySQL 字串連接

有時我們需要將不同欄位的資料連接,或者在現在的資料後面加入內容,當然可以先從 MySQL 匯出資料,再把連接好的字串更新到 MySQL,但這未免太麻煩,另一個較方便的方法是借助 CONCAT() 實現,CONCAT() 語法為:CONCAT(string_1, string_2, string_3, …)MySQL 的 CONCAT() 支援多個字串連接,但在 Oracle 裡面只可以有兩個參數,要實現多個字串連接可以用 ‘||’ 來實現。以下是 CONCAT() 的使用實例:update table_name set email=CONCAT(email, ‘:me@email.com’) where id=’1′;以上 SQL 語法會更新 table_name 資料表的 email …