問題
最近 Node.js 的程式被 Checkmarx 掃出有 Server_Dos_by_Loop Issue.
依 Checkmarx 的建議需要加上迴圈數量的限制,例如,
1 | const MAX_ITERATIONS = 120; |
但依建議這樣子改,還是會噴一樣的問題。
而且有的還會改噴Unchecked_Input_For_Loop_Condition的 Issue。
解法
後來同事 Jer 建議直接將限制數放在 Loop 中,
在裡面去判斷大小,再跳出迴圈,就可以解掉 Checkmarx 亂噴的問題。
一開始的程式如下,
1 | replaceNullToEmpty(data) { |
改成取最小的迴圈數,
1 | replaceNullToEmpty(data) { |
Checkmarx 還是噴 ….
改成先用 限制迴圈 ,再到 Loop 中判斷要不要跳出去,如下,
1 | replaceNullToEmpty(data) { |
一筆難寫兩個字,一心難帶兩個人: 一心不可二用,凡事要專注一致。