1. Trang chủ
  2. » Công Nghệ Thông Tin

Tài liệu Thiết Kế Web Với Joomla part 18 pdf

7 306 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Chống tấn công SQL Injection trong Joomla
Định dạng
Số trang 7
Dung lượng 486,91 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tuy nhiên, có một thực tế song hành với mặt ưu điểm trên là số lượng các Website bị tấn công thông qua các lỗi lập trình bất cẩn trong các thành phần mở rộng được cài đặt thêm cũng ngày

Trang 1

Part 19

Chống tấn công SQL Injection trong Joomla

Hiện Joomla! ngày càng phát triển mạnh

mẽ và ngày càng được ứng dụng rộng rãi ở Việt Nam với số lượng các thành phần mở rộng (extensions) từ các hãng thứ ba cũng tăng không ngừng cả về số lượng và chất lượng Rất nhiều thành phần mở rộng (gồm component, module, plugin, template ) thực sự tuyệt vời và đáng được cài đặt trên mọi

Website

Tuy nhiên, có một thực tế song hành với mặt ưu điểm trên là số lượng các

Website bị tấn công thông qua các lỗi lập trình bất cẩn trong các thành

phần mở rộng được cài đặt thêm cũng ngày càng tăng cao Thậm chí số

lượng lỗi bị khai thác còn cao hơn cả Microsoft (theo báo cáo 6 tháng đầu

năm 2008 của IBM)

Do vậy, ngay từ lúc này, bạn hãy kiểm tra lại toàn bộ hệ thống của mình để

đảm bảo: Chỉ cài đặt các thành phần mở rộng thực sự cần thiết, thực sự

uy tín và hãy nhờ một người có kinh nghiệm để kiểm tra các đoạn mã, mà

một trong số chúng thường bị hacker khai thác - các lỗi phổ biến về truy

vấn SQL (thường gọi là SQL Injection)

Đối với người sử dụng cuối (end-user):

Không dùng tiền tố mặc định 'jos_'

Trang 2

Khi cài đặt website, Joomla sử dụng tiền tố mặc định cho các bảng của cơ

sở dữ liệu: 'jos_' Tuy nhiên để tránh sự nhòm ngó của các haker bạn nên

đổi tiền tố này

Không dùng tài khoản mặc định 'admin'

 Tạo một tài khoản quản trị (Super Administrator) mới thay vì dùng tài

khoản mặc định có tên 'admin'

 Đổi tên và vô hiệu hóa tài khoản mặc định 'admin' mà Joomla đã tạo

ra khi cài đặt bằng cách: Mở bảng _users, tìm bản ghi có id=62, đổi

username khác 'admin' và thay block bằng '1')

Đối với những người lập trình (developer) thì chú ý những vấn đề

sau:

Ép kiểu dữ liệu

Luôn ép kiểu dữ liệu cho các chuỗi đưa vào câu lệnh truy vấn SQL Thí dụ:

Nếu muốn kiểu dữ liệu là kiểu nguyên (integer) thì sử dụng câu lệnh SQL:

Trang 3

$sql = 'UPDATE # mytable SET `id` = ' (int) $int;

Nếu muốn kiểu dữ liệu là kiểu ngày/tháng (date) thì sử dụng câu lệnh SQL:

$date = & JFactory::getDate($mydate);

->toMySQL(), false);

Luôn gỡ bỏ ý nghĩa của những ký tự đặc biệt

Bạn cần gỡ bỏ ý nghĩa của những ký tự đặc biệt (những ký tự có khả năng

gây nguy hiểm cho câu lệnh SQL) nằm trong các chuỗi dữ liệu được đưa

vào câu lệnh SQL bằng câu lệnh:

->getEscaped( $string ), false );

Chống tấn công DOS

Trong các mệnh đề WHERE, nếu bạn có sử dụng lệnh LIKE, hãy đảm bảo

rằng bạn đã lọc các ký tự đặc biệt như "%" và "_" thì sử dụng câu lệnh

SQL:

$db->quote( $db->getEscaped( $string, true ), false )

Chống tấn công XSS

Rất nhiều người có thói quen lấy dữ liệu nhập vào từ người dùng bằng câu

lệnh JRequest::getVar() Tuy nhiên đây là một thói quen không tốt Thay

vào đó bạn nên sử dụng các phương thức ép kiểu Thí dụ:

Nếu muốn kiểu số nguyên, dùng câu lệnh:

$int = JRequest::getInt( $name, $default );

Nếu muốn kiểu số thực, dùng câu lệnh:

$float = JRequest::getFloat( $name, $default );

Nếu muốn kiểu logic (đúng/sai), dùng câu lệnh:

Trang 4

$bool = JRequest::getBool( $name, $default );

Nếu muốn kiểu từ (word): chỉ có các ký tự chữ cái và ký tự gạch dưới "_",

dùng câu lệnh:

$word = JRequest::getWord( $name, $default );

Nếu muốn kiểu câu lệnh (command): chỉ có các ký tự chữ cái, ký tự số, ký

tự "." và "_", dùng câu lệnh:

$cmd = JRequest::getCMD( $name, $default );

Nếu muốn kiểu văn bản không phải HTML (văn bản đã được lọc bỏ các thẻ

HTML), dùng câu lệnh:

$string = JRequest::getString( $name, $default );

Kiểm tra Website Joomla bằng Joomla! HISA

Joomla HISA là một công cụ kiểm tra - bảo mật cho phép:

 Kiểm tra một HOSTING có đáp ứng các yêu cầu cần thiết để cài đặt

Joomla hay không

 Thông báo các thông số của HOST (tên host, địa chỉ IP ); thông số

về PHP, MYSQL

 Cảnh báo về các thiết lập không an toàn

 Cảnh báo về các thư mục chưa được thiết lập đúng quyền hạn

Cũng giống như "Joomla Diagnostics", rất đơn giản bạn chỉ cần tải về

công cụ có tên là Joomla! HISA (Joomla! Health, Installation and Security

Audit) Sau đó upload 1 file duy nhất (joomla_hisa_en.php) lên Hosting

định cài đặt Joomla và xem kết quả

Phiên bản Joomla HISA hiện tại chỉ cho phép kiểm tra dòng Joomla! 1.0.x

Trang 5

Quy trình kiểm tra

 Download Joomla HISA: >> Joomla HISA <<<

 Giải nén và upload Joomla! HISA: Giải nén, sau đó upload 1 file duy

nhất (joomla_hisa_en.php) lên thư mục chứa Joomla

 Chạy Joomla! HISA: Mở trình duyệt và gõ vào URL tới file

"joomla_hisa_en.php"

VD: http://yoursite.com/joomla/joomla_hisa_en.php

Joomla! HISA sẽ thông báo kết quả

Host Environment: Thông số chung của Host

Trang 6

PHP Environment: Thông số về PHP

MySQL Environment: Thông số về MySQL

Joomla! Environment: Các thông số liên quan cho Joomla

Required and Recommended Settings: Các yêu cầu bắt buộc và

khuyến cáo

Nếu một trong các thiết lập bị cảnh báo bằng màu đỏ thì bạn nên xem bài

viết "Xử lý cảnh báo trong quá trình cài đặt và cấu hình Joomla!" để biết

cách khắc phục

Trang 7

Directory and File Permissions: Quyền hạn đối với các tệp và thư

mục

Để tránh các HACKER nhòm ngó bạn nên thiết lập các thư mục với

CHMOD = 755, các tệp với CHMOD = 644

Chú ý:

Thứ nhất, nên đổi tên file joomla_hisa_en.php trước khi upload lên host

(Chẳng hạn đổi tên thành yoursite_hisa.php)

Ngày đăng: 21/01/2014, 16:20

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm