Việc tấn công the SQL Injection dựa vào những câu thông báo lỗi do đó việc phòng chống hay nhất vẫn là không cho hiển thị những thông điệp lỗi cho ngời dùng bằng cách thay thế những lỗi thông báo bằng 1 trang do ngời phát triển thiết kế mỗi khi xảy ra trên ứng dụng.
Ta có thể thiết lập một trang ASP báo lỗi tùy biến nh sau: 1. Tạo trang báo lỗi “error.asp” lu vào th mục chứa trang web. 2. Mở trình Internet Services Manager trong MMC.
3. Mở rộng phạm vi theo dõi Default Web Site của bạn.
4. Kích chuột phải vào th mục chứa trang web và chọn Properties. 5. Kích vào tab Custom Errors.
6. Cuộn xuống và kích chọn vào 500;100 HTTP error và kích vào Edit Properties.
7. Thiết lập Message Type thành URL.
web
9. Kích OK để trở lại MMC.
Xây dựng các hàm để kiểm soát dữ liệu đầu vào một cách cẩn thận tức là những dữ liệu vào nào đợc chấp nhận và loại bỏ tất cả các dữ liệu không liên quan mà cụ thể là nên loại bỏ những ký tự đặt biệt, những khoảng trắng, những từ khoá liên quan đến việc truy cập, sửa đổi và cập nhật dữ liệu.
- Thủ thuật khử nháy đơn (')
- Thủ thuật từ chối dữ liệu bất hợp lệ - Thủ thuật ràng buộc nhập dữ liệu hợp lệ --- Sử dụng VBScript xây dựng các hàm sau: - Khử nháy đơn function escape(input) input = replace(input,"'",""") escape = input end function - Từ chối dữ liệu bất hợp lệ
function validate_string( input) known_bad =
array("select","insert","update","delete","drop","--","'","@ @","% %",";",">","<","+","-","$","*","#")
validate_string = true
for i = lbound( known_bad ) to ubound( known_bad ) if (instr(1, input, known_bad(i),vbtextcompare)<>0) then validate_string = false
web
end if next
end function
- Ràng buộc nhập dữ liệu hợp lệ
function validatepassword( input ) good_password_chars =
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW XYZ0123456 789"
validatepassword = true for i = 1 to len (input) c = mid( input, i, 1) if (Instr(good_password_chars,c) = 0) then validatepassword =false end if next end function
Khóa chặt SQL Server (SQL Server Lockdown)
Đây là phơng pháp bảo mật ở mức độ quản trị cơ sở dữ liệu. o Xác định các phơng pháp kết nối đến server:
Dùng các chơng trình tiện ích để kiểm tra rằng chỉ có các th viện mạng đang dùng là hoạt động.
o Kiểm tra tất cả các tài khoản có trong SQL Server
Chỉ tạo tài khoản có quyền cấp thấp cho các ứng dụng Loại bỏ những tài khoản không cần thiết
Đảm bảo rằng tất cả các tài khoản có một mật khẩu hợp lệ,…
o Kiểm tra các đối tợng tồn tại.
Nhiều extended stored procedure có thể đợc xóa bỏ một cách an toàn. Nếu điều này thực hiện, thì cũng nên xem xét việc
web
loại bỏ luôn những tập tin .dll chứa mã của các extended stored procedure
Xóa bỏ tất cả các cơ sở dữ liệu mẫu nh “northwind” và “pubs” Xóa các stored procedure không dùng nh:
master..xp_cmdshell, xp_startmail, xp_sendmail, sp_makewwebtask
o Kiểm tra những tài khoản nào có thể truy xuất đến những đối tợng nào
Đối với những tài khoản của một ứng dụng nào đó dùng để truy xuất cơ sở dữ liệu thì chỉ đợc cấp những quyền hạn cần thiết tối thiểu để truy xuất đến những đối tợng nó cần dùng. Kiểm tra các phiên làm việc trên server
Thay đổi “Startup và chạy SQL Server” ở mức ngời dùng quyền hạn thấp trong SQL Server Security.
• Ngày nay khi mà việc xây dựng các ứng dụng thơng mại điện tử ngày càng phát triển, việc bảo mật ứng dụng là việc tối cần thiết. Nhng vẫn còn nhiều ứng dụng do sự yếu kém của nhà lập trình, sự thiếu kiến thức về bảo mật, thiếu sự giám sát của nhà quản trị mạng, lỗi SQL injection vẫn còn phổ biến trên khá nhiều website.
web
web
Nh vậy là tôi đã đăng nhập với tài khoản admin và có toàn quyền chỉnh sửa, thêm bài viết, tạo, thay đổi các tài khoản của website. Một lỗi SQL injection nghiêm trọng!
Tơng tự chúng ta kiểm tra website sau: www.so1tech.com.vn Xuất hiện giao diện web:
Tiếp tục vào đăng nhập của website để liên hệ mua hàng: Tên truy cập: ‘or =’’ ’
Mật khẩu: ‘or =’’ ’
web
Sau khi vaò đợc website sẽ xuất hiện giao diện mua hàng của công ty nh sau:
Lúc này chúng ta sẽ tiến hành mua sản phẩm của công ty, ngoài ra chúng ta có thể tìm hiểu thêm và có thể sẽ vào quyền admin để thay đổi nội dung thông tin.
web
http://www.so1tech.com.vn http://www.petromekong.com.vn http://xinhmobile.com...
Lời kết
Trên đây là toàn bộ nội dung báo cáo đồ án tốt nghiệp do nhóm sinh viên lớp 45K – Khoa công nghệ thông tin thực hiện. Mặc dù phần lớn công việc đã đợc thực hiện và quá trình tìm hiểu nội dung đã xong. Nhng do trình độ và thời gian còn hạn hẹp nên không tránh khỏi thiếu sót. Chúng em rất mong sự góp ý của Các Thầy giáo Cô giáo và các bạn sinh viên để làm tốt hơn cho những lần sau. Cuối cùng một lần nữa nhóm chúng Em xin chân thành cảm ơn sự giúp đỡ nhiệt tình của Thầy giáo Ts: Nguyễn Trung Hoà đã giúp đỡ chúng Em hoàn thành đồ án này.
Xin trân trọng cảm ơn!
Vinh, ngày 10 tháng 4 năm 2010 sinh viên thực hiện
web
web
Tài liệu tham khảo
[1] Internetworking Design Basics, Copyright Cisco Press 2003. [2] Internetwork Design Guide, Copyright Cisco Press 2003. [3] LAN Design Manual. BICSI.
[4] Mạng Máy tính và các hệ thống mở Nguyễn Thúc Hải NXBGD 1999 [5] Mạng căn bản - NXB Thống Kê.
[6] Giáo trình: Quản trị mạng – HTC.
[7] Mạng máy tính : Nguyễn Gia Hiểu – NXB Thông Tin.
[8] Giáo trình: Thiết kế và xây dựng mạng LAN và WAN - Dự án 112. [9] TCP/IP Network Administration. Craig Hunt, O’Reilly & Associates. [10] www.Quantrimang.com
[11] http://www.google.com.vn