Loại bỏ đánh giá động. Ở giai đoạn kiến trúc và triển khai, tái cấu trúc thiết kế để không cần dùng eval hoặc cơ chế đánh giá mã động tương đương.
Xác thực theo allowlist nghiêm ngặt. Coi mọi đầu vào là có thể độc hại và chỉ chấp nhận các giá trị tuân thủ chặt chẽ đặc tả. Kiểm tra độ dài, kiểu, toàn bộ miền giá trị hợp lệ, trường bị thiếu hoặc thừa, cú pháp, tính nhất quán giữa các trường liên quan và quy tắc nghiệp vụ. Từ chối đầu vào không phù hợp hoặc chuyển đổi nó thành biểu diễn phù hợp. Không chỉ dựa vào denylist, dù denylist vẫn có thể hỗ trợ phát hiện tấn công hoặc loại bỏ đầu vào rõ ràng bất thường.
Chuẩn hóa trước khi xác thực. Giải mã và chuẩn hóa đầu vào về biểu diễn nội bộ hiện tại của ứng dụng trước khi xác thực. Tránh giải mã cùng một đầu vào nhiều lần, vì giải mã hai lần hoặc lỗi tương tự có thể vượt qua allowlist. Có thể sử dụng các thư viện kiểm soát chuẩn hóa như OWASP ESAPI Canonicalization. Chuẩn hóa lặp lại cho đến khi đầu vào không còn thay đổi có thể xử lý giải mã hai lần, nhưng cũng có thể sửa đổi những đầu vào hợp lệ vốn chứa nội dung nguy hiểm đã được mã hóa.
Lưu ý riêng cho Python. ast.literal_eval thường được đề xuất thay cho eval vì được thiết kế để không thực thi mã. Tuy nhiên, đầu vào lồng sâu vẫn có thể gây tiêu thụ quá mức bộ nhớ hoặc ngăn xếp, và tài liệu Python không khuyến nghị dùng hàm này với dữ liệu không đáng tin cậy.