2008-11-15

在固定大小的排版中做圖片選取

之前所用的圖片裁切介面(MooCrop 正方形選取( Square ))
在大尺寸圖片的選取上不是很直覺
明明就只是要裁出一張固定大小的圖
卻暫了大量的版面配置
所以我採用網路地圖的機制做了一個裁切工具
這個想法目前還只是個雛形

展示頁面(Demo Page)

2008-11-03

OWASP 2008 資訊安全年會-心得

年會都快過一個星期了,終於在六日將筆記中的紀錄作了整理,雖然都是觀念上的問題,但如果你以前沒有這些觀念的話,請現在開始養成,因為這些都是很重要的問題。
在開發過程就該考慮安全問題
在系統發展生命週期(System Development Life Cycle[SDLC])中就應該考量安全性問題,甚至是在系統設計階段,一個好的設計可以提升系統安全性,可是一個壞的設計,卻會讓整個系統漏洞百出。
別相信[先求有再求好]這句話,因為錯誤的決策很有可能讓整個網站打掉從練,那怕是開發一年多的系統都會有可能碰到這個問題,不如現在多花 2 小時,未來省 10 小時。
Server 管理介面是否安全
別以為將管理頁面放在別人連不到的地方就可以放心,像 phpMyAdmin 這類的頁面常常被放再公開的網站目錄下,即使是換了名稱還是會有被猜到的可能,所以在公開的網站目錄下避免放置這類的管理介面。
在網站目錄下是否有不應該存在的檔案
常常在上線更新時將整個系統壓縮檔放在網站目錄下,如果不甚檔名被別人 try 出來了,那整個系統的架構都會被看光,甚至 DataBase 的帳號跟密碼都會外洩,所以在網站目錄下的檔案管理對整個安全性是非常重要的。
系統設定是否安全
在 Web Server 或其他 Server 的設定是否有安全性的漏洞,Web Server 會有可以跨目錄的設定,這常常會是 Server 的機密外洩的漏洞之一,而且有許多漏洞是在系統上線後產生的,由於 Server 環境的不同造成漏洞的出現。
相關文章:
Apache 安全設定-1
Apache 安全設定-2
PHP SQL Injection 和 XSS 的偵測程式 和 程式撰寫注意事項 - 2008
便利性與安全性是互相矛盾的
在這次的講習後我感覺這兩件事是互相矛盾,雖然不是絕對的,但為了達到好的便利性,就必須在安全問題做更多的處理跟考量,所以在系統的安全防護是有代價的,勢必會花費更多的資源在安全問題上。
互動式網站的漏洞是必然的
只要是互動式網站就會有漏洞,不管是系統上或者是個人資料的處理,或多或少都會有漏洞的存在。
新的技術必定伴隨著新的安全問題
新的技術尚未經過時間的考驗,所以必然會存在未被發現的漏洞,在目前的許多新軟體都有這樣的狀況,甚至是軟體 Update 之後又出現新的漏洞。
個人資料外流得可能性?
網站沒有 100% 的安全機制,與其期望對方的網站系統,不如做好自我保護,別將太過私密的資料放在網路上,因為那個風險實在太高了,那怕是 0.01% 的可能,因為只要過了那唯一的防線後就是海闊天空了,資料就會很快的被散播出去,很帥的事,這份資料就會被備份一百份或一千份,甚至更多。
別忽視安全性測試
人的能力是有限的,總會疏忽一些事情造成一些漏洞的出現,所以還是需要程式去檢查是否有漏洞的存在,雖然光靠[黑箱測試]及[白箱測試]可以找出大部分的漏洞,仍然會有程式找不到的錯誤,還是需要人為去校定。
別太相信自己的能力
在太過於自負的時候,人總會看不到潛在的問題,當你覺得這是安全的時候,請記得查證你的作法及環節是不是會有漏洞的出現。

2008-11-01

用 CSS 實現 blogger [繼續閱讀]的方法

雖然與白花花所寫的在blogger實現繼續閱讀的作法是用同樣的方法,但為了增加使用上的彈性,我做了不一樣的基本設定,讓任何 HTML Tag 只要套用 fullpost 這個 ClassName 就可以在部分閱覽中隱藏。 在 <b:skin> 中的 CSS 設定:
/*部分隱藏樣式*/
.posts-index .fullpost{
  display:none;
}
在詳細樣版中找到 <data:post.body/> 這行,並修改成以下形式:
<div expr:class='"post-body
     entry-content
     posts-"+data:blog.pageType'>
  <data:post.body/>
  <div style='clear: both;'/> <!-- clear for photos floats -->
<!-- 非單篇顯示時,顯示繼續閱讀 -->
<b:if cond='data:blog.pageType != "item"'>
 <p>
 <b:if cond='data:post.link'>
   <a expr:href='data:post.link'>繼續閱讀...</a>
 <b:else/>
   <a expr:href='data:post.url'>繼續閱讀...</a>
 </b:if>
 </p>
</b:if>
</div>