Một hàm f()
sử dụng eval()
(hoặc một cái gì đó nguy hiểm) với dữ liệu mà tôi đã tạo và lưu trữ local_file
trên máy đang chạy chương trình của tôi:
import local_file
def f(str_to_eval):
# code....
# ....
eval(str_to_eval)
# ....
# ....
return None
a = f(local_file.some_str)
f()
chạy an toàn vì các chuỗi tôi cung cấp cho nó là của riêng tôi.
Tuy nhiên, nếu tôi từng quyết định sử dụng nó cho một cái gì đó không an toàn (ví dụ: đầu vào của người dùng) thì mọi thứ có thể trở nên cực kỳ sai lầm . Ngoài ra, nếu các local_file
điểm dừng là cục bộ thì nó sẽ tạo ra một lỗ hổng vì tôi cũng cần phải tin vào máy cung cấp tệp đó.
Làm thế nào để tôi đảm bảo rằng tôi không bao giờ "quên" rằng chức năng này không an toàn để sử dụng (trừ khi các tiêu chí cụ thể được đáp ứng)?
Lưu ý: eval()
là nguy hiểm và thường có thể được thay thế bằng một cái gì đó an toàn.