Lỗi bảo mật
Không người lập trình nào lại muốn mã nguồn mình viết ra lại đầy lỗi và nhất là lỗi bảo mật. Có một cách để "cải thiện" khả năng lập trình không lỗi: theo dõi lỗi của người đi trước:
- Drupal critical issues
- Drupal security annoucements
- CVS log messages
SQL Injection
Để tránh SQL Injection, chúng ta cần thực hiện những câu query đúng cách. Suwr dụng:
<?php
db_query(
"SELECT foo FROM {table} t WHERE t.name = '%s' ",
$_GET['user']
);
?>thay vì
<?php
db_query(
'SELECT foo FROM {table} t WHERE t.name = '. $_GET['user']
);
?>Thử xem đoạn mã sau:
<?php
$keyword = $_REQUEST['keyword'];
$query = "SELECT cust_id, cust_name, cust_email FROM customers WHERE category = '$keyword'";
$result = db_query($query);
?>Trong trường hợp
$_REQUEST['keyword'] có giá trị ; DROP TABLE customers; -- , đoạn mã sẽ thực hiện câu truy vấn:
SELECT cust_id, cust_name, cust_email FROM customers WHERE category = ''; DROP TABLE customers; --'Cross-site Request Forgeries (CSRF)
Tạo và xử lý form phải sử dụng Form API để tránh vấn đề CSRF.
Truy cập file
Thiết lập quyền truy cập file không hợp lý cũng gây nên những lỗ hổng bảo mật hết sức nguy hiểm. Thao khảo lệnh chmod
Cập nhật
- Vừa mới thấy "Tìm hiểu và chống lỗi bảo mật trong ứng dụng web " -- Bài viết khá chi tiết về một số lỗi bảo mật thường gặp khi lập trình web.
Unsigned version
6 days 11 hours ago
2 weeks 4 days ago
7 weeks 2 days ago
7 weeks 2 days ago
7 weeks 2 days ago
9 weeks 2 days ago
10 weeks 3 days ago
11 weeks 2 days ago
11 weeks 6 days ago
12 weeks 2 hours ago