[問題] 寫大量沒有安全漏洞的C代碼很困難

看板C_and_CPP (C/C++)作者 (達)時間3年前 (2020/07/05 17:11), 3年前編輯推噓12(12045)
留言57則, 12人參與, 3年前最新討論串1/1
豐富的經驗告訴我們,要編寫大量沒有安全漏洞的C代碼是非常困難的,幾乎是不可能的 。” https://www.chainnews.com/zh-hant/articles/087238150806.htm 請問上述情形 在使用現代先進的IDE 情況仍然是這樣嗎? 自己對C語言只有很粗淺的練習過教學題目而已 thanks -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 107.161.88.23 (美國) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1593940314.A.1E3.html

07/05 18:12, 3年前 , 1F
07/05 18:12, 1F

07/05 20:29, 3年前 , 2F
是說這位在板上問問題都問了七年了還說是只做過練習題的新
07/05 20:29, 2F

07/05 20:29, 3年前 , 3F
手……XD
07/05 20:29, 3F
業餘好玩啊 還蠻喜歡看程式設計的新聞和討論文 學業和工作上沒有程式需求

07/05 20:53, 3年前 , 4F
雲編程師
07/05 20:53, 4F

07/05 22:53, 3年前 , 5F
我都改寫 rust (欸
07/05 22:53, 5F

07/05 23:31, 3年前 , 6F
珍惜生命,遠離C/C++
07/05 23:31, 6F

07/06 00:58, 3年前 , 7F
是有形式化驗證拉......不過我也不懂
07/06 00:58, 7F

07/06 04:20, 3年前 , 8F
rust
07/06 04:20, 8F

07/06 09:46, 3年前 , 9F
rust學起來
07/06 09:46, 9F

07/06 13:26, 3年前 , 10F
這是你的問題 選C的理由從來都不是安全性
07/06 13:26, 10F

07/06 13:26, 3年前 , 11F
要漏洞少就應該要選rust
07/06 13:26, 11F
※ 編輯: dharma (107.161.88.23 美國), 07/06/2020 17:00:10

07/06 21:39, 3年前 , 12F
你會發現在這個板問問題得到的答案都是改寫別的語言
07/06 21:39, 12F

07/06 21:49, 3年前 , 13F
確保安全性不從語言層面做的話就得要寫的人下手, 可
07/06 21:49, 13F

07/06 21:49, 3年前 , 14F
以參考 CERT/MISRA, 只是在工具使用還有人員訓練做 t
07/06 21:49, 14F

07/06 21:49, 3年前 , 15F
rade-off 而已
07/06 21:49, 15F

07/06 21:55, 3年前 , 16F
後來你會發現與其花錢買商用軟體檢查漏洞, 叫員工讀
07/06 21:55, 16F

07/06 21:56, 3年前 , 17F
熟語言標準, 遵守某種寫碼規範, 總總措施還不如直接
07/06 21:56, 17F

07/06 21:56, 3年前 , 18F
改用不容易犯錯的語言成本來得低廉
07/06 21:56, 18F

07/07 08:35, 3年前 , 19F
C不可能啦 void*根本是漏洞製造機 C++還有點機會
07/07 08:35, 19F

07/07 23:29, 3年前 , 20F
聽說之前有人把一個已經廣泛使用超過十年的 c lib(加密
07/07 23:29, 20F

07/07 23:29, 3年前 , 21F
用的 lib),用 Agda 重寫(要證明語意想等性的),結果
07/07 23:29, 21F

07/07 23:29, 3年前 , 22F
還是發現幾十個 bug...
07/07 23:29, 22F

07/11 17:11, 3年前 , 23F
寫出有漏洞的程式是你的問題還是語言的問題??
07/11 17:11, 23F

07/11 17:12, 3年前 , 24F
這是你該搞清楚的
07/11 17:12, 24F

07/11 21:29, 3年前 , 25F
應該都有問題吧 樓上
07/11 21:29, 25F

07/11 21:31, 3年前 , 26F
這就像問走路跌倒是你的問題還是鞋子的問題一樣
07/11 21:31, 26F

07/11 21:31, 3年前 , 27F
非得只能是其中一邊的問題嗎?
07/11 21:31, 27F

07/11 22:28, 3年前 , 28F
以專案管理的角度來說:決定要穿這鞋子也是你的問題
07/11 22:28, 28F

07/11 22:34, 3年前 , 29F
事實就是雖然成為程式語言, 但會真的當語言學習的人
07/11 22:34, 29F

07/11 22:34, 3年前 , 30F
並不多, 所以寫出來的東西都像小朋友用積木兜出來的,
07/11 22:34, 30F

07/11 22:34, 3年前 , 31F
看寫法就知道一定會出 bug
07/11 22:34, 31F

07/13 07:15, 3年前 , 32F
樓上這麼說意思是對於所有問題,一定可以找到至少一種完
07/13 07:15, 32F

07/13 07:15, 3年前 , 33F
全合適的語言囉?
07/13 07:15, 33F

07/13 07:31, 3年前 , 34F
在我看來反而是因為都當成語言來學習「能溝通(用)就好
07/13 07:31, 34F

07/13 07:31, 3年前 , 35F
」,才會這樣
07/13 07:31, 35F

07/13 07:31, 3年前 , 36F
語言(有限符號的集合)只是一個程式語言的很小一部分,
07/13 07:31, 36F

07/13 07:31, 3年前 , 37F
只是那個形式系統的長相而已
07/13 07:31, 37F

07/13 09:29, 3年前 , 38F
語法->語意->語用, 只到第一層, 對第二層一知半解,
07/13 09:29, 38F

07/13 09:29, 3年前 , 39F
這就是你說的「能溝通就好」. 不過因為語言的複雜度,
07/13 09:29, 39F

07/13 09:29, 3年前 , 40F
這個議題已經和一般開發者沒什麼關係了
07/13 09:29, 40F

07/13 11:20, 3年前 , 41F
... 身為開發者不懂自己寫的東西的意思,會比專案管理選
07/13 11:20, 41F

07/13 11:20, 3年前 , 42F
錯鞋還要好嗎,我是不太懂啦
07/13 11:20, 42F

07/13 12:01, 3年前 , 43F
我的意思是, 問題的核心在於開發者不懂自己在寫什麼,
07/13 12:01, 43F

07/13 12:01, 3年前 , 44F
而不是有沒有選對語言, 選錯語言還是可以做對事情,
07/13 12:01, 44F

07/13 12:01, 3年前 , 45F
只是付出成本比較高. 所以一開始用語言來評斷就是錯
07/13 12:01, 45F

07/13 12:01, 3年前 , 46F
的立論, 終究是人的問題
07/13 12:01, 46F

07/13 12:54, 3年前 , 47F
其實technical stack的選擇終究是設計師會碰到的問題
07/13 12:54, 47F

07/13 12:55, 3年前 , 48F
年資成長下,「對於工具的選擇」也是技術的一部分了
07/13 12:55, 48F

07/13 12:55, 3年前 , 49F
套句我剛講的「void*根本是漏洞製造機」而要避開這漏洞
07/13 12:55, 49F

07/13 12:56, 3年前 , 50F
就得傳入長度,長度又要考慮int夠不夠?會不會因為pagin
07/13 12:56, 50F

07/13 12:56, 3年前 , 51F
g產生效能問題?得花的精力真的有點多 XD
07/13 12:56, 51F

07/13 12:56, 3年前 , 52F
前面講的C沒exception該怎麼辦?error code?可是這寫法
07/13 12:56, 52F

07/13 12:57, 3年前 , 53F
又好痛苦?還是每個函數都加一個*int進parameter當err?
07/13 12:57, 53F

07/13 12:58, 3年前 , 54F
如果不是真的在這領域鑽很深非要他不可,我是覺得
07/13 12:58, 54F

07/13 12:58, 3年前 , 55F
技術的選擇也是經驗的一部分,放下比較好 XD
07/13 12:58, 55F

07/13 12:59, 3年前 , 56F
我不知道C是不是戰鬥機,但是路上還有很多交通工具可以
07/13 12:59, 56F

07/13 12:59, 3年前 , 57F
選擇,我並不想開台F-35去小七買個晚餐回來吃 :3
07/13 12:59, 57F
文章代碼(AID): #1V0PbQ7Z (C_and_CPP)
文章代碼(AID): #1V0PbQ7Z (C_and_CPP)