Bảo vệ thanh toánChi tiết
- Chỉnh sửa trong phạm vi gói là miễn phí.
- Nếu bạn không phản hồi trong vòng 3 ngày sau khi bàn giao, kết quả sẽ được tự động chấp nhận.
Số tiền được tạm giữ khi bạn thanh toán và chỉ được chuyển khi bạn chấp nhận kết quả.

Ví dụ kết quả
Review code: script Python nhập đơn hàng cho shop online nhỏ
Code đang làm gì
- Đọc
orders.csvxuất từ shop. - Với mỗi dòng đơn, tìm sản phẩm theo SKU trong
stock.xlsxvà trừ số lượng. - Ghi lại tồn kho mới và lưu tổng kết vào
import_log.txt.
Cấu trúc rõ ràng, tên hàm đặt tốt. Phần lớn lỗi đến từ dữ liệu đầu vào không giống như script mong đợi.
Lỗi và điểm yếu
| # | Dòng | Mức độ | Vấn đề |
|---|---|---|---|
| 1 | 48 | Cao | Cùng một file CSV có thể bị nhập hai lần; không kiểm tra mã đơn đã xử lý. Đây là nguyên nhân khả dĩ nhất khiến tồn kho âm. |
| 2 | 72 | Cao | int(row["qty"]) crash khi gặp giá trị rỗng hoặc "2.0" từ đơn hoàn tiền. |
| 3 | 95 | Trung bình | Tìm SKU phân biệt hoa thường: "gt-101" và "GT-101" bị coi là hai sản phẩm khác nhau. |
| 4 | 130 | Trung bình | Mở file không có encoding="utf-8", tên sản phẩm có dấu tiếng Việt bị lỗi trên Windows. |
| 5 | 201 | Thấp | except: trống che mất lỗi thật, khiến log vô dụng. |
Đoạn code đã sửa
Lỗi 1: bỏ qua đơn đã nhập
processed = load_processed_ids("processed_orders.txt")
for row in reader:
if row["order_id"] in processed:
continue
# ... logic hiện có ...
processed.add(row["order_id"])
save_processed_ids("processed_orders.txt", processed)
Lý do: mỗi đơn chỉ được trừ kho một lần, kể cả khi chạy lại script trên cùng file.
Lỗi 2: đọc số lượng an toàn
raw = (row.get("qty") or "").strip()
try:
qty = int(float(raw))
except ValueError:
log.warning("Đơn %s: số lượng %r không hợp lệ, bỏ qua", row["order_id"], raw)
continue
Lý do: dòng hoàn tiền hoặc hoàn một phần được bỏ qua kèm ghi chú rõ ràng, thay vì dừng cả lượt nhập.
Lỗi 3: chuẩn hóa SKU
sku = row["sku"].strip().upper()
Áp dụng .strip().upper() tương tự khi tạo dictionary tồn kho.
Phong cách và khả năng đọc
process()dài 90 dòng; nên tách thànhread_orders,apply_to_stock,write_report.- Thay số cột cố định (
row[7]) bằng tên tiêu đề cột.
Hãy thử từng chỗ sửa trên bản sao file của bạn: chúng tôi đã đọc code nhưng chưa chạy thử.
Khách hàng: chủ một shop trà online, tự viết script Python 310 dòng để nhập đơn từ file CSV xuất từ shop vào bảng tồn kho Vấn đề gặp phải: "Thỉnh thoảng tồn kho bị âm, và script bị crash với một số file."
Khách hàng và mọi thông tin đều là giả định.
Về dịch vụ này
Nhiều lỗ hổng bảo mật nhìn thấy ngay trong mã: lệnh SQL hoặc shell ghép từ dữ liệu người dùng, đầu ra in ra mà không escape, mật khẩu lưu bằng hàm băm nhanh, kiểm tra xác nhận người dùng là ai nhưng không kiểm tra họ được truy cập gì, và khóa viết thẳng vào mã nguồn. Chúng tôi đọc mã của bạn với OWASP Top 10 làm danh sách kiểm tra, giải thích từng điểm yếu và cách nó có thể bị lợi dụng, rồi xếp hạng theo mức rủi ro. Mỗi phát hiện đều kèm đoạn mã đã sửa theo mẫu an toàn cho ngôn ngữ của bạn.
Bao gồm những gì
- Bạn nhận được gìBản review bằng văn bản trên trang đơn hàng: các điểm yếu xếp theo mức rủi ro kèm giải thích từng điểm, và các đoạn mã đã sửa theo mẫu an toàn. Gói Cao cấp có thêm danh sách kiểm tra ngắn để gia cố phần còn lại của dự án.
- InjectionSQL, shell và template injection
- Escape đầu raRủi ro cross-site scripting
- Kiểm tra quyền truy cậpAi được xem và thay đổi gì
- Mật khẩu và bí mậtBăm mật khẩu và đưa khóa ra khỏi mã
- Phát hiện được xếp hạngSửa cái nghiêm trọng nhất trước
Cách hoạt động
- 1Yêu cầuBạn dán các phần nhạy cảm của mã
- 2ĐọcChúng tôi đối chiếu với OWASP Top 10
- 3Đánh giáBạn nhận phát hiện đã xếp hạng và bản sửa
Chúng tôi cần gì từ bạn
Phần mã xử lý dữ liệu nhập, đăng nhập, tệp hoặc thanh toán dán dạng văn bản hoặc ảnh chụp màn hình với bí mật đã thay bằng giá trị giữ chỗ, ngôn ngữ và framework, và ai dùng ứng dụng.
Chúng tôi sẽ hỏi bạn:
- Ngôn ngữ và framework nào?
- Phần nào xử lý dữ liệu nhập, đăng nhập hoặc thanh toán?
- Ai dùng ứng dụng?
- Có sự cố hay cảnh báo cụ thể nào dẫn đến việc review này không?
So sánh các gói
| Các gói | Cơ bảnMã tối đa 100 dòng407.000 ₫ | Tiêu chuẩnMã tối đa 400 dòng949.000 ₫ | Cao cấpTối đa 1.000 dòng kèm danh sách kiểm tra gia cố1.870.000 ₫ |
|---|---|---|---|
| Thời hạn | 1 ngày | 2 ngày | 3 ngày |
| Số lần chỉnh sửa | 1 | 2 | 3 |
| Số dòng code | tối đa 100 | tối đa 400 | tối đa 1.000 |
| Đoạn code đã sửa | Có | Có | Có |
| Danh sách kiểm tra gia cố | Không | Không | Có |
| Đặt hàng Cơ bản | Đặt hàng Tiêu chuẩn | Đặt hàng Cao cấp |
Bảo vệ thanh toán
Bạn thanh toán khi đặt hàng, nhưng tiền chỉ được chuyển cho kết quả đã được chấp nhận.
- Giá cố địnhGiá gói không thay đổi sau khi bạn thanh toán.
- Số tiền được tạm giữKhi bạn thanh toán, số tiền chỉ được tạm giữ. Tiền được chuyển cho dịch vụ khi bạn chấp nhận kết quả.
- Kiểm tra trước khi bàn giaoMọi kết quả đều được kiểm tra chất lượng trước khi đến tay bạn, và bạn xem được kết quả trên trang đơn hàng trước khi chấp nhận.
- Chỉnh sửa miễn phíYêu cầu chỉnh sửa trong phạm vi bản yêu cầu của bạn, với số lần mà gói cho phép.
- Tự động chấp nhận sau 3 ngàyNếu trong vòng 3 ngày sau khi bàn giao, bạn không chấp nhận kết quả cũng không yêu cầu chỉnh sửa, kết quả sẽ được tự động chấp nhận. Nếu bạn nhắn tin trong chat đơn hàng sau khi bàn giao, đơn hàng sẽ chờ; sau khi trả lời, chúng tôi có thể tính lại 3 ngày từ đầu và sẽ thông báo trong chat.
- Làm lại hoặc hoàn tiền toàn bộNếu kết quả không đúng với yêu cầu của bạn và các lần chỉnh sửa không khắc phục được, hoặc công việc kéo dài quá gấp đôi thời hạn, hãy nhắn tin trong chat đơn hàng: chúng tôi sẽ làm lại hoặc hoàn tiền toàn bộ.
Hỏi đáp
Đây có phải là kiểm thử xâm nhập hay chứng nhận bảo mật không?
Không. Chúng tôi đọc mã bạn gửi và không tấn công hay quét hệ thống đang chạy của bạn, vì vậy dịch vụ này không thay thế cho kiểm toán chính thức ở nơi bắt buộc phải có.
Tôi có nên gửi mật khẩu hoặc khóa không?
Tuyệt đối không. Hãy thay bằng giá trị giữ chỗ; nếu khóa thật đã từng nằm trong mã, hãy đổi khóa mới.
Các bạn có chạy mã của tôi không?
Không. Chúng tôi đọc kỹ và suy luận cách mã hoạt động nhưng không chạy nó, vì vậy hãy kiểm tra mọi bản sửa được đề xuất trong dự án của bạn.