Skip to Content
Python 技術手冊 第三版
book

Python 技術手冊 第三版

by lex Martelli, Anna Martelli Ravenscroft, Steve Holden
January 2018
Intermediate to advanced content levelIntermediate to advanced
856 pages
17h 17m
Chinese
GoTop Information, Inc.
Content preview from Python 技術手冊 第三版
434
|
13 章 執行的控制
永遠都不要 exec eval 不受信任的程式碼
舊版的 Python 試著提供工具來減低使用
exec
eval
的風險,並以「受限
的執行(restricted execution)」來稱呼它們,但那些工具對上聰明駭客的
高超手法時,永遠都不是完全安全的,而目前版本的 Python 也因此捨棄
了它們。如果你需要防備這種攻擊,就善用你作業系統的防護機制:在分
開的個別行程中執行不受信任的程式碼,並讓它們的權限盡可能受到限制
(研究你的 OS 為此所提供的機制,例如
chroot
setuid
jail
),或是在
分開的、高度受限的虛擬機器中執行不信任的程式碼。要防備「阻斷服務
denial of service)」攻擊,就讓主行程監視分別的行程,並在資源消耗過
度時終止它們。行程(processes)涵蓋於後面的「執行其他程式」中。
不受信任的程式碼對
exec
eval
來說很不安全
函式
exec_with_data
用於不受信任的程式碼時很不安全:
如果你傳入作為引數
user_code_string
的字串是以你無法
完全
信任的方式取得的,那麼它可能造成的損害,基本上
是沒有限制的。很遺憾地,對於
exec
eval
的任何使用來
說,幾乎也都是這樣,除了那些你可以對要執行或估算的
程式碼設下非常嚴格且可檢查的限制的罕見情況,如函式
safer_eval
那樣。
內部型別
本節中的某些內部 Python 物件很難使用。要正確使用這種物件以達到好的
效果,你得研讀你 Python 實作的某些 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

測試驅動開發|使用 Python

測試驅動開發|使用 Python

Harry J.W. Percival
Linux 内核观测技术BPF

Linux 内核观测技术BPF

David Calavera, Lorenzo Fontana

Publisher Resources

ISBN: 9789864766819