Một số lỗi cần tránh khi lập trình web

 

“Tất cả những kinh nghiệm này đều được trải qua và kiểm nghiệm trong thực tế bởi… chính tôi. Những điều tôi viết, chắc mấy anh hacker có nghề sẽ cười khẩy mà bảo rằng ‘dễ vậy mà cũng viết’. Thì cái gì biết rồi đều dễ mà! Đây chỉ là những kinh nghiệm mà những bạn quan tâm tới hoặc mới lập trình web nên tham khảo mà thôi”.

“Đầu tiên, một lần tôi lang thang trên Net, ghé vào ngó nghiêng trang  http://www.hubm.edu.vn, chợt phát hiện rằng trang web này có một forum tự viết bằng asp. À há, tinh thần tự viết mà không dùng đồ có sẵn trên Net của webmaster trang web này rất đáng hoan nghênh. Nhưng tự viết thì chắc chắn sẽ có chỗ này chỗ nọ chưa hoàn thiện, phải không? Sau khi mò mẫm chọn kiểm tra các trang web có liên quan đến truy cập dữ liệu như các trang cập nhật thông tin, gửi bài, đổi mật khẩu… Tôi chợt phát khùng lên vì… sướng, khi thấy trang thay đổi mật khẩu được chứng thực bằng ID và chỉ ID mà thôi. Dễ như bóc kẹo, tôi nhẹ nhàng thay đổi chỉ số ID trên URL String bằng ID của admin, nghiễm nhiên tôi có mật khẩu của admin”.

“Theo tôi, đây là một lỗi vô cùng ngớ ngẩn và quá nguy hiểm vì nó cho phép một cậu bé con cũng có thể xơi tái cả hệ thống. Theo tôi, các bạn nên chú ý khi lập trình web, tất cả các trang có tác động đến cơ sở dữ liệu phải có 2 cách kiểm tra: Hoặc xác nhận lại mật khẩu, hoặc sử dụng biến Session, không được chỉ kiểm tra ID”.

“Trang web này còn có một lỗi ngớ ngẩn và nghiêm trọng không kém, đó là cho phép upload file lên mà không cần kiểm tra đó là file gì. Do host hỗ trợ .asp nên tôi đã upload cả một chú backdoor to đùng lên (đuôi .asp) và dùng nó để sục sạo vô tư trong hệ thống. Vậy thêm một kinh nghiệm nữa là bạn phải hạn chế dạng file cho upload lên hệ thống, và tốt nhất là chỉ cho phép các file dạng hình ảnh mà thôi”.

“Một lần khác, khi lang thang tìm kiếm lỗi trên trang http://ttvnol.com, tôi cũng phát hiện ra một lỗi ở phần upload file. Forum này có một lỗi quá nghiêm trọng: Đó là upload thì kiểm tra đuôi nhưng khi chạy cái file đuôi dạng hình ảnh thì hiển luôn cái nội dung file nếu không phải là file hình ảnh. Có nghĩa là nếu tôi viết 1 file HTML và đổi thành đuôi .gif thì đưa lên gọi bằng trình duyệt vẫn chạy HTML bình thường. Tôi đã sử dụng điều này để sửa điểm trò SNAKE trong ttvnol và làm 1 form lừa lấy hầu hết password của các admin. Tôi còn đưa lên cả backdoor và điều nguy hiểm hơn là trường password trong database chẳng được mã hóa gì hết… Có đường dẫn rồi, chỉ cần làm 1 file .asp bình thường là bọn tôi có thể lôi hết password của các thành viên trên diễn đàn về. Forum TTVNOL vậy là bị thu phục hoàn toàn”.

“Nhắn thêm với các bạn một điều nữa khi làm web, đó là phải thiết lập cấu hình để máy chủ chỉ cho chạy các file có đuôi html hoặc .asp hay .php… và phải mã hoá trước khi lưu thông tin vào trường mật khẩu. Tất cả các lỗi trên tôi đã thông báo cho các admin và họ đã sửa hết rồi nên không còn đường để các bạn thực hành nữa đâu. Bài viết này cũng không có ý phá hoại chi hết mà chỉ nêu lên những lỗi thường gặp để các bạn biết mà chú ý khi làm web thôi”.