Sunday, December 18, 2011

Lập trình hướng đối tượng trong Java


Chương 1: Các khái niệm cơ bản Chuong 2: Lập trình hướng đối tượng (đối tượng, phương thức, lớp, giao diện, kế thừa, lớp cơ sở trừu tượng, lớp trong, da hình thái, gói, mảng, xâu ký tự, tập hợp,...)
Chương 3: Xử lý ngoại lệ(Mục đích, mô hình xử lý ngoại lệ, đặc tả ngoại lệ, ném ra ngoại lệ, ném ra ngoại lệ, bắt ngoại lệ, khối finaly, một số lớp chuẩn của java,...)
Chương 4: Lập trình đa tuyến
Chương 5: Nhập xuất (lớp luồng, lớp file...)
Chương 6: Lập trình đồ hoạ AWT ( giới thiệu về hệ thống đồ hoạ của java, trình quản lý hiển thị trong Java, xử lý sự kiện trong Java... )
Chương 7: Lập trình Cơ sở dữ liệu (tổng quan 143, các kiểu trình điều khiển JDBC, các lớp trong JDBC API dùng để truy cập CSDL, kết nối CSDL với JDBC, tương tác với CSDL, quản lý giao dịch...)
Chương 8: Lập trình Socket(khảo sát một số lớp trong gói Java.net, lớp URL và URI, lớp Socket, lớp ServerSocket, lớp DatagramSocket, lớp DatagramPacket,... )
Chương 9: Java Mail
Chương 10: Lập trình phân tán với Java RMI (REMOTE METHOD INVOKE)
Chương 11: Java JSP (JAVA SERVLET)
Chương 12: EJB( ENTERPRISE JAVA BEANS)

Lập trình hướng đối tượng trong Java


Chương 1: Các khái niệm cơ bản Chuong 2: Lập trình hướng đối tượng (đối tượng, phương thức, lớp, giao diện, kế thừa, lớp cơ sở trừu tượng, lớp trong, da hình thái, gói, mảng, xâu ký tự, tập hợp,...)
Chương 3: Xử lý ngoại lệ(Mục đích, mô hình xử lý ngoại lệ, đặc tả ngoại lệ, ném ra ngoại lệ, ném ra ngoại lệ, bắt ngoại lệ, khối finaly, một số lớp chuẩn của java,...)
Chương 4: Lập trình đa tuyến
Chương 5: Nhập xuất (lớp luồng, lớp file...)
Chương 6: Lập trình đồ hoạ AWT ( giới thiệu về hệ thống đồ hoạ của java, trình quản lý hiển thị trong Java, xử lý sự kiện trong Java... )
Chương 7: Lập trình Cơ sở dữ liệu (tổng quan 143, các kiểu trình điều khiển JDBC, các lớp trong JDBC API dùng để truy cập CSDL, kết nối CSDL với JDBC, tương tác với CSDL, quản lý giao dịch...)
Chương 8: Lập trình Socket(khảo sát một số lớp trong gói Java.net, lớp URL và URI, lớp Socket, lớp ServerSocket, lớp DatagramSocket, lớp DatagramPacket,... )
Chương 9: Java Mail
Chương 10: Lập trình phân tán với Java RMI (REMOTE METHOD INVOKE)
Chương 11: Java JSP (JAVA SERVLET)
Chương 12: EJB( ENTERPRISE JAVA BEANS)

Lý thuyết và bài tập visual FoxPro



Bài 1: Tạo tệp CSDL Bài 2: Nhập và sửa nội dung bản ghi
Bài 3: Quản lý cấu trúc tệp và bản ghi
Bài 4: Quản lý các tệp
Bài 5: Tìm kiếm tuần tự - Sắp xếp vật lý trên CSDL
Bài 6: Sắp xếp theo tệp chỉ số
Bài 7: Sắp xếp theo tệp chỉ số (tiếp)
Bài 8: Đặt lọc và tính toán trên CSDL
Bài 9: Làm việc với nhiều CSDL
Bài 10: Câu lệnh truy vấn có cấu trúc SQL
Phụ lục A: Các lệnh thường dùng
Phụ lục B: Các hàm xử lý CSDL thường dùng

Lý thuyết và bài tập visual FoxPro



Bài 1: Tạo tệp CSDL Bài 2: Nhập và sửa nội dung bản ghi
Bài 3: Quản lý cấu trúc tệp và bản ghi
Bài 4: Quản lý các tệp
Bài 5: Tìm kiếm tuần tự - Sắp xếp vật lý trên CSDL
Bài 6: Sắp xếp theo tệp chỉ số
Bài 7: Sắp xếp theo tệp chỉ số (tiếp)
Bài 8: Đặt lọc và tính toán trên CSDL
Bài 9: Làm việc với nhiều CSDL
Bài 10: Câu lệnh truy vấn có cấu trúc SQL
Phụ lục A: Các lệnh thường dùng
Phụ lục B: Các hàm xử lý CSDL thường dùng

Giáo trình Kinh tế chính trị Mác-Lênin

Nội dung kiến thức cơ bản theo giáo trình chuẩn, nhưng để đáp ứng yêu cầu tự học, tự nghiên cứu, cuốn sách có biên soạn lại nhằm giúp người học xác định rõ những kiến thức cơ bản (Dùng cho dinh viên hệ đào tạo từ xa) cần nắm vững và tạo điều kiện tiếp thu kiến thức thuận lợi hơn.


Giáo trình Kinh tế chính trị Mác-Lênin

Nội dung kiến thức cơ bản theo giáo trình chuẩn, nhưng để đáp ứng yêu cầu tự học, tự nghiên cứu, cuốn sách có biên soạn lại nhằm giúp người học xác định rõ những kiến thức cơ bản (Dùng cho dinh viên hệ đào tạo từ xa) cần nắm vững và tạo điều kiện tiếp thu kiến thức thuận lợi hơn.


một số cách bảo mật cho VBB

This summary is not available. Please click here to view the post.

một số cách bảo mật cho VBB

iện nay Tin học ở Việt Nam chúng ta phát triển mạnh mẽ , Các Website cá nhân, các diễn đàn (forum) nhiều vô kể. Tất nhiên từ đó sinh ra các hacker hoặc là anh chàng mới chập chững vào nghề mò mẫm tìm các phiên bản còn lỗi của các ứng dụng Web như shopping Online, các loại forum viết bằng ngôn ngữ PHP rong đó phải kể đến sự hiện diện của hai loại forum phổ biến nhất có thể nói trên toàn thế giới là Invision Board Forum(IBF) và Vbulletin Board (VBB).



Với nội dung khá phong phú, đó có thể là một nơi trao đổi của học sinh các trường phổ thông hay một nhóm người, một tổ chức hacker ,…Có những forum chuyên về hacking và bảo mật, âm nhạc, giao lưu học hỏi, …nói chung là đa dạng và phong phú.
Nhưng bảo mật đang là vấn đề bức bách của mỗi website, làm sao để có thể chống lại sự tấn công , làm sao để yên tâm trước sự đe dọa của mũ đen tin học.
Bài viết này tôi hi vọng sẽ góp phần nào cho công việc bảo mật của các Webmaster với hai ứng dụng IBF và VBB.

1. Chống Hack Local:
Hack local là nổi ám ảnh của các diễn đàn, đây là phương pháp hack khá dễ và độ thành công của nó rất cao.

Hacker tấn công theo phương pháp trên bằng cách nào? Đầu tiên họ sẽ làm thế nào đó để có thể có một hosting trên cùng server với hosting của bạn( mua bằng thẻ tín dụng, hay mua bằng tiền mặt). Sau đó sẽ upload lên host của họ một con remview.php (script này do nhóm hacker Nga viết). Họ sẽ chạy script này trên IE ví dụ:http://xxx.com/remview.php ; với tác dụng của script này , nó có thể xem toàn bộ các user trên Server đó, thậm chí có thể xem nội dung từng file trong các user này. Đối với forum IBF thì hacker xem nội dung file conf_global.php và forum VBB thì xem nội dung file config.php trong thư mục Includes, đây là 2 file chưa các thông tin về cơ sở dữ liệu trong forum của bạn. Như vậy là họ biết các thông số về Cơ sở dữ liệu trong forum (user DB,PassDB , Dbname). Qua đây hacker có thể khai thác tài nguyên bằng cách chạy một forum cùng chung Database với forum của bạn, và có thể Drop (xóa) tất cả Dữ liệu trong forum bạn.

Để chống lại cách hack local bạn cần phải làm thế nào đó cho các hacker không thể xem được nội dung của những file chứa thông tin cơ sở dữ liệu. ChMod là một phương pháp tốt để chống nó. ChMod các thư mục các file trong thư mục Forum. ChMod là thay đổi thuộc tính của thư mục, file nó cho phép người khác có thể xem , đọc, sửa chửa các file của bạn hay không.

Đầu tiên ChMod thư mục Public_html thành 710 hoặc 711(nếu Server cho phép). Bạn Chmod tất cả các thư mục thành 755, tiếp theo sau đó đối với forum IBF thì Chmod file conf_global.php và đối với forum VBB thì chmod file config.php thành 644. Như vậy hacker không thể xem nội dung 2 file quan trọng trên.

Thêm một phương pháp nữa là bạn mã hóa (Zencode) nội dung cả hai file trên. Phương pháp này rất an toàn nhưng có hạn chế là nếu bạn quên các thông tin về cơ sở dữ liệu thì không thể nào lấy lại được , có thể tham khảo tại Welcome to Zencode

2. Đổi tên , xóa các thư mục, dùng file robots.txt:
Các chương trình Scan Web có thể xem cấu trúc website của bạn, nhằm chống và hạn chế thì bạn có thể tham khảo các cách sau:
Đối với Forum VBB thì bạn tiến hành đổi tên thư mục AdminCP, ModCP trong file config.php. Bạn tìm và thay thế hai từ trên thành tên bất kì. Sau đó sẽ đổi tên cả hai thư mục đó thành tên mà bạn đã đổi trong file config.php
Xóa các thư mục: Đối với hai loại forum trên thì bạn nên xóa thư mục install khi đã cài đặt xong.

Xóa file: Nếu bạn đang sử dụng forum IBF phiên bản 1.3 thì xóa file: ssi.php và vì hacker có thể chiếm đoạt quyền Admin thông qua file ssi.php
Dùng file robots.txt: cách viết và sử dụng file này đã đăng trên nhiều số báo của Echip, bạn có thể xem lại

3. Không nên cập nhật ngay các phiên bản mới nhất:
Bởi các nhà viết Source không nhận ra các lỗi trong phiên bản này nên bạn cần lưu ý, trong quá trình sử dụng nên chọn phiên bản đã bảo mật tốt, không bị các lỗi để hacker khai thác. Sau khi họ đã cập nhật cách sửa lỗi thì lúc đó bạn Upgrade lên cũng chưa muộn.

4. Không nên hack quá nhiều Mod:
Đối với hai loại Forum phổ biến trên thì cập nhật thêm các công dụng rất nhiều, cũng chính trong quá trình đó phát sinh ra nhiều lỗi kĩ thuật (bug), bạn chỉ nên cập nhật các Mod cần thiết cho forum của mình.

5. Chống flood cho diễn đàn :
Ở hai loại forum này đã có các chế độ chống flood. Bắt buộc phải xác nhận ảnh (gồm chuổi chữ, số khi đăng kí. Định thời gian log out. Vì vậy bạn nên Enable các chức năng này trong Admin Control Panel .

6. Không cho sử dụng một số từ trong bài viết của thành viên:
Bạn nên bỏ chức năng sử dụng tag (thẻ html trong bài viết vì qua đây có thể lấy được ****** của thành viên khác.
Loại bỏ một số từ, kí tự: “,” , “;”, “//”, “/”.

7. Xóa ****** lần nữa khi đã logout:
Mặc dù cả hai loại forum trên đã có chế độ tự động xóa ****** mỗi khi thành viên log out nhưng nó thường xuyên bị lỗi, do vậy sau khi đã logout tốt nhất bạn nên vào Internet Option sau đó chọn Delete ******.

8. Gỡ bỏ chương trình Upload bằng FTP:
Một số chương trình sẽ lưu lại Username và mật khẩu của bạn nên sau khi đã hoàn thành Upload các file cần thiết lên thư mục nào đó trong forum bạn nên gỡ bỏ các chương trình này, vào Add/Remove Program để thực hiện chức năng này

9. Đặt file index.html hoặc file .htpasswd trong thư mục dành riêng cho nhóm người nào đó:
Đây là phương pháp ngăn không cho mọi người có thể tự động khai thác tài nguyên một cách vô tư , đồ “quý hiếm” dành cho một nhóm người nào đó trong Diễn đàn.
Bạn có thể tạo một file index.html với nội dung bất kì hoặc để trống , sau đó upload lên thư mục cần bảo mật.
Thứ hai là có thể đặt file .htpasswd với mật khẩu chỉ dành riêng cho nhóm người đó trong thư mục cần bảo mật.
Như trang này chúng ta có thể xem các công cụ hack của họ một cách thoải mái:
Nhanhoa.com - Offline

10. Thường xuyên vào các Website Bảo mật để xem thêm thông tin và cách khắc phục các lỗi cho Diễn đàn của mình

Cách phát hiện và loại bỏ shell trong Database

Nguyên văn bài của Vũ Thanh Lai - Administrator SinhvienIT.net

Và đây là kho thủ thuật vBB


  1.  vBulletin 4.x
  2.  vBulletin 3.x
  3.  All in One


-----------------------------------------------------------------------------------------------------------------------------


Có nhiều bạn hỏi tôi cách để phát hiện shell khi hacker include vào Database? Hôm nay tôi làm tut này để trả lời câu hỏi trên và giúp các bạn nhận thức thêm về vấn đề bảo mật.

Trước hết ta phải biết cách thức mà hacker include vào Data thế nào thì sau đó mới có phương pháp để loại bỏ triệt để. Các bạn tham khảo thêm bài viết Phương pháp include shell trong source VBB và cách phòng chống.
Tôi xin nói thêm trong vbb những table có thể lợi dụng để include shell vào là table_templatevà table_plugin.Vậy làm thế nào để phát hiện shell khi đã được include vào 2 table này nhỉ?
Cách làm như sau:
- Bạn vào Phpadmin của host và search từ khóa


base64



Và làm theo hướng dẫn như hình sau:





Tại sao ta phải search từ khóa base64 mà không phải là từ khóa khác ?
Xin thưa rằng tất cả các con shell hiện nay nếu không được mã hóa thì sẽ bị antivirut tiêu diệt trừ khi đổi tên file thành file.txt
- Việc còn lại của bạn là mở table khả nghi ra và kiểm tra xem có gì đặc biệt khác thường trong đó không.



Chú ý:
- Đối với table plugin thì bạn có thể delete đi mà không ảnh hưởng gì đến việc hoạt động site.
- Đối với table template nếu bạn thích thì cũng có thể delete còn muốn dùng lại skin đó thì hãy vào admincp rồi nhấn vào revert để vbb tự động edit lại skin cho bạn.
- Bạn có thể áp dụng cách này với những code khác như joomla, new, shop, etc...

Theo Vũ Thanh Lai - Administrator SinhvienIT.net

Cách phát hiện và loại bỏ shell trong Database

Nguyên văn bài của Vũ Thanh Lai - Administrator SinhvienIT.net

Và đây là kho thủ thuật vBB


  1.  vBulletin 4.x
  2.  vBulletin 3.x
  3.  All in One


-----------------------------------------------------------------------------------------------------------------------------


Có nhiều bạn hỏi tôi cách để phát hiện shell khi hacker include vào Database? Hôm nay tôi làm tut này để trả lời câu hỏi trên và giúp các bạn nhận thức thêm về vấn đề bảo mật.

Trước hết ta phải biết cách thức mà hacker include vào Data thế nào thì sau đó mới có phương pháp để loại bỏ triệt để. Các bạn tham khảo thêm bài viết Phương pháp include shell trong source VBB và cách phòng chống.
Tôi xin nói thêm trong vbb những table có thể lợi dụng để include shell vào là table_templatevà table_plugin.Vậy làm thế nào để phát hiện shell khi đã được include vào 2 table này nhỉ?
Cách làm như sau:
- Bạn vào Phpadmin của host và search từ khóa


base64



Và làm theo hướng dẫn như hình sau:





Tại sao ta phải search từ khóa base64 mà không phải là từ khóa khác ?
Xin thưa rằng tất cả các con shell hiện nay nếu không được mã hóa thì sẽ bị antivirut tiêu diệt trừ khi đổi tên file thành file.txt
- Việc còn lại của bạn là mở table khả nghi ra và kiểm tra xem có gì đặc biệt khác thường trong đó không.



Chú ý:
- Đối với table plugin thì bạn có thể delete đi mà không ảnh hưởng gì đến việc hoạt động site.
- Đối với table template nếu bạn thích thì cũng có thể delete còn muốn dùng lại skin đó thì hãy vào admincp rồi nhấn vào revert để vbb tự động edit lại skin cho bạn.
- Bạn có thể áp dụng cách này với những code khác như joomla, new, shop, etc...

Theo Vũ Thanh Lai - Administrator SinhvienIT.net

Cách bảo Mật cho VBB 4.x. Chống Hack - Biện pháp chống hack hiệu quả

Nguyên văn bài của Vũ Thanh Lai - Administrator SinhvienIT.net

Và đây là kho thủ thuật vBB


  1.  vBulletin 4.x
  2.  vBulletin 3.x
  3.  All in One


-----------------------------------------------------------------------------------------------------------------------------
Do tình hình đạo tặc ngày càng nhìu, số lượng anh em bị tấn công ngày tăng
->Viết cái tut hướng dẫn anh em bảo mật website tốt hơn. Nếu làm theo mình + server config tốt thì sẽ chắc chắn giảm đc 99% nguy cơ bị local attack



Ở đây mình nói là bảo mật cho website chứ ko phải là forum, tức là bạn hãy vận dụng những gì mình viết tiếp sau đây cho toàn bộ website của bạn, ko cần biết bạn đang dùng forum hay blog hay .....


Tuy nhiên, do số đông anh em đang xài forum vBulletin nên mình lấy mã nguồn vBulletin coi như làm mẫu.

Bây giờ chúng ta bắt đầu:
Mình sẽ nói sơ qua các bước ta sẽ tiến hành.
1. Thay đổi vị trí file chứa thông tin database (file config.php)
2. Thủ thuật bảo vệ file config.php
3. CHMOD bảo vệ các vùng nằm trong tầm ngắm của Attacker
4. Đổi vị trí AdminCP
5. Bảo vệ vùng AdminCP bằng htaccess
6. Cấu hình phân quyền user trên database
7. 1 số lời khuyên

Trước khi tiến hành các bạn hãy kiểm tra lại code của mình đã bị dính shell chưa, vì nếu dính rồi thì có làm cách mấy cũng có thể bị attack mà thôi

+ Vào admincp, vào mục Plugin manager xem có plugin nào lạ ko ? Nhất là các Plugin thuộc Product vBulletin
+ Xem thêm bài này
+ Down toàn bộ code về máy, dùng 1 trình antivirus mạnh quét qua code xem có phát hiện gì ko ?
Dùng KIS 2011-2012 hoặc BKAV 2011



1 & 2. Thay đổi vị trí file chứa thông tin database (file config.php) & thủ thuật bảo vệ file này
*Lưu ý: Đối với các bạn dùng mod VbSEO thì ko nên làm việc thay đổi vị trí file config.php vì Vbseo có dùng tới file này. việc thay đổi sẽ gây lỗi. Và mình cũng khuyên ko nên dùng VBseo nếu các bạn xài shared host haty VPS vì nó cức kì tiêu tốn tài nguyên server


- Bạn tạo 1 thư mục ngang hàng thư mục includes với tên bất kỳ, thư mục này sẽ chứa file config.php sau này.
Tuy nhiên bạn lưu ý, thư mục mới này mình sẽ tạo tên có dấu # ở đầu. VD, mình tạo thư mục tên là

#skin

*Lưu ý: chỉ host linux mới làm đc việc này, còn host windows thì ko. Bạn hãy tạo thư mục này thông qua ftp


Tiếp theo,Bạn mở file includes/class_core.php

Tìm
includes/config.php

Thay bằng

#skin/config.php
* Bạn sẽ tìm thấy 3 chỗ để thay (bao gồm 2 chỗ là code , 1 chỗ là chú thích)


Giải thích: Tên thư mục có dấu # ở đầu sẽ hạn chế đc rất nhiều nguy cơ attack, vì sao ?
Vì # là dấu phân cách địa chỉ đặc biệt, Ví dụ:
http://sinhvienit.net/test.php#cntt
-> trình duyệt sẽ chỉ gửi yêu cầu tới file http://sinhvienit.net/test.php và khi trang load xong nó sẽ cuộn thanh cuốn tới thẻ có ID là cntt


Như vậy nếu kẻ nào đó dùng shell đọc file config.php chằng hạn
Nếu theo cách bình thường thì nó sẽ gọi như sau:

ở đây mình ví dụ với shell c99 , như bạn thấy trong link trên dấu # đã phân cách chuỗi skin ra khỏi link
Vậy link trên sẽ tương đương link sau

-> ko còn đúng nữa, -> ko đọc đc nội dung file config.php


3. CHMOD bảo vệ các vùng nằm trong tầm ngắm của Attacker


* Đối với các bạn dùng host cPanel, mình khuyên các bạn CHMOD 400 cho file #skin/config.php , includes/class_core.php
* Đối với các bạn dùng host DirectAdmin, mình khuyên các bạn CHMOD 004 cho file #skin/config.php , includes/class_core.php


Sau khi chmod cho 2 file này xong


* Đối với các bạn dùng host cPanel, mình khuyên các bạn CHMOD 100 cho thư mục #skin và includes
* Đối với các bạn dùng host DirectAdmin, mình khuyên các bạn CHMOD 001 cho thư mục #skin và includes


Đây là 2 mức thấp nhất có thể chấp nhận đối với host. Bạn sẽ ko CHMOD đc qua ftp mà phải CHMOD thông qua hosting controler (DirectAdmin,cPanel ..) Khi CHMOD như vậy chính các bạn cũng ko truy cập đc tới các file và thư mục này, do đó khi muốn chỉnh sửa thì các bạn hãy chmod lại như ban đầu (file 644, thư mục 755) mới đoc hay backup đc

4. Đổi vị trí AdminCP

Mở file config.php tìm dòng

$config['Misc']['admincpdir'] = 'admincp';
Thay bằng

$config['Misc']['admincpdir'] = 'style';
chẳng hạn


SAu đó bạn dùng vào host đổi thư mục admincp thành style


Vậy bây giờ để vào admincp bạn ko vào bằng domain.com/forum/admincp/ nữa mà là domain.com/forum/style/


5. Bảo vệ vùng AdminCP bằng htaccess
Cái này các bạn có thể tham khảo bài này:
http://sinhvienit.net/@forum/showthread.php?t=5497
Mình xin hướng dẫn lại đối với hosting DirectAdmin và cPanel


a. cPanel, các bạn login vào host tìm tới mục sau:



Bạn duyệt tới thư mục cần bảo vệ, Bạn click vào biểu tường folder để vào típ thư mục trong. Click vào tên thư mục để cấu hình. Ở đây mình click vào biểu tượng folder vì thư mục admincp nằm trong thư mục này



Click vào thư mục admincp để cấu hình bảo vệ





Nhập thông báo ở cửa sổ đăng nhập khi người dùng vào thư mục này








Cấu hình username và mật khẩu



a. DirectAdmin, các bạn login vào host tìm tới mục sau:



Duyệt tới nơi có thư mục cần bảo vệ


Cấu hình thông tin đăng nhập



1 thư mục có thể thêm nhiều user, muốn quản lý hoặc sửa mật khẩu bạn vào mục sau



Và đây là kết quả:


Nếu đăng nhập thất bại hoặc Bấm Cancel






6. Cấu hình phân quyền user trên database
Đối với các hệ quản trị CSDL, mỗi user đều được phân cho 1 quyền hạn cố định. Khi tạo user cho database thì ta cũng phải phân quyền cho nó, phân cho nó có những quyền gì trên database này.
Theo thông thường, các bạn thường cho full quyền. Song có 1 số quyền ta ít dùng tới nhưng lại đc Attacker lợi dụng để Drop database. Đó là quyền DROP.
Vì vậy để hạn chế nguy cơ database bị Drop sạch sẽ khi Attacker lấy đc thông tin tài khoản Database ta sẽ bỏ quyền này đi.
a. Đối với host cPanel
Khi Add user vào database các bạn chú ý chỗ này:



b. Đối với DirectAdmin

Bạn Login vào host tìm tới mục sau





Chọn Database





Bấm vào Modify Privileges để phân quyền





Bỏ quyền Drop đối với user


7. 1 số lời khuyên

+ Khi biết mình có nguy cơ tấn công, hãy nhanh chóng Backup toàn bộ database và các file trên host (Ưu tiên database trước)
Xem thêm các Backup data ko bị lỗi: http://sinhvienit.net/@forum/showthread.php?t=36677
+ Thường xuyên backup database, hãy backup ở mức thường xuyên nhất có thể
+ Luôn để 1 bản sao y chang trên host ở máy mình
+ Thường xuyên theo dõi website, log, bảng điều khiển xem có gì lạ bất thường ko
+ Hãy giữ Password thật kỹ, tránh để lộ pass và nên thay đổi pass ngay nếu cảm thấy mình có thể đã bị lộ. Nhất là pass email
+ Khi đổi vị trí file config.php bạn ko nên đi chuyển hẳn file config.hp mà hãy để lại includes 1 bản sao file config.php với thông tin database ko đúng. Nếu có thể hãy tạo 1 databse giả và cho vào file config này thông tin của database giả luôn.
+ Những biên pháp mình nêu bên trên chỉ là tương đối, 1 attacker có kiến thức thực sự sẽ biết các vượt qua những gì mình nói. Tuy nhiên, đại đa số các attacker deface nạn nhân đều là những bạn tuổi đời còn trẻ với khát vọng khám phá và thử nghiệm những gì mới biết, kiến thức nắm chưa thật sâu nên giúp bạn có thể an toàn

nguồn: sinhvienit.net

Cách bảo Mật cho VBB 4.x. Chống Hack - Biện pháp chống hack hiệu quả

Nguyên văn bài của Vũ Thanh Lai - Administrator SinhvienIT.net

Và đây là kho thủ thuật vBB


  1.  vBulletin 4.x
  2.  vBulletin 3.x
  3.  All in One


-----------------------------------------------------------------------------------------------------------------------------
Do tình hình đạo tặc ngày càng nhìu, số lượng anh em bị tấn công ngày tăng
->Viết cái tut hướng dẫn anh em bảo mật website tốt hơn. Nếu làm theo mình + server config tốt thì sẽ chắc chắn giảm đc 99% nguy cơ bị local attack



Ở đây mình nói là bảo mật cho website chứ ko phải là forum, tức là bạn hãy vận dụng những gì mình viết tiếp sau đây cho toàn bộ website của bạn, ko cần biết bạn đang dùng forum hay blog hay .....


Tuy nhiên, do số đông anh em đang xài forum vBulletin nên mình lấy mã nguồn vBulletin coi như làm mẫu.

Bây giờ chúng ta bắt đầu:
Mình sẽ nói sơ qua các bước ta sẽ tiến hành.
1. Thay đổi vị trí file chứa thông tin database (file config.php)
2. Thủ thuật bảo vệ file config.php
3. CHMOD bảo vệ các vùng nằm trong tầm ngắm của Attacker
4. Đổi vị trí AdminCP
5. Bảo vệ vùng AdminCP bằng htaccess
6. Cấu hình phân quyền user trên database
7. 1 số lời khuyên

Trước khi tiến hành các bạn hãy kiểm tra lại code của mình đã bị dính shell chưa, vì nếu dính rồi thì có làm cách mấy cũng có thể bị attack mà thôi

+ Vào admincp, vào mục Plugin manager xem có plugin nào lạ ko ? Nhất là các Plugin thuộc Product vBulletin
+ Xem thêm bài này
+ Down toàn bộ code về máy, dùng 1 trình antivirus mạnh quét qua code xem có phát hiện gì ko ?
Dùng KIS 2011-2012 hoặc BKAV 2011



1 & 2. Thay đổi vị trí file chứa thông tin database (file config.php) & thủ thuật bảo vệ file này
*Lưu ý: Đối với các bạn dùng mod VbSEO thì ko nên làm việc thay đổi vị trí file config.php vì Vbseo có dùng tới file này. việc thay đổi sẽ gây lỗi. Và mình cũng khuyên ko nên dùng VBseo nếu các bạn xài shared host haty VPS vì nó cức kì tiêu tốn tài nguyên server


- Bạn tạo 1 thư mục ngang hàng thư mục includes với tên bất kỳ, thư mục này sẽ chứa file config.php sau này.
Tuy nhiên bạn lưu ý, thư mục mới này mình sẽ tạo tên có dấu # ở đầu. VD, mình tạo thư mục tên là

#skin

*Lưu ý: chỉ host linux mới làm đc việc này, còn host windows thì ko. Bạn hãy tạo thư mục này thông qua ftp


Tiếp theo,Bạn mở file includes/class_core.php

Tìm
includes/config.php

Thay bằng

#skin/config.php
* Bạn sẽ tìm thấy 3 chỗ để thay (bao gồm 2 chỗ là code , 1 chỗ là chú thích)


Giải thích: Tên thư mục có dấu # ở đầu sẽ hạn chế đc rất nhiều nguy cơ attack, vì sao ?
Vì # là dấu phân cách địa chỉ đặc biệt, Ví dụ:
http://sinhvienit.net/test.php#cntt
-> trình duyệt sẽ chỉ gửi yêu cầu tới file http://sinhvienit.net/test.php và khi trang load xong nó sẽ cuộn thanh cuốn tới thẻ có ID là cntt


Như vậy nếu kẻ nào đó dùng shell đọc file config.php chằng hạn
Nếu theo cách bình thường thì nó sẽ gọi như sau:

ở đây mình ví dụ với shell c99 , như bạn thấy trong link trên dấu # đã phân cách chuỗi skin ra khỏi link
Vậy link trên sẽ tương đương link sau

-> ko còn đúng nữa, -> ko đọc đc nội dung file config.php


3. CHMOD bảo vệ các vùng nằm trong tầm ngắm của Attacker


* Đối với các bạn dùng host cPanel, mình khuyên các bạn CHMOD 400 cho file #skin/config.php , includes/class_core.php
* Đối với các bạn dùng host DirectAdmin, mình khuyên các bạn CHMOD 004 cho file #skin/config.php , includes/class_core.php


Sau khi chmod cho 2 file này xong


* Đối với các bạn dùng host cPanel, mình khuyên các bạn CHMOD 100 cho thư mục #skin và includes
* Đối với các bạn dùng host DirectAdmin, mình khuyên các bạn CHMOD 001 cho thư mục #skin và includes


Đây là 2 mức thấp nhất có thể chấp nhận đối với host. Bạn sẽ ko CHMOD đc qua ftp mà phải CHMOD thông qua hosting controler (DirectAdmin,cPanel ..) Khi CHMOD như vậy chính các bạn cũng ko truy cập đc tới các file và thư mục này, do đó khi muốn chỉnh sửa thì các bạn hãy chmod lại như ban đầu (file 644, thư mục 755) mới đoc hay backup đc

4. Đổi vị trí AdminCP

Mở file config.php tìm dòng

$config['Misc']['admincpdir'] = 'admincp';
Thay bằng

$config['Misc']['admincpdir'] = 'style';
chẳng hạn


SAu đó bạn dùng vào host đổi thư mục admincp thành style


Vậy bây giờ để vào admincp bạn ko vào bằng domain.com/forum/admincp/ nữa mà là domain.com/forum/style/


5. Bảo vệ vùng AdminCP bằng htaccess
Cái này các bạn có thể tham khảo bài này:
http://sinhvienit.net/@forum/showthread.php?t=5497
Mình xin hướng dẫn lại đối với hosting DirectAdmin và cPanel


a. cPanel, các bạn login vào host tìm tới mục sau:



Bạn duyệt tới thư mục cần bảo vệ, Bạn click vào biểu tường folder để vào típ thư mục trong. Click vào tên thư mục để cấu hình. Ở đây mình click vào biểu tượng folder vì thư mục admincp nằm trong thư mục này



Click vào thư mục admincp để cấu hình bảo vệ





Nhập thông báo ở cửa sổ đăng nhập khi người dùng vào thư mục này








Cấu hình username và mật khẩu



a. DirectAdmin, các bạn login vào host tìm tới mục sau:



Duyệt tới nơi có thư mục cần bảo vệ


Cấu hình thông tin đăng nhập



1 thư mục có thể thêm nhiều user, muốn quản lý hoặc sửa mật khẩu bạn vào mục sau



Và đây là kết quả:


Nếu đăng nhập thất bại hoặc Bấm Cancel






6. Cấu hình phân quyền user trên database
Đối với các hệ quản trị CSDL, mỗi user đều được phân cho 1 quyền hạn cố định. Khi tạo user cho database thì ta cũng phải phân quyền cho nó, phân cho nó có những quyền gì trên database này.
Theo thông thường, các bạn thường cho full quyền. Song có 1 số quyền ta ít dùng tới nhưng lại đc Attacker lợi dụng để Drop database. Đó là quyền DROP.
Vì vậy để hạn chế nguy cơ database bị Drop sạch sẽ khi Attacker lấy đc thông tin tài khoản Database ta sẽ bỏ quyền này đi.
a. Đối với host cPanel
Khi Add user vào database các bạn chú ý chỗ này:



b. Đối với DirectAdmin

Bạn Login vào host tìm tới mục sau





Chọn Database





Bấm vào Modify Privileges để phân quyền





Bỏ quyền Drop đối với user


7. 1 số lời khuyên

+ Khi biết mình có nguy cơ tấn công, hãy nhanh chóng Backup toàn bộ database và các file trên host (Ưu tiên database trước)
Xem thêm các Backup data ko bị lỗi: http://sinhvienit.net/@forum/showthread.php?t=36677
+ Thường xuyên backup database, hãy backup ở mức thường xuyên nhất có thể
+ Luôn để 1 bản sao y chang trên host ở máy mình
+ Thường xuyên theo dõi website, log, bảng điều khiển xem có gì lạ bất thường ko
+ Hãy giữ Password thật kỹ, tránh để lộ pass và nên thay đổi pass ngay nếu cảm thấy mình có thể đã bị lộ. Nhất là pass email
+ Khi đổi vị trí file config.php bạn ko nên đi chuyển hẳn file config.hp mà hãy để lại includes 1 bản sao file config.php với thông tin database ko đúng. Nếu có thể hãy tạo 1 databse giả và cho vào file config này thông tin của database giả luôn.
+ Những biên pháp mình nêu bên trên chỉ là tương đối, 1 attacker có kiến thức thực sự sẽ biết các vượt qua những gì mình nói. Tuy nhiên, đại đa số các attacker deface nạn nhân đều là những bạn tuổi đời còn trẻ với khát vọng khám phá và thử nghiệm những gì mới biết, kiến thức nắm chưa thật sâu nên giúp bạn có thể an toàn

nguồn: sinhvienit.net