Bảo mật Database trong lập trình PHP - Học thiết kế web ở hà nội

Single Blog Title

This is a single blog caption
Học đồ họa tại Hoàng Quốc Việt/ khóa học đò họa tại Hoàng Quốc Việt

Bảo mật Database trong lập trình PHP – Học thiết kế web ở hà nội

Bảo mật Database trong lập trình PHP – Học thiết kế web ở hà nội. Bài tiếp theo, các bạn sẽ được học thiết kế web ở hà nội, hướng dẫn cách bảo mật Database trong lập trình PHP. Khi chúng ta truy cập CSDL và chấp nhận dữ liệu đầu vào bằng cách tạo ra các câu lệnh truy vấn, nó dễ dàng bị các kẻ gian lợi dụng tấn công SQl injection.

 Học thiết kế web ở hà nội
SQL injection xuất hiện khi các kẻ tấn công muốn làm các “thử nghiệm” trên form để lấy các thông tin về CSDL. Nó thu thập các thông tin từ các thông báo lỗi SQL . Kẻ tấn công đính vào form một trường injecting SQL, phổ biến nó thường đính vào form đăng nhập trong hệ thống trang web được sử dụng ngôn ngữ lập trình web PHP
 
Mã:
<form  method=”login.php”  action=”POST”>
Username:  <input  type=”text”  name=”username”  /><br  />
Password:  <input  type=”password”  name=”password”  /><br  />
<input  type=”submit”  value=”Log  In”  />
</form>
 
đoạn mã sử lý đăng nhập dễ bị lợi dụng:
 
$username  =  $_POST[’username’];
$password  =  md5($_POST[’password’]);
$sql  =  “SELECT  *
FROM     users
WHERE   username  =  ’{$username}’  AND    password  =  ’{$password}’”;
/*  database  connection  and  query  code  */
if  (count($results)  >  0) {
//  Successful  login  attempt
}
 

Khi kẻ tấn công nhập user là :

 
username’ OR 1 = 1 –
và mật khẩu để trống thì cấu trúc câu lệnh SQl là:
SELECT *
FROM users
WHERE username = ’username’ OR 1 = 1 –’ AND
password = ’d41d8cd98f00b204e9800998ecf8427e’
 
điều kiện 1=1 thì luôn đúng câu lệnh SQL bỏ qua tất cả những gì sau ‘–’ vì vậy câu lệnh SQl trên sẽ trả lại tất cả các bản ghi. Bằng cách này hacker dễ dàng đăng nhập vào hệ thống với tài khoản bất kỳ khi đã biết tên tài khoản
Chúng ta tránh được lỗi này bằng cách lọc các kí tự escaping. Bằng cách lọc dữ liệu đầu vào và lọc escaping khi xuất ra chúng ta sẽ tránh được lỗi SQL injection chúng ta lọc escaping bằng nhóm hàm *_escape_string()
 
chat với thầy Dương