Quy tắc 20: Làm sạch đầu vào & Truy vấn tham số
Quy tắc số 1 của An ninh Mạng: Không bao giờ tin tưởng đầu vào của người dùng!
Khi bạn nhận đầu vào thô từ người dùng và truyền nó trực tiếp vào cơ sở dữ liệu hoặc giao diện người dùng của bạn, bạn đang mở cửa cho SQL Injection (SQLi) và Cross-Site Scripting (XSS).
Để thực hiện Quy tắc 20, hãy tuân thủ hai lá chắn phòng thủ sau:
1️⃣ Làm sạch đầu vào & Xác thực: Loại bỏ các ký tự nguy hiểm (như <, >, ', --) và xác thực các loại. Nếu bạn mong đợi một số nguyên, hãy từ chối bất kỳ thứ gì chứa văn bản!
2️⃣ Truy vấn tham số (Câu lệnh đã chuẩn bị): Không bao giờ nối chuỗi để xây dựng truy vấn. Sử dụng tham số để cơ sở dữ liệu đối xử với đầu vào của người dùng chỉ như dữ liệu, không bao giờ như mã thực thi.
Lọc mọi thứ, làm sạch mọi nơi, không tin tưởng ai cả! #BTC
Quy tắc số 1 của An ninh Mạng: Không bao giờ tin tưởng đầu vào của người dùng!
Khi bạn nhận đầu vào thô từ người dùng và truyền nó trực tiếp vào cơ sở dữ liệu hoặc giao diện người dùng của bạn, bạn đang mở cửa cho SQL Injection (SQLi) và Cross-Site Scripting (XSS).
Để thực hiện Quy tắc 20, hãy tuân thủ hai lá chắn phòng thủ sau:
1️⃣ Làm sạch đầu vào & Xác thực: Loại bỏ các ký tự nguy hiểm (như <, >, ', --) và xác thực các loại. Nếu bạn mong đợi một số nguyên, hãy từ chối bất kỳ thứ gì chứa văn bản!
2️⃣ Truy vấn tham số (Câu lệnh đã chuẩn bị): Không bao giờ nối chuỗi để xây dựng truy vấn. Sử dụng tham số để cơ sở dữ liệu đối xử với đầu vào của người dùng chỉ như dữ liệu, không bao giờ như mã thực thi.
Lọc mọi thứ, làm sạch mọi nơi, không tin tưởng ai cả! #BTC