Thứ Năm, 29 tháng 10, 2009

7 khả năng phát sinh lỗi bảo mật khi code PHP

PHP đem đến sự linh động, tiện dụng và đôi khi là tùy tiện. Điều đó dẫn đến một số các quy tắc bảo mật căn bản sau có thể bị bỏ qua

Kiểm tra dữ liệu đầu vào

Đây là vấn đề cơ bản của căn bản, tránh việc chèn mã độc và giảm tải kha khá cho server khi không phải xử lý dữ liệu không mong muốn.

Hạn chế truy cập

Đối với các trang cho phép những thao tác can thiệp vào website ở các khía cạnh giao diện, hệ thống, db hay bất cứ cấu hình nào thì luôn phải được đảm bảo mức độ an toàn cao nhất. Cơ bản của căn bản nữa là phải kiểm tra bất cứ request nào của người dùng, thay vì chỉ phân quyền đơn giản.

Hạn chế sử dụng session ID đối với các dữ liệu nhạy cảm

Ví dụ như số thẻ tín dụng hay các thông tin cá nhân, đổi mật khẩu ... việc chỉ kiểm tra sessionID mới là xác thực vòng ngoài thôi. Không nên đặt niềm tin quá vào nó.

SQL injections

Sự tiện lợi của PHP đem đến cho người phát triển khả năng tương tác database nhanh chóng, dễ dàng. Do đó, sự cẩu thả của người viết code khi để lạc các ký tự 'không sạch' vào câu query sẽ dẫn đến hậu quả khôn lường. Các framework hầu hết loại bỏ khả năng này, và nó cũng không còn phổ biến, nhưng vẫn xuất hiện nhiều nếu không cẩn thận.

Thông báo lỗi hệ thống

Nếu vì lý do gì đó mà website của bạn dừng hoạt động, hãy đảm bảo là các thông báo cho người dùng sẽ không thể hiện những thông tin nhạy cảm như connection error, db, webserver hay nặng nhất là câu query db. Hãy chắc chắn có một câu thông báo chuẩn cho toàn bộ website khi đi vào vận hành.

Xử lý dữ liệu nhận từ phía người dùng

Hãy đảm bảo đó là những dữ liệu 'sạch' và có ý nghĩa, nếu không sẽ dẫn đến nhiều vấn đề ở trên.

Cấu hình

Nếu có quyền truy cập, hãy xác lập các thông số của PHP & webserver đảm bảo an toàn, hiệu quả & tối ưu.

nguồn: http://articles.sitepoint.com/article/php-security-blunders/2    (nhớ vào đọc cho có cả vd rõ ràng)

Không có nhận xét nào:

Đăng nhận xét