[英]Anyway to fix mathjs vulnerabilities
在math.js
中存在漏洞,如果一個人輸入一個不可能的問題1:999999999999999999999
,它將使node.js
進程崩潰,有什么想法嗎?
我用於計算的代碼:
let resp;
try {
resp = math.evaluate(args.join(" "))
} catch (e) {
return message.channel.send('Please provide a **valid** question')
}
例如,如果您在樹莓派上使用 linux,您可以使用子進程來運行計算並限制操作系統上進程的最大 memory
這真的很荒謬,但是如果1:999999999999999999999
是您唯一關心的問題,我注意到 / 不會引起任何問題,但是:會。 因此,您可以將計算中的每個:
替換為/
。
let resp;
try {
resp = math.evaluate(args.join(" ").replace(/:/g, "/"))
} catch (e) {
return message.channel.send('Please provide a **valid** question')
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.