MỤC LỤC HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG Đề tài : Xây dựng website quản lý bảo hành xe máy có sử dụng bảo mật an toàn Web & CSDL Nhóm sinh viên thực hiện : Nguyễn Minh Thuận
Trang 1MỤC LỤC
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Đề tài : Xây dựng website quản lý bảo hành xe máy có sử dụng bảo mật an
toàn Web & CSDL
Nhóm sinh viên thực hiện : Nguyễn Minh Thuận
Nguyễn Ngọc Tiểu Long
Lớp : D19CQAT01-N
Trần Đặng Khánh Trình
Thành phố Hồ Chí Minh, Ngày 20 tháng 12 năm 2022
Trang 3
Lời mở đầu
Trong thời đại công nghệ phát triển hiện nay, việc đảm bảo an ninh thông tin trên không gian mạng đang là vấn đề dành được nhiều sự quan tâm Nguy cơ mất an toàn thông tin đang là mối đe dọa lớn và ngày càng gia tăng đối với an ninh quốc gia Có nhiều mục tiêu mà tin tặc thường nhắm tới như các máy chủ dịch vụ mạng, hệ thống cơ sở hạ tầng mạng.
Trong đó các hệ thống website đang là mục tiêu khá phổ biến do tính phổ cập và dễ tiếp cận đối với tin tặc Do đó việc bảo mật cho các website hiện được chú trọng và đặt ra các yêu cầu đặc biệt đối với việc kiểm thử.
Trước vấn đề đặt ra đó nhóm chúng em dưới sự cố vấn của Thầy Ths.” ” đã tìm ra giải pháp cho ứng dụng web thông qua một số kỹ thuật bảo mật ứng dụng web &csdl
II XÁC ĐỊNH YÊU CẦU
A Đảm bảo an toàn bảo một ứng dụng web
Trang 4Dựa vào danh sách 7 dạng tấn công thường gặp lên web
1 Chèn mã HTML và Cross-Site Scripting (XSS)
2 Cross-Site Request Forgery (CSRF)
3 Tấn công chèn mã SQL (SQL Injection)
4 Tấn công vào các cơ chế xác thực (Authentication attacks)
5 Tấn công lợi dụng các khiếm khuyết thiết kế (Logic attacks)
6 Tấn công trình duyệt web và sự riêng tư của người dùng
7 Một số case-studies về lỗ hổng và tấn công ứng dụng web Dựa theo danh sách 6 biện pháp
1 Xác thực người dùng và trao quyền truy nhập
2 Bảo mật phiên làm việc
3 Bảo mật máy chủ web
4 Bảo mật cơ sở dữ liệu web
5 Bảo mật hệ thống file
6 Bảo mật trình duyệt web
B Đảm bảo an toàn bảo mật CSDL
Các yêu cầu về bảo mật CSDL
1 Tính bí mật
2 Tính toàn vẹn
3 Tính sẵn dùng Dựa vào danh sách 10 lỗ hổng CSDL trên thực tế
1 Default and Weak Password (Các mật khẩu yếu hoặc ngầm định)
2 SQL Injection in the DBMS (Lỗi chèn mã SQL)
3 Excessive User & Group Privileges (Đặc quyền quá mức cho người dùnghoặc nhóm người dùng)
4 Unnecessary Enabled DBMS Features (Cho phép các tình năng không sửdụng trong DBMS)
5 Broken Configuration Management (Quản lý cấu hình lỗi)
6 Buffer Overflows (Lỗi tràn bộ đệm)
7 Priviledge Escalation (Leo thang đặc quyền)
Trang 58 Denial of Service (Tấn công từ chối dịch vụ)
9 Unpatched Database (CSDL không được vá)10.Unencrypted Data (Dữ liệu không mã hóa)III TỔNG QUAN XÂY DỰNG ĐỀ TÀI WEB
- Với đề tài “Xây dựng website quản lý bảo hành xe máy có sử dụng bảomật an toàn web và CSDL” chúng em đã xây dựng như sau:
- 1 Về ngôn ngữ lập trìnhJava, SQL Server, Framework: Springboot, Bootstrap
- 2 Về giao diệnGồm phần Frontend: Trang chủ,Trang Đăng nhập, quản lí khách hàng,quản lí nhân viên, Quản lí xe của khách, quản lí phiếu bảo hành
Backend: xây dựng mô hình MVC : Model-view-controller
Cơ sở dữ liệu : Dùng SQL Server để quản lí thông tin sản phẩm, thông tinngười sử dụng(admin, user, người dùng, )
1 Màn hình đăng nhập
Trang 62 Giao diện cho khách
- Trang chủ website:
- Xem trạng thái bảo hành xe:
Trang 7- Kiểm tra thời hạn bảo hành:
- Yêu cầu bảo hành:
Trang 83 Giao diện cho nhân viên
* Thực hiện các chức năng gồm có:
- Quản lý khách hàng:
Trang 9+ Thêm khách hàng:
Trang 10+ Chỉnh sửa thông tin khách hàng:
Trang 11+ Xóa khách hàng:
- Quản lý xe của khách:
Trang 12+ Thêm xe:
Trang 13+ Chỉnh sửa thông tin xe:
+ Xóa xe:
Trang 14- Quản lý loại xe:
+ Thêm loại xe:
+ Chỉnh sửa thông tin loại xe:
Trang 15+ Xóa loại xe:
- Quản lý phiếu bảo hành:
Trang 16+ Tạo phiếu bảo hành cho khách đến trực tiếp:
Trang 17+ Chỉnh sửa phiếu bảo hành:
Trang 18+ Xóa phiếu bảo hành:
Trang 19+ Thông tin chi tiết phiếu bảo hành:
- Quản lý Account:
+ Tạo tài khoản:
Trang 20+ Chỉnh sửa thông tin Account:
- Quản lý nhân viên:
Trang 21+ Thêm nhân viên:
+ Chỉnh sửa thông tin nhân viên:
Trang 22+ Xóa nhân viên:
Trang 23- 3 Về tính năngGồm “4” tính năng:
- Tính năng đăng nhập cho user, admin
- Tính năng nhân viên (Hiệu chỉnh quản lí xe, phụ tùng, phiếu bảohành, )
- Tính năng admin(Quản lí nhân viên,accounts, toàn quyền quản lí củahàng)
- Tính năng cho người dùng (xem trạng thái bảo hành, thêm yêu cầu bảo hành, kiểm tra tình trạng bảo hành, )
- Quản lý loại phụ tùng:
+ Thêm loại phụ tùng:
Trang 24+ Chỉnh sửa thông tin loại xe:
+ Xóa loại xe:
- Quản lý phụ tùng:
Trang 25+ Thêm phụ tùng:
Trang 26+ Chỉnh sửa phụ tùng:
+ Xóa phụ tùng:
Trang 27IV ÁP DỤNG AN TOÀN BẢO MẬT WEB
- Dựa vào quá trình học chúng em đã xây dựng được các biện pháp bảomật web dựa trên Spring Security, là:
- Xác thực người dùng và quyền truy cập
- Bảo mật cơ sở dữ liệu web
- cụ thể thông qua các method từ thư viên Spring Securitynhư sau:
1 Method mà chúng ta xem xét đầu tiên là : protected void
configure(HttpSecurity http) throws Exception là phương pháp để
Bảo mật phiên làm việc
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
// Các trang không yêu cầu login như vậy ai cũng có thể vào được admin hay user hoặc guest có thể vào các trang
antMatchers( "/WEB/**" ).permitAll()
// Trang /manager yêu cầu phải login với vai trò USER hoặc ADMIN.
antMatchers( "/manager/**" ).hasAnyAuthority( "USER" , "ADMIN" )
// Trang chỉ dành cho ADMIN
antMatchers( "/admin/**" ).hasAnyAuthority( "ADMIN" )
anyRequest().authenticated() //
.and() // Cấu hình cho Login Form.
// Submit URL của trang login
loginProcessingUrl( "/j_spring_security_check" )
//cấp quyền đang nhập cho trnag login
loginPage( "/login" ).permitAll()
//đây Khi đăng nhập thành công thì vào trang này.
userAccountInfo sẽ được khai báo trong controller để hiển thị trang view tương ứng
Trang 28defaultSuccessUrl( "/manager/customers" , true )
// Khi đăng nhập sai username và password thì nhập lại
// Nhưng cố ý truy cập vào trang admin
// N goại lệ AccessDeniedException sẽ ném ra.
// Ở đây mình tạo thêm một trang web hiển thị lỗi rolefail
//CSRF ( Cross Site Request Forgery) là kĩ thuật tấn công bằng cách sử dụng quyền chứng thực của người sử dụng đối với 1 website khác
3 public PasswordEncoder passwordEncoder() {
4 return new BCryptPasswordEncoder();
Trang 293 Để áp dụng phương pháp Xác thực người dùng và quyền truy cậpchúng em
sử dụng mothod 3 và 4 như sau
Method thứ 3 là protected void configure(AuthenticationManagerBuilder
ai trong hệ thống , UserName này có quyền gì
@ Bean
public UserDetailsService userDetailsService () {
return new UserDetailsServiceImpl();
session.setAttribute( "username" ,user.getUsername());
Object ruri = session.getAttribute( "redirect-uri" );
Trang 30public DaoAuthenticationProvider authenticationProvider() {
Ta có class như sau:
public class ReCaptchaResponse {
private boolean success ;
private String challenge_ts ;
private String hostName ;
public boolean isSuccess() {
return success ;
public void setSuccess( boolean success ) {
this success = success ;
public String getChallenge_ts() {
return challenge_ts ;
public void setChallenge_ts(String challenge_ts ) {
this challenge_ts = challenge_ts ;
public String getHostName() {
return hostName ;
Trang 31public void setHostName(String hostName ) {
this hostName = hostName ;
- Tấn công vào các cơ chế xác thực (Authentication attacks)
- Tấn công lợi dụng các khiếm khuyết thiết kế (Logic attacks)
- Tấn công trình duyệt web và sự riêng tư của người dùng
- Một số case-studies về lỗ hổng và tấn công ứng dụng web
V ÁP DỤNG AN TOÀN BẢO MẬT CSDL
- Và các kỹ thuật đã áp dụng vào ứng dụng của chúng em gồm
1 Xác thực, trao quyền và bảo mật mật khẩu
2 Bảo mật các đối tượng trong CSDL
Trang 32- 1 Trong đó:Tính toàn vẹnđược thể hiện qua
Liên kết của các thực thể users bao gồm user_roles với mỗi loại user
(admin,nhanvien,khachhang) sẽ có một phân quyền riêng với roles
- 2 Để đảm bảo Phương pháp Xác thực, trao quyền và bảo mật mật khẩuDatabase chúng em đã thiết lập password và phân quyền trên SQL Server cụthể như sau:
Trang 33- AdminQLBHX : Toàn quyền.
- Sqluser2 : được phép thêm,sửa xóa.(Cụ thể khách hàng, xe, loại xe, phụ tùng, phiếu bảo hành)
- Sqluser1: Chỉ được phép xem
- Guest : Chỉ được xem phiếu bảo hành, xe
- 3 Sử dụng mã hóa trong CSDL
Các thông tin password ccuaruser được lưu trong database dưới dạng mã hóa
Trang 34VI CODE VÀ DEMO
- Source Code :
- Video Demo :VII PHÂN CÔNG VÀ NHIỆM VỤ CỦA TỪNG THÀNH VIÊN
hoàn thành
MinhThuận
Xây dựng giao diện cho người dùng và nhânviên, xây dựng tính năng(thêm,tạo,xóa,sửa)
và phát triển mã hóa, phân quyền cho users
và Database
13/12/2022
Ngọc TiểuLong
Xây dựng Database, xây dựng hệ thống xácthực capcha, thiết kế xây dựng đồ án mônhọc hoàn chỉnh (dạng word)
17/12/2022
3
Trang 35