看板 C_and_CPP 關於我們 聯絡資訊
豐富的經驗告訴我們,要編寫大量沒有安全漏洞的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
nh60211as: 對 07/05 18:12
ddavid: 是說這位在板上問問題都問了七年了還說是只做過練習題的新 07/05 20:29
ddavid: 手……XD 07/05 20:29
業餘好玩啊 還蠻喜歡看程式設計的新聞和討論文 學業和工作上沒有程式需求
galic: 雲編程師 07/05 20:53
lc85301: 我都改寫 rust (欸 07/05 22:53
atrix: 珍惜生命,遠離C/C++ 07/05 23:31
wei115: 是有形式化驗證拉......不過我也不懂 07/06 00:58
CoNsTaR: rust 07/06 04:20
TitanEric: rust學起來 07/06 09:46
KanzakiHAria: 這是你的問題 選C的理由從來都不是安全性 07/06 13:26
KanzakiHAria: 要漏洞少就應該要選rust 07/06 13:26
※ 編輯: dharma (107.161.88.23 美國), 07/06/2020 17:00:10
loveme00835: 你會發現在這個板問問題得到的答案都是改寫別的語言 07/06 21:39
loveme00835: 確保安全性不從語言層面做的話就得要寫的人下手, 可 07/06 21:49
loveme00835: 以參考 CERT/MISRA, 只是在工具使用還有人員訓練做 t 07/06 21:49
loveme00835: rade-off 而已 07/06 21:49
loveme00835: 後來你會發現與其花錢買商用軟體檢查漏洞, 叫員工讀 07/06 21:55
loveme00835: 熟語言標準, 遵守某種寫碼規範, 總總措施還不如直接 07/06 21:56
loveme00835: 改用不容易犯錯的語言成本來得低廉 07/06 21:56
Killercat: C不可能啦 void*根本是漏洞製造機 C++還有點機會 07/07 08:35
CoNsTaR: 聽說之前有人把一個已經廣泛使用超過十年的 c lib(加密 07/07 23:29
CoNsTaR: 用的 lib),用 Agda 重寫(要證明語意想等性的),結果 07/07 23:29
CoNsTaR: 還是發現幾十個 bug... 07/07 23:29
final01: 寫出有漏洞的程式是你的問題還是語言的問題?? 07/11 17:11
final01: 這是你該搞清楚的 07/11 17:12
CoNsTaR: 應該都有問題吧 樓上 07/11 21:29
CoNsTaR: 這就像問走路跌倒是你的問題還是鞋子的問題一樣 07/11 21:31
CoNsTaR: 非得只能是其中一邊的問題嗎? 07/11 21:31
loveme00835: 以專案管理的角度來說:決定要穿這鞋子也是你的問題 07/11 22:28
loveme00835: 事實就是雖然成為程式語言, 但會真的當語言學習的人 07/11 22:34
loveme00835: 並不多, 所以寫出來的東西都像小朋友用積木兜出來的, 07/11 22:34
loveme00835: 看寫法就知道一定會出 bug 07/11 22:34
CoNsTaR: 樓上這麼說意思是對於所有問題,一定可以找到至少一種完 07/13 07:15
CoNsTaR: 全合適的語言囉? 07/13 07:15
CoNsTaR: 在我看來反而是因為都當成語言來學習「能溝通(用)就好 07/13 07:31
CoNsTaR: 」,才會這樣 07/13 07:31
CoNsTaR: 語言(有限符號的集合)只是一個程式語言的很小一部分, 07/13 07:31
CoNsTaR: 只是那個形式系統的長相而已 07/13 07:31
loveme00835: 語法->語意->語用, 只到第一層, 對第二層一知半解, 07/13 09:29
loveme00835: 這就是你說的「能溝通就好」. 不過因為語言的複雜度, 07/13 09:29
loveme00835: 這個議題已經和一般開發者沒什麼關係了 07/13 09:29
CoNsTaR: ... 身為開發者不懂自己寫的東西的意思,會比專案管理選 07/13 11:20
CoNsTaR: 錯鞋還要好嗎,我是不太懂啦 07/13 11:20
loveme00835: 我的意思是, 問題的核心在於開發者不懂自己在寫什麼, 07/13 12:01
loveme00835: 而不是有沒有選對語言, 選錯語言還是可以做對事情, 07/13 12:01
loveme00835: 只是付出成本比較高. 所以一開始用語言來評斷就是錯 07/13 12:01
loveme00835: 的立論, 終究是人的問題 07/13 12:01
Killercat: 其實technical stack的選擇終究是設計師會碰到的問題 07/13 12:54
Killercat: 年資成長下,「對於工具的選擇」也是技術的一部分了 07/13 12:55
Killercat: 套句我剛講的「void*根本是漏洞製造機」而要避開這漏洞 07/13 12:55
Killercat: 就得傳入長度,長度又要考慮int夠不夠?會不會因為pagin 07/13 12:56
Killercat: g產生效能問題?得花的精力真的有點多 XD 07/13 12:56
Killercat: 前面講的C沒exception該怎麼辦?error code?可是這寫法 07/13 12:56
Killercat: 又好痛苦?還是每個函數都加一個*int進parameter當err? 07/13 12:57
Killercat: 如果不是真的在這領域鑽很深非要他不可,我是覺得 07/13 12:58
Killercat: 技術的選擇也是經驗的一部分,放下比較好 XD 07/13 12:58
Killercat: 我不知道C是不是戰鬥機,但是路上還有很多交通工具可以 07/13 12:59
Killercat: 選擇,我並不想開台F-35去小七買個晚餐回來吃 :3 07/13 12:59