一個程式設計師不一定要有資安知識,但個好的程式設計師就應該要有。
因為除了把程式寫出來之外,安全性、效能和使用者習慣也都是很重要的。
就像是寫一個能達到同樣目的程式,能用20行解決的就盡量不要用到200行;一個好用介面又漂亮的軟體,一定比同樣功能但難操作的受歡迎;同理,如果程式設計師能寫出又穩定又安全的程式,企業就不會使用只能達到目的,但卻漏洞百出的系統。而這些,都是一個好的程式設計師的價值。
我覺得應該是要具備資安觀念的~
很多程式都是有資安漏洞,所以才會推出更新程式,service pack...
程式的可靠性,方便性,準確性固然是重點,
但資安是防範於未然,有時一發生就會很嚴重,
很多Hacker就是具備資安知識,才會寫一些木馬或釣魚工具.
所以,程式設計師還是要有一些基礎的資安知識.
身為一個程式設計師
使用者的肯定就是最大的保證
讓使用者使用上感到方便,又不失程式的便利性
這是需要經驗的累積的
等累積到一定的經驗之後
使用者的回饋,必定讓人感到窩心..
不懂資安的叫Coder,打字員.
懂資安的才叫Programmer 程設師.
懂整個架構的才叫SA 系統分析師.
資安涵蓋層面遍及所有的IT作業,因此具備一些coding方面的資安知識當然是需要的,尤其現在駭客橫行的時代,若您有資安執照,不是會給客戶多一層信任,自己也多一個發展方向嗎??^^
如果單純就程式設計師, 可以不用具備資安人員的相關知識.
但是未來你不可能一直是程式設計師, 你可能是成為系統分析師,
哪時候, 你還是要具備資安人員的相關知識; 如果你現在有這方
面的知識, 你可以了解系統分析師所考量資安的問題, 可以從中
學習資安的知識.
好的程式不外乎「正確」「效能」「安全」三大要素
要確保這三大要素,到底是誰的責任?
PM? QA? SA? 程式設計師? 資安人員?
當然要了,誰說寫出的程式可以不安全....
寫完程式要做什麼?debug,debug,一直debug,為什麼要debug?就是為了不要讓程式會出錯. 想想有多少危安事件是利用程式的bug造成的???
補充一下我的意見:
資安不只是programmer的責任,我想執行的落實也很重要。
有沒有執行單元、整合、系統等測試?有沒有做code review?有沒有檢查code style是否符合公司規定?有沒有針對程式的循環複雜度跟類別的依賴度作基本的檢查?有沒有檢查測試程式的覆蓋率?
這些流程細節的執行,都會影響程式的品質。(通常這些活動總共大約會占用開發的一半時間,尤其是單元測試。)
我覺得問題其實可以改成「programmer人需要什麼樣的資安知識」
多多少少應該都是需要的吧,例如將資料庫和程式碼放在不同的機器,也是一種資安觀念..
而複雜的可能是還透過架構來切割程式,避免直接暴露內部資訊等..
我覺得要
除了寫好的程式外
還要會翅我保護跟保護他人的
資料跟機密
因為程式除了好用、人性之外
最重要的是安全
因為現在不論有形及無形的詐欺都很猖獗
資安這個議題好大啊,如何能確保有"足夠"的安全性系統?或是用什麼方式可以"驗證"夠安全性的系統?網路資安跟系統資安層面不一樣吧??