Tôi chỉ đang đùa giỡn với một ý tưởng và tôi không thể nghĩ ra cách để giải quyết vấn đề này trong chương trình phụ trợ mà không gây khó khăn cho vấn đề bảo mật.Đánh giá thuật toán từ người dùng 'không đáng tin cậy'
Giả sử tôi muốn cung cấp cho người dùng cơ hội tạo các thuật toán đơn giản qua dịch vụ web và kiểm tra những danh sách nhỏ này, ví dụ: range(0, 5)
sau đó báo cáo lại kết quả qua một dịch vụ web khác, mẫu hoặc email, không thực sự quan trọng, đó là đánh giá làm phiền tôi.
Sử dụng python:
class Algorithm(whatever):
function = whatever.CharField(max_length=75)
Một người sử dụng có thể nhập cái gì đó như:
'f(x)=x+(x/5)**0.75'
Dĩ nhiên tôi có thể sử dụng eval
, tước bất kỳ built-in, dây khác hơn là "x" vv, nhưng điều này vẫn có thể là thực hành không may.
Điều duy nhất tôi có thể đưa ra là di chuyển mọi chức năng đánh giá sang giao diện người dùng JavaScript.
Vâng, Google chắc chắn thực hiện điều này trong mã lệnh của họ. Vì vậy, tôi tự hỏi làm thế nào họ giải quyết vấn đề này. Có lẽ chạy mã không tin cậy một máy ảo với các thiết lập cần thiết. Vì vậy, ngay cả khi họ bork VM, bạn vẫn còn an toàn – inspectorG4dget
nếu bạn loại bỏ cuối cùng "nhập khẩu" từ khóa không có gì nên xảy ra về thiệt hại dữ liệu. –
@MaxLi Thế còn '__import__' thì sao? – Natan