Mẹo thủ thuật sử dụng joomla (phần 2)

Ở phần tiền sảnh, Joomla! chia làm 5 nhóm người dùng tương ứng với 5 mức truy cập

khác nhau:

• Guest (Khách): Là những người truy cập, sử dụng website nói chung, họ không sở

hữu tài khoản nào trên hệ thống Joomla!

• Registered (Thành viên): Là khách sau khi đăng ký vào của hệ thống Joomla! và

trở thành thành viên chính thức của hệ thống.

• Author (Tác giả): Là thành viên có quyền đăng bài hoặc đăng một vài thứ khác mà

hệ thống cho phép (chẳng hạn như weblink)

• Editor (Người biên soạn): Là thành viên có quyền đăng, kiểm duyệt và chỉnh sửa

tất cả các bài viết (thậm chí cả những bài viết không phải của họ)

• Publisher (Người xuất bản): Là người biên soạn, ngoài ra có thêm quyền quyết

định việc phát hành các bài viết (chính thức xuất bản lên Website hay không)

pdf22 trang | Chia sẻ: luyenbuizn | Lượt xem: 1144 | Lượt tải: 0download
Bạn đang xem trước 20 trang nội dung tài liệu Mẹo thủ thuật sử dụng joomla (phần 2), để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
MẸO THỦ THUẬT SỬ DỤNG JOOMLA (PHẦN 2) Bảo mật Website Joomla! 28. Phân quyền trong Joomla! 1.5 Phân quyền Joomla! ở tiền sảnh (front-end) Ở phần tiền sảnh, Joomla! chia làm 5 nhóm người dùng tương ứng với 5 mức truy cập khác nhau: • Guest (Khách): Là những người truy cập, sử dụng website nói chung, họ không sở hữu tài khoản nào trên hệ thống Joomla! • Registered (Thành viên): Là khách sau khi đăng ký vào của hệ thống Joomla! và trở thành thành viên chính thức của hệ thống. • Author (Tác giả): Là thành viên có quyền đăng bài hoặc đăng một vài thứ khác mà hệ thống cho phép (chẳng hạn như weblink) • Editor (Người biên soạn): Là thành viên có quyền đăng, kiểm duyệt và chỉnh sửa tất cả các bài viết (thậm chí cả những bài viết không phải của họ) • Publisher (Người xuất bản): Là người biên soạn, ngoài ra có thêm quyền quyết định việc phát hành các bài viết (chính thức xuất bản lên Website hay không) Lưu ý 1: Có thể thiết lập để mặc định tài khoản Khách (Guest) cũng là tài khoản Thành viên (Registered). Lưu ý 2: Bất cứ thành viên nào thuộc phần hậu sảnh (Back-End) cũng có thể thực hiện các thao tác mà người xuất bản (Publisher) có thể làm. Phân quyền Joomla! ở hậu sảnh (back-end) Ở phần hậu sảnh, Joomla! chia làm 3 nhóm tài khoản với 3 mức độ quyền hạn khác nhau: • Manager (Người quản lý): Là tài khoản có quyền thực hiện các thao tác quản lý cơ bản (quản lý menu, quản lý bài viết...). • Administrator (Quản trị viên): Là tài khoản có quyền thực hiện mọi thao tác, trừ việc quản lý thông tin cấu hình hệ thống, quản lý giao diện, quản lý ngôn ngữ, quản lý các tài khoản siêu quản trị. • Super Administrator (Siêu quản trị): Là tài khoản có đặc quyền cao nhất, có thể thực hiện mọi hành động. t a tong 32 than hton g32 Thuật ngữ: • Front-end (Frontend): Phần tiền sảnh hay phần mặt trước, phần mặt tiền phía trang chủ mà ai cũng có thể trông thấy. • Back-end (Backend): Phần hậu sảnh hay phần quản trị là vùng chỉ dành cho các thành viên có quyền quản trị hệ thống Joomla!. • ACL (Access Control List): Danh sách điều khiển truy cập (trong bài viết này sử dụng khái niệm Phân quyền cho dễ hiểu). Keyword: • phân quyền, quản trị, khách, người đăng ký, tác giả, người biên soạn, người xuất bản, quản lý, thành viên, đăng, kiểm duyệt, tiền sảnh, hậu sảnh, tài khoản, danh sách điều khiển truy cập • joomla, administrator, manager, publisher, editor, author, registered, guest, front- end, back-end, acl, access control list Chú ý: Ghi rõ nguồn VINAORA.COM khi sử dụng bài viết này. 29. Bảo mật cho trang quản trị Joomla! bằng cookie Ý tưởng của giải pháp này là: Sử dụng chứng thực bằng cookie ngăn chặn mọi truy cập trực tiếp tới vùng quản trị Joomla! bằng đường dẫn /administrator (VD: Thay vào đó phải truy cập gián tiếp thông qua một đường dẫn chỉ mình bạn biết (chẳng hạn Bước 1: Tạo một thư mục bí mật chẳng hạn [Joomla]/secret than hto 32 Thư mục này nằm cùng mức với thư mục /administrator Lưu ý: Bạn hoàn toàn có thể sử dụng một thư mục có sẵn (chẳng hạn thư mục /language) Bước 2: Tạo một file "vinaora.php" trong thư mục bí mật trên với nội dung sau: < ?php $admin_cookie_code="abcdef123456"; setcookie("VinaoraAdminSession",$admin_cookie_code,0,"/"); header("Location: /administrator/index.php"); ?> Bạn nên đổi cặp giá trị cookie "VinaoraAdminSession" & "abcdef123456" bằng những chuỗi ký tự bất kỳ (gồm ký tự chữ cái và ký tự số) để tránh hacker sử dụng công cụ chèn trực tiếp cookie trên vào trình duyệt. Bạn cũng có thể sử dụng một cái tên khác chứ không nhất thiết phải là "vinaora.php" :) Bước 3: Thêm nội dung sau tới file ".htaccess" của thư mục /administrator RewriteEngine On RewriteCond %{REQUEST_URI} ^/administrator RewriteCond %{HTTP_COOKIE} !VinaoraAdminSession=abcdef123456 RewriteRule .* - [L,F] Trong trường hợp HOSTING của bạn không hỗ trợ file .htaccess hãy liên hệ với bộ phận kỹ thuật để được giúp đỡ. Khi cần truy cập vào trang quản trị hãy gõ đường dẫn: • VD: Keyword: • bảo mật, ngăn cấm, truy cập, trang quản trị, thư mục, trực tiếp, gián tiếp • joomla, security, administrator, htaccess, cookie Reference: Chú ý: Ghi rõ nguồn VINAORA.COM khi sử dụng bài viết này. 30. Các cách CHMOD cho tệp (file) và thư mục (directory) th n hton g32 Để đảm bảo an toàn cho các file và thư mục trong Joomla!, tránh sự nhóm ngó của các hacker thì một trong các yêu cầu quan trọng và phải luôn lưu ý đó là CHMOD cho đúng. Thông thường chúng ta cần thiết lập CHMOD 755 cho các thư mục và CHMOD 644 cho các file. CHMOD là gì? CHMOD= 755 là gì? CHMOD = 644 là gì? CHMOD chính là thao tác thay đổi các quyền sau: • "Read" (Đọc): viết tắt là "r", và được biểu diễn bằng số 4 • "Write" (Ghi / Chỉnh sửa): viết tắt là "w", và được biểu diễn bằng số 2 • "Execute" (Thực thi): viết tắt là "x", và được biểu diễn bằng số 1 CHMOD cùng lúc thay đổi quyền hạn trên các file/thư mục với các đối tượng sau: • "Owner" - chủ sở hữu của file/thư mục, • "Group" - Nhóm mà Owner là thành viên, • "Public / Others/ Everybody": những người còn lại. CHMOD 755 (rwx r-x r-x) cho thư mục Lưu ý: Khái niệm CHMOD không tồn tại trên hệ thống Windows, mà chỉ có trên các hệ thống Unix/Linux CHMOD = 755 cho các thư mục có nghĩa là: • 7 = 4 + 2 + 1 : Người sở hữu thư mục có quyền đọc thư mục (read); chỉnh sửa thư mục (write); liệt kê các thư mục và file bên trong (execute); than hton g32 • 5 = 4 + 0 + 1 : Những người cùng nhóm chỉ có quyền đọc thư mục (read); liệt kê các thư mục và file bên trong (execute) • 5 = 4 + 0 + 1 : Những người còn lại chỉ có quyền đọc thư mục (read); liệt kê các thư mục và file bên trong (execute) CHMOD 755 (rwx r-x r-x) cho thư mục CHMOD = 644 cho các tệp (file) có nghĩa là: • 6 = 4 + 2 + 0 : Người sở hữu thư mục có quyền đọc tệp (read); chỉnh sửa tệp (write) • 4 = 4 + 0 + 0 : Những người cùng nhóm chỉ có quyền đọc tệp (read) • 4 = 4 + 0 + 0 : Những người còn lại chỉ có quyền đọc tệp (read) than hton g32 CHMOD 644 (rw- r-- r--) cho file CMOD 755 cho các thư mục, CHMOD 644 cho các file bằng một file PHP Tạo một file "chmod.php" nằm trong thư mục mà bạn cần CHMOD cho toàn bộ các file, thư mục bên trong nó với nội dung như sau: <?php system('find . -type d -exec chmod 755 {} \; 2>&1'); system('find . -type f -exec chmod 644 {} \; 2>&1'); echo("\n\nComplete!"); ?> Sau đó thực thi các dòng lệnh trên bằng cách mở link tới file này. VD: CHMOD 755 cho các thư mục, CHMOD 644 cho các file bằng dòng lệnh Nếu bạn là người quản trị server hoặc có thể thực thi dòng lệnh thông qua SSH thì trước tiên bạn cần chuyển đến thư mục Joomla bằng lệnh "cd" (change directory), sau đó bạn có thể dùng các lệnh sau: find . -type d -exec chmod 755 {} \; // dùng để CHMOD cho các thư mục find . -type f -exec chmod 644 {} \; // dùng để CHMOD cho các file th hton g32 hoặc find . -type d -print0 | xargs -0 chmod 0775 // dùng để CHMOD cho các thư mục find . -type f -print0 | xargs -0 chmod 0664 // dùng để CHMOD cho các file hoặc chmod -R 755 ./* // dùng để CHMOD tất cả các thư mục và file find . -type f -exec chmod 644 {} \; // dùng để CHMOD cho các file CHMOD bằng các trình quản lý file như "File Manager", "FileZilla"... Đối với FileZilla: • Chọn"Recurse into subdirectories" để áp dụng thao tác CHMOD cho cả các thư mục con • Chọn "Apply to all files and directories" để áp dụng thao tác CHMOD cho tất cả các file và thư mục • Chọn "Apply to files only" để chỉ áp dụng thao tác CHMOD cho các file • Chọn "Apply to directories only" để chỉ áp dụng thao tác CHMOD cho các thư mục CHMOD 755 (rwx r-x r-x) cho thư mục bằng FileZilla than hton g32 CHMOD 755 (rwx r-x r-x) cho thư mục bằng "File Manager" Keyword • chmod, 755, 644, read, write, execute, PHP, FileManager, FileZilla • đọc, ghi, chỉnh sửa, thực thi, dòng lệnh Các câu hỏi liên quan • Làm thế nào để CHMOD trong Joomla? • Làm sao để CHMOD cho các thư mục và file trong Joomla? • CHMOD = 755 nghĩa là gì? • CHMOD = 644 nghĩa là gì? 31. Chống tấn công SQL Injection trong Joomla Sunday, 03 August 2008 14:31 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). t a ton 32 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_' 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ụ: tha hton g32 Nếu muốn kiểu dữ liệu là kiểu nguyên (integer) thì sử dụng câu lệnh SQL: $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); $sql = 'UPDATE #__mytable SET `date` = ' . $db->quote( $date->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: $sql = 'UPDATE #__mytable SET `string` = ' . $db->quote( $db->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: $sql = 'UPDATE #__mytable SET .... WHERE `string` LIKE '. $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: $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 ); than h n g32 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 ); Tham khảo thêm: • Preventing SQL Injections (tác giả: Anthony Ferrara - Joomla Core Team, bài gốc tiếng Anh) • SQL Injection • API getEscaped • database->getEscaped Keyword: • câu lệnh, sql, sql injection, ép kiểu, lọc bỏ, số nguyên, số thực, DOS, XSS, interger, float, string, JRequest... Ghi rõ nguồn "" (bản gốc) và "" (bản dịch và tổng hợp) khi sử dụng bài viết này. 32. 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 (từ Joomla 1.0.10 trở đi) 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: tha ong 32 Joomla! HISA sẽ thông báo kết quả Host Environment: Thông số chung của Host PHP Environment: Thông số về PHP MySQL Environment: Thông số về MySQLtha hton g32 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. 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 = 644than hton g32 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 vinaora_hisa.php) Thứ hai, sau khi sử dụng hãy xóa ngay file Joomla Hisa nói trên Bài viết liên quan • Keyword: • joomla, hisa, joomla hisa, kiểm tra, website, chmod 33. Kiểm tra hệ thống file Joomla bằng Joomla Diagnostics Thông thường sau khi upload Joomla lên Hosting, hoặc sau một quá trình dài sử dụng bạn rất muốn biết liệu thư mục Joomla của mình có bị thiếu file, hư hỏng hoặc bị Hacker chỉnh sửa gì không? Joomla của mình có an toàn không? Thật đơn giản, bạn hãy tìm và download Joomla Diagnostics. Đây là một công cụ miễn phí cho phép xác định rõ: • Những file bị thiếu • Những file bị hỏng hoặc đã bị chỉnh sửa • Những file không an toàn (có thể truy cập trực tiếp từ đường dẫn, do thiếu kiểm tra _VALID_MOS hoặc _JEXEC) • Các thiết lập không an toàn (VD: register_globals = off) Quy trình kiểm tra như sau: th n hton g32 Download Joomla Diagnostics: • Xác định rõ phiên bản Joomla mà bạn đang sử dụng: Joomla 1.0.13 hay Joomla 1.5 • Tìm đúng Joomla Diagnostics cho phiên bản mà bạn đang sử dụng • Link download: Joomla Diagnostics Giải nén Joomla Diagnostics Giải nén Joomla Diagnostics mà bạn vừa download ở trên (gồm 2 file: diagnostics.php và Joomla...txt) vào thư mục Joomla (nơi có file configuration.php) • diagnostics.php: file dùng để kiểm tra • joomla...txt: chứa danh sách các file của Joomla và mã kiểm tra tính toàn vẹn (CHECKSUM) Chạy Joomla Diagnostics Mở đường dẫn • VD: • VD: Hình minh họa Chú ý: Vì lý do bảo mật bạn cần phải xóa ngay file diagnostics.php sau khi sử dụng. Tham khảo thêm: • than hton g32 • Keyword: • Joomla, joomla 1.0, joomla 1.5, diagnostics, joomla diagnostics, file 34. 9 bước bảo mật Website Joomla! Friday, 08 June 2007 23:55 Bảo mật cho Website Joomla là một nhân tố quan trọng góp phần bảo vệ Website trước các âm mưu tấn công có chủ đích cũng như vô tình, giúp cho Website luôn hoạt động ổn định và bền vững. Nhiều quản trị Website chỉ đặt trọng tâm vào việc thiết kế, cập nhật nội dung và giành thứ hạng cao trong các kết quả tìm kiếm mà quên đi việc đảm bảo an toàn cho Website, tới khi sự việc xảy ra thì đã quá muộn. Bài viết dưới đây sẽ giới thiệu tới các bạn 9 bước để bảo mật cho Website Joomla và giảm thiểu các nguy cơ tấn công từ Internet. 1. Sao lưu toàn bộ Website theo định kỳ Điều đầu tiên và cũng là quan trọng nhất là bạn phải thường xuyên sao lưu toàn bộ Website bao gồm cả thư mục chứa Joomla và cơ sở dữ liệu MySQL. Hãy lập lịch ít nhất một lần trong tuần (khuyến cáo là mỗi ngày một lần) để thực hiện sao lưu. Bạn sẽ tiết kiệm được rất nhiều công sức và tiền của khi Website bị tấn công và chỉ mất vài phút hoặc vài chục phút để khôi phục lại gần như toàn bộ. 2. Nâng cấp khi Joomla có phiên bản phát hành ổn định mới nhất. Nhóm phát triển nòng cốt của Joomla luôn phát hành đều đặn vài tháng một lần phiên bản Joomla mới bao gồm cả các bản vá lỗi bảo mật và và các bản vá tăng cường hiệu suất làm việc, do vậy bạn cần kiểm tra thường xuyên trên website của Joomla ( để kịp thời cập nhật phiên bản mới nhất. 3. Kiểm tra các thành phần mở rộng (module, component, mambot/plugin) của các hãng thứ ba Một số Website có thể bị tấn công thông qua các lỗi bảo mật nằm trong các thành phần mở rộng được cài đặt thêm từ hãng thứ ba. Do vậy bạn cũng luôn phải chắc chắn rằng nếu mình có cài đặt các thành phần mở rộng từ hãng thứ ba thì đó phải là các phiên bản mới nhất. Khuyến cáo: Hãy hạn chế tới mức tối đa việc cài đặt các thành phần mở rộng từ hãng thứ ba. Ngoài ra khi bạn quyết định gỡ một thành phần mở rộng nào đó khỏi hệ thống thì bạn cũng xóa cả các bảng cơ sở dữ liệu liên quan. 4. Quyền hạn đối với các thư mục than hto g32 Sau khi cài đặt các thành phần mở rộng, bạn cần thiết lập quyền hạn đối với các thư mục sang chế độ CHMOD 755. Lưu ý: Nếu quá trình cài đặt các thành phần mở rộng (component/module/language...) gặp trục trặc bạn cần chuyển các thư mục sau sang CHMOD 777. Khi cài đặt xong lại thiết lập như trên (755 đối với thư mục và 644 đối với file) components language modules mambots templates administrator administrator/backups administrator/components administrator/modules 5. Quyền hạn đối với các tệp Thiết lập quyền hạn đối với tất cả các tệp của bạn sang chế độ CHMOD 644. 6. Quyền hạn đối với tệp configuration.php Đây là một điều rất quan trọng. Bạn phải chắc chắn rằng mình đã thiết lập quyền hạn cho tệp "configuration.php" sang CHMOD 644. 7. Bảo mật với .htaccess than hton g32 Bản phát hành mới nhất của Joomla bao gồm cả phiên bản cập nhật cho tệp ".htaccess" để làm giảm thiểu nguy cơ tấn công từ các hacker. Do vậy bạn cần phải truyền tệp .htaccess này tới server của bạn và đổi quyền hạn sang CHMOD 644. 8. Joomla! Register Globals Emulation. Bạn cần phải chắc chắn rằng biến "register global emulation" được thiết lập thành OFF. Hãy mở tệp "global.php", tìm dòng define('RG_EMULATION', 1) và đổi nó thành define('RG_EMULATION', 0) 9. Register Globals Đảm bảo rằng Register Globals được thiết lập thành OFF. Nếu không hãy liên hệ với Server của bạn để đổi nó thành OFF hoặc mở tệp .htaccess và thêm vào đoạn mã sau php_flag register_globals off. Tham khảo thêm • Bảo mật cho Website Joomla! (tại diễn đàn chính thức của Joomla) 35. Bảo vệ file "configuration.php" khỏi các truy nhập trái phép Friday, 01 June 2007 17:38 Việc bảo vệ các file có nội dung quan trọng, các file cấu hình chứa các thông số của hệ thống như: tên database, tên truy nhập, mật khẩu... là rất cần thiết và phải đặc biệt lưu tâm. Trong Joomla có một file như thế - file "configuration.php". Để tăng cường bảo mật cho file "configuration.php" này có nhiều cách, tuy nhiên có một cách hay được sử dụng và đề cập trên các diễn đàn, đó là chuyển file "configuration.php" tới một nơi an toàn, tránh sự nhòm ngó của hacker. Các bước thực hiện như sau: Giả sử Website Joomla của bạn được đặt trong thư mục "/www/public_html" www ---|public_html --------------|configuration.php • Chuyển file "configuration.php" ra khỏi "public_html", đặt nó vào một khu vực khác do bạn tự tạo chẳng hạn "/www/private". Đặt cho nó một cái tên mới, chẳng hạn "vinaora_joomla.conf". www ---|private -----------|vinaora_joomla.conf tha tong 32 • Tạo một file "configuration.php" thay thế file cũ nhưng chứa nội dụng sau: <?php require( '/www/private/vinaora_joomla.conf' ); ?> • Đừng để bất cứ khoảng trắng hoặc dòng trắng nào phía trước thẻ "<?php" và phía sau thẻ "?>" và không được lưu nó với UTF-8 nếu không bạn sẽ nhận được thông báo lỗi, đại loại như: Warning: Cannot modify header information - headers already sent by (output started at /home/xxxxx/public_html/configuration.php:2) in /home/xxxxx/public_html/index.php on line 250 • Thiết lập (CHMOD) quyền chỉ đọc cho file "configuration.php" mới này để đảm bảo nó không bị thay đổi nội dung. • Khi bạn cần thay đổi các thiết lập cho Joomla hãy thực hiện bằng tay đối với file "vinaora_joomla.conf" Tham khảo thêm: • • Keywords: FAQ, security, config, configuration, configuration.php, public_html, web_root, secure files 36. Bảo mật toàn tập cho Website Joomla Wednesday, 30 May 2007 22:19 Bài viết này xin cung cấp cho bạn một loạt các thủ thuật để tăng cường bảo mật cho Website Joomla! được trích dẫn từ diễn đàn Joomla! ( Có thể một vài thủ thuật hơi khó thực hiện hoặc gây khó khăn, thâm chí là lỗi cho hệ thống của bạn, tuy nhiên đừng nản chí , mọi cái đều có giá của nó. Nếu không thiết lập một vòng đai an toàn cho Website sẽ có lúc bạn phải hối tiếc vì điều đó và thiệt hại có khi là không tính đếm được. Hãy tiến hành ngay khi có thể. 01. Luôn cập nhật phiên bản mới nhất (Joomla 1.0.x, Joomla 1.5) 02. Chỉ nên download Joomla! từ website chính thức Joomlacode.org và kiểm tra mã xác thực MD5 (nếu có) 03. Xóa thẳng tay những thư mục hoặc file không còn sử dụng. Sau khi cài đặt thành công Joomla, bạn phải xóa toàn bộ thư mục "installation". Nếu bạn upload lên Host bộ cài Joomla ở định dạng nén (*.zip), bạn cũng cần phải xóa bỏ file nén này. Tốt nhất là không nên để lại file hoặc thư mục gì ngoài gói Joomla. tha ht n g32 04. Tăng cường bảo vệ cho file cấu hình "configuration.php" bằng cách chuyển nó ra khỏi thư mục public (thường có tên là public_html). [Xem thêm] 05. Đổi tên tài khoản truy nhập Joomla thay vì tài khoản mặc định "admin". Bước này tưởng chừng rất đơn giản nhưng lại ngăn chặn được khá nhiều cuộc tấn công. [Xem thêm] 06. Chặn các truy vấn nguy hiểm nhờ file ".htaccess" [Xem thêm] 07. Bảo vệ các thư mục nhậy cảm, chẳng hạn thư mục "administrator" thông qua file ".htaccess" [Xem thêm] 08. Giới hạn các IP truy cập tới các thư mục nhậy cảm thông qua file ".htaccess" [Xem thêm] 09. Chọn Host có hỗ trợ PHP5. 10. Sử dụng các công cụ nổi tiếng như PHPsuExec, php_suexec và suPHP. 11. Nếu có thể, hãy yêu cầu Server nạp các module mod_security và mod_rewrite để lọc và chặn các truy vấn nguy hiểm. 12. Sử dụng tài khoản MySQL đã được thiết lập quyền giới hạn (không sử dụng tài khoản root). 13. Cố gắng nâng cấp các đoạn mã sang PHP5. Riêng gói Joomla thì bạn không cần lo lắng vì ngay từ ban đầu nó đã được thiết kế tương thích với PHP5. 14. Cố gắng không sử dụng các thành phần mở rộng yêu cầu "safe_mode" của PHP. 15. Tắt Joomla! Register Globals Emulation trong file "globals.php". [Xem thêm] define( 'RG_EMULATION', 0 ); 16. Thiết lập quyền truy cập (CHMOD) các thư mục sang 755, các file sang 644. Bạn có thể vào Site --> Global Configuration --> Server để thiết lập các quyền này cho thư mục và file. Bạn cũng có thể sử dụng một công cụ FTP như FileZilla, SmartFTP, WS_FTP, Net2FTP... để CHMOD. Lưu ý: Một số thành phần mở rộng trong quá trình cài đặt có thể yêu cầu quyền truy cập 777. 17. Xóa bỏ toàn bộ các template không sử dụng khỏi thư mục "templates" và không đặt bất cứ đoạn mã nhạy cảm nào vào các file trong template. 18. Thuê một chuyên gia bảo mật Joomla! để kiểm tra toàn bộ Website của bạn. Tham khảo thêm: • Joomla! Administrator's Security Checklist than hto g32 37. Bảo mật cho trang quản trị administrator bằng mật khẩu Bạn muốn ngăn chặn việc truy cập trái phép vào vùng quản trị, trang administrator (phần backend trong Joomla). Có nhiều giải pháp để thực hiện việc này. Bài viết này xin giới thiệu một cách khá đơn giản nhưng lại hiệu quả với mục đích "Tăng cường thêm một rào cản trước khi truy nhập được file index.php". Áp dụng trên Hosting chạy Apache Server. Cách thực hiện: Copy đoạn mã sau và đặt vào đầu của file "index.php" trong thư mục "Joomla\administrator\" <?php $name='439581667ef694b60d58f213cccf9503'; $pass='439581667ef694b60d58f213cccf9503'; if (!isset($_SERVER['PHP_AUTH_USER']) || md5($_SERVER['PHP_AUTH_USER'])!==$name || md5($_SERVER['PHP_AUTH_PW'])!==$pass) { header('WWW-Authenticate'); header('HTTP/1.0 401 Unauthorized'); exit('VINAORA : Access Denied'); } ?> Trong đó username = vinaora password = vinaora Tham khảo thêm: • Công cụ tạo mã hóa MD5 và một số loại mã hóa khác • Làm sao để thay đổi đường dẫn tới trang ad

Các file đính kèm theo tài liệu này:

  • pdfmeothuthuatsudugjjoomlaphan2.pdf