php與資訊安全

之前拿到了一本原文電子書,在講php程式設計與資訊安全,一直都沒有空去看它,最近,把這些本當成催眠書,睡覺之前翻一翻,每次看不到10頁,我就非常想睡,當然我想睡的時候都已經半夜一、二點了,回到正題,目前還在讀第一章,還沒有講到php程式設計要怎麼考量安全性,就在第一章就讓我被打了一記悶棍,怎麼說咧?聽我道來。

開頭就說,為了資訊安全,請不要把你的網站在放寄存主機上,@#$%^&(),真是一記大悶棍,包含本Blog,還有幾個站,資料都是寄存在美國主機上,雖然是不同的供應商,不過都是寄存,先不講主機系統的bug或是維護人員疏忽設定造成的缺陷,書上說,一台主機上面可能會很多個客戶(使用 virtual host),只要一個所有人程試設計有問題,可能就會造成資訊安全上的問題,有可能因為程式設計不良,造成server crash掉,也有可能因為db沒有處理好,被別人透過sql injection的方式拿到網站上所有的資料,當然,他這麼說是對的,不過,也不算完全正確。

這麼說好了,我曾經因為主機當掉,結果網站都上不去,為什麼主機會當掉呢?因為別的站長,在短時間流量爆增,所以整台主機的資源被用完了,最後系統crash掉。當然,行銷的網站更常常是這樣,光我自己流量就爆過一次,因為某個熱門的關鍵字,yhaoo給我相當好的排名,結果在一個小時之內,跑來了6000人次的流量,很短的時間內,流量就把整台主機的步寬吃掉,cpu效能也被用光(20%,連續5分鐘),最後弄到我被停權(暫時),心裡一整個不是玆味蠻爽的,花了24小時才復站。系統無法使用,是違返了資訊安全中的可用性,我認為不算全對的理由如下
第一,資料庫的權限是by account的,不同的account不能互相讀資db。
第二,資料庫很多都有限制存取資料,某些網站寄存商限制每小時不能存取超過20,000次,中型網路業者超過20,000次的存取,說真的非常的簡單。一超過就停權,要弄到當掉,除非上面是放了癢眼圖片或是糜片。
第三,CPU和記憶體也是有限制的,CPU使用率超過20%,連續幾分鐘,帳號就會被自動鎖起來,記憶體可能也只能用個20MB。
第四,至於sql injection、網站病毒的問題,我想應該不會發生,各hosting公司,都有很多的防護機制,常常定期的掃毒,網頁被掛馬(掛木馬)的機率也很低,彼此影響的狀況,不太容易發生。
第五,爆流量這種事情不是常常在發生,如果怕流量爆,就自己租一台獨立主機就好了。
第六,如果我的帳號被停權,並不會影響其他的用戶,要讓主機當掉,其實是不可能的,因為寄存商提供了很多的功能,會自動監控CPU的使用率。

作者有20多年的程式設計經驗,主持過很多中大型的專案開發,校正者(Reviewer),也有很多年程式撰寫和管理的經驗。但是我想,這是他們的經驗,他們所在的公司都是資源比較充足的公司,至於我會不會把網站拿回家我家裡建設呢?答案是==>絕對不會。
為什麼呢?
第一,網站在美國,不用受到台灣政府的一些不必要干擾,當然,我也不會做什麼違法的事,只是我的網路言論自由可以受到比較多的保障。
第二,我租一台共用主機(hostion),才100元美金而以,如果在台灣,哪裡租的到(別跟我說那種幾1500元只能放靜態網頁的方案)?
第三,架在家裡,主機要開24小時,電錢一個月就要一千多了,一年就要一萬多了,可以在美國租一台獨立主機了,而且還不含固定IP線路的費用。
第四,環境問題,美國主機有專業的獨立機房,有備援電力系統和網路系統,在我家開冷氣,又開24小時,我可能會被我爹給電死。
第五,管理問題,我是有能力架主機,也有能力管主機,但是我白天要上班,這個還是交給專業人仕好了。
第六,語言問題,我對老外沒有溝通障礙,所以跟他們講問題和跟對台灣人講問題沒有什麼差別。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *