[閒聊] pysandbox

作者: fxfxxxfxx (愛麗絲)   2023-01-01 11:25:14
之前發現 DC 有機器人這個功能之後
我就在想,不知道能不能弄一個機器人是你打 python 的程式碼
機器人回傳執行的結果
顯然這要做在沙箱裡,不然太危險了
查了一下發現很久以前 (2012)
有人嘗試單純靠限制一些危險的 feature 來達成
不過最後失敗了
https://github.com/vstinner/pysandbox
比較酷的是他寄信向大家宣佈他這個 project 失敗了
並且他認為是本質上的失敗,沒辦法單純靠限制 feature ,總是會有漏洞
https://lwn.net/Articles/574323/
他的結論是:在沙箱裡面跑 python,而不是反過來
https://lwn.net/Articles/574215/
基本上整個過程就是不斷重複
1. 發現安全漏洞
2. 修補漏洞
3. 為了修補漏洞而限縮能使用的功能 (例如禁止 globals, code 等等)
4. 變得更加不實用
最終連一些很簡單的程式都寫不出來而宣告失敗
看這一整個發展過程還是挺有趣的

Links booklink

Contact Us: admin [ a t ] ucptt.com