Computer >> Máy Tính >  >> Lập trình >> HTML

Làm thế nào để ngăn chặn sự tiêm SQL? (Hướng dẫn đầy đủ)

Bạn có lo lắng về các cuộc tấn công SQL injection vào trang web của bạn không? Nếu bạn đang đọc điều này, bạn có thể đã biết hậu quả của cuộc tấn công. Trong bài đăng này, bạn sẽ tìm hiểu các cách dễ dàng để ngăn chặn việc tiêm SQL.

Việc đưa vào SQL có thể cho phép tin tặc chiếm quyền điều khiển trang WordPress của bạn và kiểm soát quyền truy cập của nó. Từ đó, họ có thể chuyển hướng lưu lượng truy cập của bạn, đánh cắp dữ liệu bí mật, đưa vào các liên kết spam, thao túng kết quả tìm kiếm bằng các ký tự tiếng Nhật và hiển thị quảng cáo cho các sản phẩm bất hợp pháp. Loại tấn công này có thể gây ra thiệt hại không thể khắc phục được cho trang web và doanh nghiệp của bạn.

May mắn thay, việc tiêm SQL có thể ngăn ngừa được nếu bạn thực hiện các biện pháp bảo mật phù hợp. Trong hướng dẫn này, chúng tôi đề cập đến việc tiêm SQL và thảo luận sâu về các biện pháp hiệu quả để ngăn chặn chúng và bảo vệ trang web WordPress của bạn.

TL; DR: Bạn có thể ngăn chặn việc đưa SQL vào trang web WordPress của mình bằng cách sử dụng một plugin bảo mật đáng tin cậy. Cài đặt MalCare và plugin sẽ tự động quét và bảo vệ trang web của bạn trước các cuộc tấn công như vậy.

Các cuộc tấn công SQL Injection là gì?

Tất cả các trang web WordPress thường có các khu vực đầu vào cho phép khách truy cập nhập thông tin. Đây có thể là thanh tìm kiếm trang web, biểu mẫu liên hệ hoặc biểu mẫu đăng nhập .

Trong biểu mẫu liên hệ, khách truy cập sẽ nhập dữ liệu của họ như tên, số điện thoại và email rồi gửi đến trang web của bạn.

Làm thế nào để ngăn chặn sự tiêm SQL? (Hướng dẫn đầy đủ)

Dữ liệu này được gửi đến cơ sở dữ liệu MySQL trên trang web của bạn. Nó được xử lý và lưu trữ tại đây.

Bây giờ, các trường đầu vào này yêu cầu cấu hình phù hợp để đảm bảo dữ liệu được xác minh và làm sạch trước khi vào cơ sở dữ liệu của bạn. Ví dụ, một lỗ hổng trong biểu mẫu liên hệ là nó chỉ chấp nhận các chữ cái và số. Lý tưởng nhất là nó không nên chấp nhận các ký hiệu. Bây giờ, nếu trang web của bạn chấp nhận bất kỳ dữ liệu nào thông qua biểu mẫu này, tin tặc có thể lợi dụng và chèn truy vấn SQL độc hại như:


txtUserId = getRequestString("UserId");

txtSQL = "SELECT * FROM Users WHERE UserId = " + txtUserId;

Khi tập lệnh được lưu trữ trong cơ sở dữ liệu của bạn, tin tặc sẽ chạy nó để giành quyền kiểm soát trang web của bạn. Sau đó, chúng có thể tiến hành khai thác SQL injection, đột nhập vào trang web của bạn và thực hiện các hoạt động độc hại. Họ có thể bắt đầu lừa dối khách hàng, chuyển hướng khách truy cập đến các trang web lừa đảo và những thứ tương tự.

Vì vậy, nếu trang web của bạn không làm sạch dữ liệu từ các trường đầu vào này, điều đó có nghĩa là nó có lỗ hổng SQL injection.

Tấn công SQL hoạt động như thế nào?

Tin tặc nhắm mục tiêu vào các trang web có các biện pháp bảo mật yếu kém hoặc có lỗ hổng bảo mật khiến chúng dễ dàng xâm nhập. Theo kinh nghiệm của chúng tôi, các plugin và chủ đề thường phát triển các lỗ hổng và tin tặc nhận thức rõ điều này. Họ lướt Internet liên tục để tìm kiếm các trang web sử dụng các plugin và chủ đề dễ bị tấn công.

Để giải thích điều này, chúng tôi sẽ sử dụng một tình huống ví dụ. Giả sử anh A đang sử dụng một plugin ‘Biểu mẫu liên hệ’ để tạo biểu mẫu trên Trang liên hệ của trang web của anh ấy. Giả sử rằng lỗ hổng SQL injection đã được tìm thấy trong plugin này ở Phiên bản 2.4 và các nhà phát triển đã sửa lỗi đó và phát hành phiên bản cập nhật 2.4.1.

Sau khi phát hành, các nhà phát triển tiết lộ lý do cập nhật khiến lỗ hổng bảo mật được công khai. Điều này có nghĩa là tin tặc biết có lỗ hổng bảo mật trong phiên bản 2.4 của plugin Biểu mẫu liên hệ.

Hiện tại, Mr.X trì hoãn việc cài đặt bản cập nhật trong vài tuần vì đơn giản là không có thời gian để chạy bản cập nhật. Đây là nơi mọi thứ trở nên sai lầm.

Khi tin tặc phát hiện ra các lỗ hổng, chúng sẽ chạy các chương trình hoặc sử dụng trình quét lỗ hổng sẽ thu thập thông tin trên internet và tìm các trang web bằng cách sử dụng phiên bản plugin / chủ đề cụ thể.

Trong trường hợp này, họ sẽ tìm kiếm các trang web bằng Biểu mẫu liên hệ 2.4. Sau khi tìm thấy trang web, họ sẽ biết chính xác lỗ hổng bảo mật trên web, điều này khiến họ dễ dàng bị hack hơn nhiều. Trong trường hợp này, họ sẽ khai thác lỗ hổng SQL injection và đột nhập vào trang web của bạn.

Các kiểu tiêm SQL

Tin tặc sử dụng hai loại SQL injection:

1. Chèn SQL cổ điển - Khi bạn truy cập một trang web, trình duyệt của bạn (như Chrome hoặc Mozilla) sẽ gửi một yêu cầu HTTP đến máy chủ của trang web để hiển thị nội dung. Máy chủ web tìm nạp nội dung từ cơ sở dữ liệu của trang web và gửi nội dung đó trở lại trình duyệt của bạn. Đó là cách bạn có thể xem giao diện người dùng của một trang web.

Giờ đây, cơ sở dữ liệu trên trang web của bạn chứa tất cả các loại dữ liệu bao gồm dữ liệu bí mật như chi tiết khách hàng, thông tin thanh toán, tên người dùng và mật khẩu. Cơ sở dữ liệu của bạn phải được định cấu hình để chỉ phát hành dữ liệu giao diện người dùng. Tất cả các dữ liệu bí mật khác phải được bảo vệ. Nhưng nếu các bước kiểm tra bảo mật ứng dụng này không được thực hiện, tin tặc sẽ lợi dụng.

Trong một cuộc tấn công tiêm SQL cổ điển, tin tặc gửi các yêu cầu độc hại đến cơ sở dữ liệu của bạn để truy xuất dữ liệu về trình duyệt của họ. Nhưng họ sử dụng các chuỗi truy vấn để yêu cầu thông tin nhạy cảm, chẳng hạn như thông tin đăng nhập vào trang web của bạn. Nếu bạn không bảo vệ thông tin này, thông tin này sẽ được gửi đến tin tặc. Bằng cách này, họ có thể nắm được thông tin đăng nhập của bạn và đột nhập vào trang web của bạn. Những kẻ tấn công cũng có thể sử dụng các câu lệnh đã soạn sẵn như một cách để thực thi các câu lệnh cơ sở dữ liệu giống nhau hoặc tương tự lặp đi lặp lại với hiệu quả cao.

2. Chèn SQL mù - Trong trường hợp này, tin tặc sẽ tiêm các đoạn mã độc hại thông qua các trường đầu vào trên trang web của bạn. Khi nó được lưu trữ trong cơ sở dữ liệu của bạn, chúng sẽ thực thi nó để gây ra tất cả các loại thiệt hại như thay đổi nội dung trang web của bạn hoặc thậm chí xóa toàn bộ cơ sở dữ liệu của bạn. P>

Cả hai trường hợp đều có thể có tác động nghiêm trọng đến trang web và doanh nghiệp của bạn. May mắn thay, bạn có thể ngăn chặn các cuộc tấn công như vậy bằng cách thực hiện các biện pháp bảo mật và xác thực đầu vào phù hợp trên trang web của mình.

Các bước để ngăn chặn tấn công SQL Injection

Để ngăn chặn các cuộc tấn công SQL injection, bạn cần thực hiện đánh giá bảo mật cho trang web của mình. Dưới đây là hai loại biện pháp bạn có thể thực hiện để ngăn chặn các cuộc tấn công SQL - một số biện pháp dễ dàng và một số biện pháp phức tạp và kỹ thuật.

Các biện pháp phòng ngừa dễ dàng

  1. Cài đặt một plugin bảo mật
  2. Chỉ sử dụng các chủ đề và plugin đáng tin cậy
  3. Xóa bất kỳ phần mềm vi phạm bản quyền nào trên trang web của bạn
  4. Xóa các chủ đề và trình cắm không hoạt động
  5. Cập nhật trang web của bạn thường xuyên

Các biện pháp phòng ngừa kỹ thuật

  1. Thay đổi tên cơ sở dữ liệu mặc định
  2. Kiểm soát các mục nhập trường và gửi dữ liệu
  3. Quản lý trang web WordPress của bạn

Hãy bắt đầu.

Các biện pháp phòng ngừa dễ dàng chống lại các cuộc tấn công SQL Injection

1. Cài đặt một plugin bảo mật

Kích hoạt plugin bảo mật trang web là bước đầu tiên bạn cần làm để bảo vệ trang web của mình. Các plugin bảo mật của WordPress sẽ giám sát trang web của bạn và ngăn chặn tin tặc xâm nhập.

Có rất nhiều plugin để bạn lựa chọn, nhưng dựa trên những gì nó mang lại, chúng tôi chọn MalCare. Plugin sẽ tự động thiết lập tường lửa ứng dụng web để bảo vệ trang web của bạn trước các cuộc tấn công. Các nỗ lực tấn công đã được xác định và bị chặn.

Tiếp theo, trình quét bảo mật của plugin sẽ quét toàn bộ trang web của bạn mỗi ngày. Nếu có bất kỳ hành vi đáng ngờ hoặc hoạt động độc hại nào trên trang web của bạn, bạn sẽ được cảnh báo ngay lập tức. Bạn có thể thực hiện hành động và sửa chữa trang web của mình ngay lập tức với MalCare trước khi Google có cơ hội đưa trang web của bạn vào danh sách đen hoặc nhà cung cấp dịch vụ lưu trữ quyết định tạm ngưng trang web của bạn.

2. Cập nhật trang web của bạn thường xuyên

Như chúng tôi đã đề cập trong ví dụ về SQL injection trước đó, khi các nhà phát triển tìm thấy lỗi bảo mật trong phần mềm của họ, họ sẽ sửa lỗi đó và phát hành phiên bản mới có bản vá bảo mật. Bạn cần cập nhật lên phiên bản mới để loại bỏ lỗ hổng khỏi trang web của mình.

Làm thế nào để ngăn chặn sự tiêm SQL? (Hướng dẫn đầy đủ)

Chúng tôi khuyên bạn nên dành thời gian mỗi tuần một lần để cập nhật cài đặt cốt lõi WordPress, chủ đề và plugin của bạn.

Tuy nhiên, nếu bạn thấy bản cập nhật bảo mật được phát hành, hãy cài đặt bản cập nhật đó ngay lập tức.

3. Chỉ sử dụng các chủ đề và plugin đáng tin cậy

WordPress là nền tảng phổ biến nhất để xây dựng trang web và điều đó một phần là do các plugin và chủ đề làm cho nó dễ dàng và giá cả phải chăng. Nhưng giữa vô số chủ đề và plugin có sẵn, bạn cần phải lựa chọn cẩn thận. Kiểm tra thông tin chi tiết của plugin như số lượt cài đặt đang hoạt động, ngày cập nhật lần cuối và phiên bản plugin đã được thử nghiệm.

Làm thế nào để ngăn chặn sự tiêm SQL? (Hướng dẫn đầy đủ)

Chúng tôi khuyên bạn nên tải chúng xuống từ kho lưu trữ WordPress. Đối với bất kỳ chủ đề và plugin nào khác, bạn nên thực hiện nghiên cứu thích hợp để xác minh rằng chúng có thể đáng tin cậy. Điều này là do một số chủ đề và plugin của bên thứ ba có thể bị tin tặc tạo ra một cách ác ý. Nó cũng có thể được mã hóa không tốt dẫn đến lỗ hổng bảo mật.

4. Xóa mọi phần mềm vi phạm bản quyền trên trang web của bạn

Các chủ đề và plugin vi phạm bản quyền hoặc vô hiệu đang hấp dẫn. Nó cung cấp cho bạn quyền truy cập vào các tính năng cao cấp miễn phí. Nhưng thật không may, chúng thường đi kèm với phần mềm độc hại được tải sẵn. Phần mềm vi phạm bản quyền là một cách dễ dàng để tin tặc phát tán phần mềm độc hại của họ.

Khi bạn cài đặt nó, phần mềm độc hại sẽ được kích hoạt và lây nhiễm vào trang web của bạn. Tốt nhất là bạn nên tránh xa những phần mềm như vậy.

5. Xóa các chủ đề và plugin không hoạt động

Việc cài đặt một plugin và hoàn toàn quên nó trong nhiều năm là điều phổ biến. Nhưng thói quen này có thể khiến trang web của bạn bị tin tặc xâm nhập. Bạn càng cài đặt nhiều plugin và chủ đề trên trang web của mình, thì càng có nhiều khả năng xuất hiện lỗ hổng bảo mật và tin tặc lợi dụng chúng.

Chúng tôi khuyên bạn chỉ nên giữ lại các plugin và chủ đề mà bạn sử dụng. Xóa phần còn lại và làm cho trang web của bạn an toàn hơn. Cũng thường xuyên quét các chủ đề và plugin hiện có của bạn.

Biện pháp Phòng ngừa Kỹ thuật

Các biện pháp này có thể yêu cầu thêm một chút kiến ​​thức về hoạt động bên trong của WordPress. Tuy nhiên, ngày nay, có một plugin cho mọi thứ. Vì vậy, bạn không cần phải lo lắng về sự phức tạp liên quan đến việc thực hiện các biện pháp này. Chúng tôi làm cho nó trở nên đơn giản!

1. Thay đổi tên bảng cơ sở dữ liệu mặc định

Trang web WordPress của bạn được tạo thành từ các tệp và cơ sở dữ liệu. Trong cơ sở dữ liệu của bạn, có 11 bảng theo mặc định. Mỗi bảng chứa nhiều dữ liệu và cấu hình khác nhau. Các bảng này được đặt tên bằng tiền tố ‘wp_’. Vì vậy, tên của các bảng có thể là wp_options, wp_users, wp_meta. Bạn nhận được sự trôi dạt.

Làm thế nào để ngăn chặn sự tiêm SQL? (Hướng dẫn đầy đủ)

Những cái tên này giống nhau trên tất cả các trang web WordPress và tin tặc biết điều này. Tin tặc biết bảng nào lưu trữ loại dữ liệu nào. Khi tin tặc chèn các tập lệnh độc hại vào trang web của bạn, chúng biết nơi tập lệnh sẽ được lưu trữ. Sử dụng một phương pháp đơn giản, họ có thể thực thi các lệnh SQL để chạy các hoạt động độc hại.

Nhưng nếu bạn thay đổi tên của bảng, nó có thể ngăn tin tặc tìm thấy vị trí của các tập lệnh. Vì vậy, khi hack cố gắng đưa mã SQL vào các bảng cơ sở dữ liệu của bạn, chúng sẽ không thể tìm ra tên bảng.

Bạn có thể thực hiện việc này bằng cách sử dụng một plugin như Change Table Prefix hoặc Brozzme. Chỉ cần cài đặt một trong số chúng trên trang web của bạn và làm theo các bước.

Bạn cũng có thể thực hiện việc này theo cách thủ công bằng cách chỉnh sửa tệp wp-config của mình. Một lời cảnh báo - một sai sót nhỏ ở đây có thể dẫn đến lỗi cơ sở dữ liệu và trục trặc trang web. Hãy sao lưu trước khi bạn tiếp tục.

  • Chuyển đến tài khoản lưu trữ của bạn> cPanel> Trình quản lý tệp.
  • Tại đây, truy cập vào thư mục public_html và nhấp chuột phải vào tệp wp-config.
  • Chọn Chỉnh sửa và tìm mã sau
    “$ Table_prefix =‘ wp_ ’;”
  • Thay thế nó bằng -
    “$ Table_prefix =‘ test_ ’;”

Bạn có thể chọn bất kỳ tiền tố nào mà bạn chọn. Ở đây, chúng tôi đã chọn ‘test_’ làm tên cơ sở dữ liệu mới. Sau khi thực hiện xong, tin tặc sẽ không thể tìm thấy các lệnh SQL của chúng.

2. Kiểm soát các mục nhập trường và gửi dữ liệu

Bạn có thể định cấu hình tất cả các trường đầu vào trên trang web của mình để chỉ chấp nhận một số loại dữ liệu nhất định. Ví dụ:trường tên chỉ được phép nhập các mục chữ cái (chữ cái) vì không có lý do gì phải nhập các ký tự số ở đây. Tương tự, trường số liên hệ chỉ nên chấp nhận các chữ số.

Bạn có thể sử dụng hàm sanitize_text_field () để khử trùng đầu vào của người dùng. Xác thực đầu vào này đảm bảo rằng các mục nhập không đúng hoặc đơn giản là nguy hiểm có thể bị chặn.

3. Quản lý trang web WordPress của bạn

Đây là một trong những bước quan trọng nhất mà bạn có thể thực hiện để bảo vệ trang web WordPress của mình chống lại các cuộc tấn công SQL injection. Làm cứng trang web là gì?

Trang web WordPress cung cấp cho bạn nhiều chức năng để giúp bạn chạy trang web. Tuy nhiên, phần lớn mọi người không sử dụng nhiều chức năng này. WordPress.org khuyên bạn nên tắt hoặc xóa một số trong số chúng nếu bạn không sử dụng chúng. Điều này sẽ làm giảm nguy cơ bị tấn công vì có ít yếu tố hơn để tin tặc thử!

Một số biện pháp tăng cường độ cứng của WordPress là:

  1. Tắt trình chỉnh sửa tệp
  2. Tắt cài đặt plugin hoặc chủ đề
  3. Triển khai xác thực 2 yếu tố
  4. Giới hạn số lần đăng nhập
  5. Thay đổi muối và khóa bảo mật của WordPress
  6. Chặn thực thi PHP trong các thư mục không xác định

Để thực hiện các biện pháp này, bạn có thể sử dụng một plugin như MalCare cho phép bạn thực hiện việc này chỉ với một vài cú nhấp chuột.

Làm thế nào để ngăn chặn sự tiêm SQL? (Hướng dẫn đầy đủ)

Hoặc bạn có thể triển khai thủ công bằng cách làm theo Hướng dẫn của chúng tôi về Làm cứng WordPress.

Điều đó đưa chúng ta đến bước cuối cùng của việc ngăn chặn các cuộc tấn công SQL injection. If you’ve implemented the measures we’ve discussed in this SQL injection cheat sheet, your site will be safe

SQL injection attacks can be prevented! Use this guide to implement the right security measures on your WordPress site. Click to Tweet

Lời kết

Prevention really is better than cure. SQL injection attacks can cause unnecessary stress and severe financial burden.

Most of the measures we discussed today can be easily implemented with the use of plugins. So you needn’t be worried if you are not tech-savvy! You can still protect yourself!

Along with implementing these measures, we strongly suggest activating MalCare on your site. Its firewall will actively defend your website against attacks. It scans your site every day to check for hack attempts and malware on your site.

You can think of it as your website security guard that monitors your site and keeps the bad guys out. You can have peace of mind knowing your site is protected.

Prevent Hack Attacks With Our MalCare Security Plugin!