ฟังก์ชั่นf()
ใช้eval()
(หรือบางสิ่งที่อันตราย) กับข้อมูลที่ฉันสร้างและเก็บไว้ในlocal_file
เครื่องที่ใช้โปรแกรมของฉัน:
import local_file
def f(str_to_eval):
# code....
# ....
eval(str_to_eval)
# ....
# ....
return None
a = f(local_file.some_str)
f()
ปลอดภัยที่จะเรียกใช้เนื่องจากสตริงที่ฉันกำหนดให้เป็นของฉันเอง
แต่ถ้าฉันเคยตัดสินใจที่จะใช้มันสำหรับบางสิ่งบางอย่างที่ไม่ปลอดภัย (เช่นผู้ใช้ป้อนข้อมูล) สิ่งที่จะไปผิดมหันต์ นอกจากนี้หากlocal_file
หยุดเป็นท้องถิ่นแล้วมันจะสร้างช่องโหว่เนื่องจากฉันจะต้องเชื่อถือเครื่องที่ให้ไฟล์นั้นเช่นกัน
ฉันจะแน่ใจได้อย่างไรว่าฉันไม่เคย "ลืม" ว่าฟังก์ชั่นนี้ไม่ปลอดภัยที่จะใช้ (เว้นแต่ว่าตรงตามเกณฑ์ที่กำหนด)
หมายเหตุ: eval()
มีอันตรายและมักจะถูกแทนที่ด้วยสิ่งที่ปลอดภัย