trandatdt

The Art of Simple

Optimistic concurrency control with sql

Bạn có một hệ thống thanh toán. Khi khách hàng giao dịch, code của bạn sẽ trừ tiền trong tài khoản của khách, chắc chắn rồi.

Giả sử khách hàng có user_id = 1 có giao dịch 100 VND, cách làm thông thường trông sẽ giống như thế này (bài viết sử dụng PostgreSQL để demo):

Read more...

evil-tom

Mới đây chiếc máy chấm công của công ty mình được kết nối mạng để tích hợp với hệ thống ERP. Rảnh rỗi không có việc gì làm nên mình lôi nó ra để pentest. Trong bài này mình sẽ trình bày quá trình mình truy cập vào máy chấm công của công ty. 😈

Read more...

apache kafka

What is Kafka?

Nếu chưa biết Kafka là gì, bạn có thể tìm hiểu tại: https://kafka.apache.org/intro

Scaling your Kafka cluster

Một Kafka cluster gồm nhiều server chạy Kafka (trong kafka, mỗi server như vậy được gọi là một broker) để có tính sẵn sàng cao (high availability). Để đảm bảo khả năng chịu lỗi (fault-tolerant), các bản sao (replicas) của messages được duy trì trên mỗi broker, nhờ vậy nếu có server nào đó “sập” thì không xảy ra mất mát dữ liệu, cluster vẫn hoạt động bình thường.

Read more...

numpy

Giả sử chúng ta muốn tạo ra một list chứa các số integer như sau:

arr = list(range(1000000))

Bạn đoán Python sẽ dùng bao nhiêu memory để lưu list arr? Hmm... Ở đại học ta được học integer là 4 bytes (tùy máy tính, tùy compiler), vậy tính ra với một triệu phần tử thì sẽ ~4MiB?

Trong thực tế, Python tốn ~36MiB để lưu arr và các số integer này.

Read more...

tor-proxy

Mở đầu

Cuộc chiến giữa những người quản trị website và những web crawler là những cuộc chiến không hồi kết. Một website thường chặn web crawler bằng cách chặn địa chỉ IP của nó. Vậy thì nếu crawler có thật nhiều IP là sẽ không lo bị chặn rồi đúng không nào? (Không đúng lắm, thử nghĩ xem nếu 1 tài khoản được truy cập liên tục từ nhiều IP thì có bị chặn không. Nhưng trong bài viết này mình chỉ đề cập tới khía cạnh chặn IP 👌). Thực tế mỗi mạng chỉ được cấp một public IP mà thôi nên muốn đổi địa chỉ IP thì chúng ta phải tìm tới proxy hoặc VPN. Trong bài viết này mình chọn Tor để tạo một proxy server.

Read more...

Ignore files for just you in Git

Nếu bạn nghĩ bài viết này là về .gitignore thì xin chúc mừng bạn đã nhầm. 😂😂😂

Read more...

Trong bài viết này mình xin chia sẻ về cách mình thực hiện cheat trong phần mềm myFSOFT, một phần mềm dành cho nhân viên tại FPT Software, khi mình là thực tập sinh tại đây. Mình đã báo cáo lỗi này cho team myFSOFT và họ đã sửa trong phiên bản mới.

Read more...

how-i-hacked-into-my-company-chat

Trong bài viết này mình sẽ chia sẻ về cách mà mình truy cập tài khoản của các thành viên khác trong kênh chat của công ty. Khi thực hiện pentest và khi viết bài viết này, mình đang là nhân viên thử việc của công ty nên cũng có thời gian rảnh rỗi để làm chuyện không liên quan tới công việc thế này. :D

Read more...

Test multiple flags at once in Python

Có nhiều cách để kiểm tra các flags cùng lúc trong Python:

Read more...

Merge two Python dictionaries in a single expression

Bạn có thể gộp 2 dictionaries trong Python 1 cách dễ dàng chỉ với 1 dòng lệnh duy nhất.

Read more...