Một sự thay đổi nhỏ trong Lua 5.2.1
Phiên bản chính thức của Lua 5.2.1 đã ra mắt được một thời gian. Mặc dù chỉ là bản cập nhật nhỏ so với 5.2.0, nhưng vẫn có vài điểm đáng chú ý.
Cụ thể, trong lần cập nhật này, kiểu dữ liệu chuỗi đã được phân thành hai loại: chuỗi dài và chuỗi ngắn. Các chuỗi dài (có độ dài vượt quá 40 byte) sẽ không còn bị “intern” nữa. Ban đầu tôi nghĩ đây là cải tiến nhỏ nhằm tối ưu hiệu năng, giúp giảm tính toán hash và chèn vào bảng băm trong các ứng dụng xử lý nhiều chuỗi. Tuy nhiên khi tìm hiểu kỹ hơn trên danh sách email của nhóm phát triển, tôi được biết đây thực chất là biện pháp tăng cường bảo mật, ngăn chặn kiểu tấn công gây tràn bộ nhớ thông qua việc tạo ra chuỗi gây va chạm hash (hash DoS). Cùng với đó, quá trình tính toán hash cho chuỗi cũng được thay đổi để sử dụng một giá trị khởi tạo ngẫu nhiên (random seed), giá trị này mặc định phụ thuộc vào thời gian hệ thống.