PHP là một trong những ngôn ngữ lập trình phổ biến nhất cho lập trình web. Đôi khi một ngôn ngữ với tính năng thân thiện có thể giúp lập trình viên rất nhiều nhưng cũng có rất nhiều lỗ hổng tạo ra rào cản trong việc phát triển. Trong bài hướng dẫn sau, chúng ta hãy cùng xem 5 mẹo giúp bạn tránh một vài lỗi và công cụ đảm bảo bảo mật cho PHP.

Đang xem: Bảo mật code php

1. Sử dụng hợp lí Error Reporting

Trong quá trình phát triển, cảnh báo lỗi là công cụ tốt nhất của bạn. Các cảnh báo lỗi này giúp bạn tìm ra những lỗi chính tả trong biến, phát hiện hàm sử dụng sai và nhiều hơn thế. Tuy nhiên, khi trang web của bạn đã được trực tuyến thì các thông báo lỗi lại trở thành “kẻ thù” vì nó có thể cho người dùng biết rất nhiều thông tin về trang web (phần mềm bạn sử dụng, cấu trúc folder…).Khi trang web đã đi vào hoạt động, bạn nên đảm bảo rằng đã ẩn tất cả các thông báo lỗi. Điều đó có thể thực hiện bằng cách sử dụng hàm đơn giản sau:

Nếu chức năng nào đó hoạt động không đúng, bạn vẫn muốn và cần biết về nó. Vì vậy bạn nên luôn đảm bảo rằng bạn đã log lại lỗi xảy ra vào một file được bảo vệ với hàm set_error_handler.

*
*
*

Magic Quotes (magic_quotes_gpc, magic_quotes_runtime, magic_quotes_sybase)Magic Quotes là một tính năng giúp lập trình viên tránh rắc rối khi sử dụng addslashes() và những tính năng bảo mật tương tự trong code. Có ít nhất 3 vấn đề với Magic Quotes.

Xem thêm: Ngọc Trinh Chia Sẻ Bí Quyết Xin Tiền Bạn Trai Mua Nhà 40 Tỷ, Cách Xin Tiền Tế Nhị

Xem thêm:

Một vấn đề xảy ra khi cả Magic Quotes và addslashes() đều được sử dụng. Trong trường hợp này, nếu bạn có thể kết thúc chuỗi với nhiều dấu sổ/ có thể sẽ gây ra lỗi. Vấn đề thứ hai là nếu bạn bật Magic Quotes nhưng nó không hoạt động. Điều này khiến tất cả dữ liệu đầu vào đều không được kiểm tra. Vấn đề thứ ba là Magic Quotes sử dụng dấu sổ đơn hoặc kép nhưng nếu bạn sử dụng một database engine, có rất nhiều kí tự đặc biệt cần được sử dụng. Vì vậy bạn nên vô hiệu hóa tính năng này và sử dụng một biến phù hợp.Vô hiệu hóa với .htaccess

php_flag magic_quotes_gpc 0 php_flag magic_quotes_runtime 0Vô hiệu hóa với php.inimagic_quotes_gpc = Offmagic_quotes_runtime = Offmagic_quotes_sybase = OffLưu ý: Nếu bạn sử dụng file php.ini không phù hợp với toàn bộ máy chủ, bạn cần bổ sung khai báo ở mỗi thư mục phụ có PHP.

3. Kiểm tra đầu vào

Với một ứng dụng, bạn phải chắc chắn loại dữ liệu nào sẽ được đưa vào xử lý. Vì vậy cách tốt nhất để bảo vệ là đảm bảo người dùng chỉ có thể nhập vào dữ liệu phù hợp. Ví dụ, bạn muốn tạo ra một ứng dụng liệt kê danh sách sinh nhật người dùng và cho phép người dùng thêm vào sinh nhật mới. Bạn muốn chấp nhận dữ liệu tháng là một số từ 1 đến 12, ngày là 1 đến 31 và năm có định dạng YYYY. Hãy xem ví dụ dưới đây:

Related Post

Leave a Reply

Your email address will not be published. Required fields are marked *