Showing posts with label 技術. Show all posts
Showing posts with label 技術. Show all posts

Friday, October 26, 2007

工程師的直覺

像我這種人,或許是真的累積了一些經驗,也或許是運氣好,我發現,有時候直覺還真的蠻準的。

昨天有個客戶,因為有效能的問題,大批人馬被抓去開會,我則是臨時被抓去的,出發前都還搞不清楚要去做什麼。到了那裡,聽了一下所有人對問題的描述,我大概有抓到頭緒了。只不過,因為我只是小小配角,也不好隨便發言,所以只抓了一個適當的時機,提出一個我想問的小問題。得到的回答,聽得出漏洞,但我也不好趕盡殺絕,畢竟我也寫過程式,我想他們應該聽得出我實際想要講的東西才對。沒想到,事後我才知道,我提出的那個問題,其實前一週原廠工程師進行分析的時候,也有提出類似的建議。
(( 其實聽到這個心裡還蠻得意的呢,我事先並不知道已經有找原廠提過建議了,我只是憑直覺看到我有疑問的部份而已... ))

當天還有一個狀況,是 database 裡面多了三個莫名其妙的 table,沒有人承認是他建的。看了一下 table 的內容,是硬碟的 C槽下的檔案內容。這很像 sql injection 啊~~ 我講得很小聲,但客戶找來的程式開發廠商還是聽到了,他們也當場回應說先前就有遇到過這問題,程式已經改過了,現在已經都改好了,所以不會是這個問題。不過,我心裡還是充滿疑惑就是了。

回到公司後,針對那三個 table,我們有同事一口咬定一定是那個廠商自己建了但是忘記了,或者是那個廠商裝了什麼軟體,然後是軟體去建的。但是,我總還是覺得很像 sql injection啊。後來我還連到客戶的網站上去,隨便找了幾個可以輸入資料的地方 try try 看,原本還蠻希望我可以試出什麼來,這樣就有證據了,可是試不出來,於是放棄,想說明天有空再來試好了。

第二天進公司,就聽說有幾個同事整晚待在客戶那,帶著資安防護廠商的顧問,在客戶那裡查問題查了整晚。其中一個同事早上進公司後,我問了一下狀況,沒想到,的的確確就是 sql injection 啊!!! 而且,問題就是出在那三個怪 table 啊!!! 他們最後找到的有問題的那支程式,剛好是我前一天沒玩到的。

沒想到,沒想到。這證明了我的直覺還是蠻準確的,如果我能依據我的直覺繼續研究下去,說不定更早就能發現問題。只不過我累了,想回家了,所以就收拾東西下班了。:p

有時候真的要對自己有信心才對啊~~~ 只不過,如果讓自己的直覺能夠在最短的時間內變成是有說服力的東西,這應該是我還有待加強的地方啊。

--------------------------------------------------------------------------------------------
附註說明:
sql injection 是一種利用網頁程式上的漏洞所進行的駭客攻擊行為。有些網頁若是寫得不夠完善,容易讓人經由正常的管道來進行一些動作,像是查詢一些機密資料,甚至是修改資料、刪除資料,嚴重的話,如果真的該限制的都沒限制,還可能可以進行一些破壞性的指令,像是 format 之類的。google 隨便查一下,可以查到很多相關的資訊。

寫過程式的人應該都知道,丟到後端的 sql statement 一般來講都是用字串組起來的。sql injection 其實就是鑽程式的漏洞,這些被輸入的字串若沒有被判斷輸入的正確性,則很容易被人填入一些奇奇怪怪的東西,來取得一些他不該取得的資訊。當然,database 端的權限設定和控管也很重要,適當的權限控管也能夠讓系統在這種型態的攻擊下,可以讓傷害減到最小。不過,這已經是很技術面的東西了,就不在這裡多做討論囉。

Friday, June 08, 2007

網頁的 autosave 功能

最近,我發現,不管是這裡還是樂多,在 post 新文章的頁面,都新增了 autosave 的功能。每隔一段時間,就會看到畫面上告訴你說在幾點幾分已經幫你存檔了。

這件事真的是有夠神奇的耶,我研究了一下原始檔,也看不出是怎麼做的。(如果這樣就被我看出,這programmer 的程式也寫得太差了點吧) 令我感到很佩服的是,我明明有看到它有連線的動作,我也看到畫面上 autosave 的時間一直會變動,但是,對於我正在打的文字,或是正在執行的動作,卻一點影響也沒有。

想到當年我配合 sales 去客戶那邊說明產品功能,客戶最不能理解的,就是,為什麼你們的東西沒有自動存檔功能啊? 在 word 裡打都有自動存檔功能啊? 當時我很努力地說明 web 畫面和 client 端軟體的不同,也很努力地告知如果真的要自動存檔,可以做,但是會影響到使用,也會影響效能。客戶就這樣勉強相信了我說的話,沒有再堅持一定要有自動存檔功能。

所以,當我發現這裡有這種功能的時候,覺得好神奇喔~~~ 真想知道是怎麼做的~~~ 因為,就我有限的知識來說,這 autosave,是可以在網頁上用 javascript 去設定時間,每隔一陣子就去做 form 的 submit。可是,問題就是,form 的 submit,就算 submit 之後導回原頁面,user 也會有感覺啊~~~

我來去查看看能不能找到相關資料好了,還是誰可以告訴我背後的原理啊?? 我真的是太好奇了~~~

Monday, April 30, 2007

在Excel裡複製格式到多個儲存格

我想要找這樣的功能找好久了,結果今天實在是忍不住,於是上 google 去查了一下,沒想到很容易就查到了...... 真是笨......

應該大家都知道,在 word/excel 裡,要複製格式的話,是要按那個油漆刷的 icon:


但是,我每次想要複製格式到多個儲存格的時候,都要: 1. 點我要的格式的格子 2. 點油漆刷 3. 點標的物的格子。然後就一直重複 1 2 3 1 2 3... 總覺得應該不用這麼笨吧,但又找不到什麼方法,按 ctrl 也不對,按 alt 也不對...

今天靈光一閃,笨喔,不會去 google 查喔。沒想到,好容易就查到了。原來就是在步驟2 的點油漆刷這裡,double-click on 油漆刷,然後步驟3就可以點 n 個格子,一直點到不想點,再按 Esc 跳出就好了。

好吧。如果你早就知道這個方法,你可以笑我笨;如果你還不知道這個方法,趕快學起來,免得被我笑你笨。 :p

Tuesday, January 10, 2006

Blog 網頁的編碼問題

由於因為寫了一篇 post 是有關 Flora 旅遊團的, Flora 小姐也回了一篇 post, 順便在文章裡面帶了個連結. 我看到她給的連結是連到我的 blog 首頁, 於是我問她為什麼不指定 post, 直接帶那篇 post 的 url, 她說直接帶會整篇空白... 尤其是 title 是中文的時候.

於是就開始了我們兩人研究 html 的過程... 哈哈.

我現在都是用 FireFox, 所以根本沒這問題, 但 Flora 說用 IE 會.
所以, 當我改用 IE 試的時候, 發現還真的會這樣哩.
實驗過程大致如下:
1. 拿一篇中文 title 的 url, 用 FireFox 開, OK.
2. 拿同樣的 url, 用 IE 開, 一片空白.
3. 一片空白的 IE, 檢視原始檔發現是有東西的, 而且是完整的. 表示整個 html 是有被完整 load 到 browser 的.
4. 更改 IE 的語系, 把它由繁體中文改成 UTF8, OK.

然後哩, 我們又開始研究, 有勾自動選取, 為什麼它沒辦法判別這網頁是 unicode 呢...
不然, 每次都要去改語系, 也太笨了點吧...
研究了一會兒, Flora 問, 是不是要加這一行, 加了就會認得是 unicode...
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

Flora 實驗了一下, 說加了好像就好了耶...

但是我檢視原始檔的結果, 它本來的網頁就有這行啊....
然後... 啊! 我知道了!
原來是啊, 在 Template 裡面, ${BlogMetaData} 的參數在 title 下面,
而上面講的那個設定, 那一行, 是包在 BlogMetaData 裡面的,
也就是說, 當 Browser 先讀到中文的 title 時, 它就不認得它是 UTF8...
於是乎, 去 template 改一下, 把 ${BlogMetaData} 移到 title 上面...
一切就都正常了呢.

呵呵. 真的是蠻無聊的, 竟然還研究起這個來.
只是啊, 我現在都是用 FireFox, 所以一直都沒有發現有這樣的問題呢.
為什麼人家 FireFox 認識它是 unicode, IE就不認識呢...
這就是微軟比人家遜的地方啦~~ :p

Anyway, 很有實驗精神的結果就是, Flora 把連結改了,
這樣才不會以後越寫越多篇, 別人點連結都不知道是要看什麼.

呵呵呵. 這個實驗過程還蠻有趣的呢.
我好像還是蠻適合回去寫程式的樣子... 哈哈哈...