0% found this document useful (0 votes)
9 views2 pages

Security in Java Backend

Security in java backend

Uploaded by

stellarhold170nt
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views2 pages

Security in Java Backend

Security in java backend

Uploaded by

stellarhold170nt
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 2

Nếu xử lý backend ở phía client thì sẽ gặp những vấn đề bảo mật

1. Lộ mã nguồn: Khi mã backend chạy trên phía client, nó có thể bị truy cập và xem bởi
người dùng. Người dùng có thể tìm cách đảo ngược kỹ thuật (reverse engineer) mã
nguồn và tìm ra các thông tin nhạy cảm như API keys, thông tin xác thực, hoặc logic
của ứng dụng
2. Tấn công giả mạo: Nếu logic của ứng dụng được xử lý trên client, kẻ tấn công có thể
tạo ra yêu cầu giả mạo để thay đổi dữ liệu hoặc thực hiện các hành động không mong
muốn. Ví dụ, nếu xác thực người dùng hoặc kiểm tra quyền truy cập xảy ra ở phía
client, kẻ tấn công có thể bỏ qua các kiểm tra này
3. Không thể kiểm soát môi trường: Client có thể chạy trên nhiều loại thiết bị và hệ
điều hành khác nhau, mà bạn không thể kiểm soát. Điều này có thể tạo ra lỗ hổng bảo
mật mà không thể lường trước được. Môi trường client có thể bị nhiễm malware hoặc
phần mềm độc hại khác, khiến cho việc bảo mật trở nên khó khăn hơn
4. Quản lý phiên không an toàn: Nếu bạn quản lý phiên người dùng (session
management) ở phía client, nó có thể dẫn đến các vấn đề như session hijacking (đánh
cắp phiên). Kẻ tấn công có thể dễ dàng lấy được thông tin phiên từ client và sử dụng
nó để truy cập vào tài khoản người dùng
5. Khó khăn trong bảo trì và nâng cấp: Nếu logic backend được tích hợp trong ứng
dụng client, bất kỳ thay đổi nào cần thiết cho backend sẽ yêu cầu phát hành lại ứng
dụng client. Điều này có thể gây khó khăn trong việc duy trì và cập nhật ứng dụng,
đặc biệt là khi có nhiều phiên bản ứng dụng đang chạy

Giải pháp

1. Kiến trúc Client-server


Server: Chịu trách nhiệm xử lý logic nghiệp vụ, quản lý cơ sở dữ liệu, xác thực
người dùng, và cung cấp API. Server sẽ xử lý tất cả các yêu cầu từ client và gửi
lại dữ liệu đã được xử lý
Client: Gửi yêu cầu đến server và nhận dữ liệu từ server để hiển thị cho người
dùng. Client chỉ thực hiện các nhiệm vụ như hiển thị giao diện và tương tác với
người dùng
2. Quy trình giao tiếp
Gửi yêu cầu: Client gửi yêu cầu (HTTP request) đến server thông qua API,
thường là một Restful API hoặc GraphQL API
Xử lý trên server: Server nhận yêu cầu, xử lý logic, thực hiện các phép toán cần
thiết, và truy cập cơ sở dữ liệu nếu cần
Gửi phản hồi: Sau khi xử lý, server gửi lại phản hồi (HTTP response) chứa dữ
liệu cần thiết cho client, thường dưới dạng JSON hoặc XML
Hiển thị dữ liệu: Client nhận dữ liệu và hiển thị cho người dùng
3. Ví dụ về quy trình
Khi người dùng nhập thông tin vào một biểu mẫu trên client và nhấn nút gửi,
client sẽ gửi một yêu cầu POST đến server với dữ liệu từ biểu mẫu.
Server nhận yêu cầu, xác thực dữ liệu, và thực hiện các thao tác cần thiết (chẳng
hạn như lưu vào cơ sở dữ liệu).
Sau khi hoàn tất, server gửi lại một phản hồi với thông tin thành công hoặc thông
báo lỗi.
Client nhận phản hồi và cập nhật giao diện người dùng cho phù hợp (ví dụ: hiển
thị thông báo thành công hoặc thông báo lỗi)

You might also like