Mysql_real_escape_string là gì
Trong bài viết này, chúng tôi thảo luận về các cuộc tấn công có thể xảy ra đối với các ứng dụng web và cách chúng có thể giúp bạn bảo mật chương trình web.
Bạn đang xem: mysql_escape_string là gì
Bạn đang xem: mysql_real_escape_string là gì
1) Phát triển web an toàn, ngăn ngừa lỗ hổng sql injection
SQL injection là lỗ hổng phổ biến nhất trong các ứng dụng web. Trên thực tế, việc ngăn chặn sql injection không khó. Lỗ hổng SQL injection xảy ra khi một ứng dụng web không thể kiểm tra các tham số nhận được từ trình duyệt và thực thi chúng trực tiếp trong máy chủ cơ sở dữ liệu. Vì vậy, hãy kiểm tra kỹ các tham số và bạn sẽ an toàn trước tất cả các loại tiêm sql. Lập trình web an toàn: Bạn có thể sử dụng mysql_real_escape_string, nó sẽ ngăn hầu hết các cuộc tấn công sql injection, nhưng hãy tưởng tượng điều này:
2) Quản lý tệp tải lên
Khi bạn sử dụng trình tải tệp lên, nếu không được quản lý và kiểm soát đúng cách, bạn sẽ tạo ra các cửa trên máy chủ để truy cập tệp của mình từ bên ngoài. Bạn cần đề phòng hacker. Nếu có thể, hãy mã hóa tên tệp và không bao giờ đưa tên tệp gốc vào ổ cứng của máy chủ. Ví dụ: nếu bạn tải tệp test.jpg lên, hãy đặt tên tệp là:
$mnow = date(“y-m-d h:i:s”); $morigname = $root filename; $newname = md5($mnow + ” — ” + $morigname; Bây giờ hãy lưu tên tệp vào cơ sở dữ liệu và lưu lại tệp vào ổ đĩa có tên mới tạo và không có phần mở rộng hoặc thời gian mở rộng trung gian như .tmp hoặc .usrfile…không bao giờ hiển thị đường dẫn lưu trữ tệp đã tải lên, ví dụ: thay vì gửi thông báo “Cảm ơn bạn đã tải lên” tệp của bạn, bạn có thể xem tệp của mình tại đây yourwebsite.com/uploadedfiles/test.jpg”. Lưu trữ tệp trong thư mục có tên ngẫu nhiên và không phải tên như tải lên, tải lên, tệp người dùng, tải lên người dùng …chỉ cần tạo các chuỗi 10 ký tự ngẫu nhiên như qs2lvdol6o. Không bao giờ cho phép tải lên tệp .php, .asp, .jsp, v.v. trên các thư mục, bạn có thể Định cấu hình trong apache bằng cách sử dụng .htaccess hoặc trong iis. Ngoài ra, bạn có thể chỉ cần lưu trữ các tệp này trong cơ sở dữ liệu nhị phân.
Xem thêm: Từ một lần và mãi mãi nghĩa là gì, Từ điển một lần và mãi mãi Anh-Việt
3) Tấn công bao gồm tệp cục bộ hoặc tệp từ xa
php dễ bị tấn công bởi kiểu tấn công này. Điều này xảy ra khi một đoạn mã cố gắng đưa vào một trang khác bằng cách sử dụng các biến do người dùng chuyển vào. Ví dụ: newsid = $_post; include $newsid; or require_once($newsid); Điều này thực sự rất nguy hiểm. Ngay cả tin tặc cũng có thể thực thi mã trên máy chủ của riêng bạn bằng cách tạo mã php vào tệp nhật ký apache, sau đó khai thác lỗ hổng bao gồm tệp để đọc các đoạn mã đó từ tệp nhật ký. Vì vậy, để lập trình web an toàn, bạn nên tránh sử dụng bao gồm, yêu cầu với đầu vào thay đổi động và người dùng. Đối với mỗi tệp có một địa chỉ và id duy nhất trong cơ sở dữ liệu, hãy tạo một đường dẫn như sau: downloadfile.php?id=49 và trong mã của bạn truy vấn cơ sở dữ liệu cho tên tệp id=49, hãy đọc và xử lý với. Nếu bạn xử lý tệp trực tiếp, bạn có thể kiểm tra xem các ký tự như “.” “/” “http” “ftp” “https” có tồn tại hay không, nhưng phương pháp này không tốt lắm.
Xem thêm: Giải bài 32 SGK Toán 9 Tập 1 Trang 19 SGK Toán 9 Tập 1 Bài 32 Trang 19 SGK Toán 9 Tập 1
4) lỗ hổng xss
Để sử dụng tính năng ngăn chặn xss và bảo mật web theo chương trình trong php, hãy sử dụng: $userparam = strip_tags($userparam);asp.net:userparam = microsoft.security.application.sanitizer.getsafehtmlfragment(userparam);things Phân tích ở trên bao gồm những điều cơ bản khái niệm về bảo mật nội dung nhất trong lập trình web, nhưng nếu thực hiện tốt, bạn có thể ngăn chặn hầu hết các cuộc tấn công vào ứng dụng web.