HTTP/2 Rapid Reset Attack

Một trong những vấn đề bảo mật được nhắc đến nhiều nhất gần đây là HTTP/2 Rapid Reset Attack, được dùng để tạo ra các cuộc tấn công DDOS, với báo cáo lớn nhất là 394 triệu yêu cầu được gửi đến mỗi giây.

Tui nhân dịp này tranh thủ giải thích về lỗi bảo mật này, giúp các bạn hiểu thêm về giao thức HTTP, và hiểu về code của dự án Mini-Web-Server dễ dàng hơn.

Cách một request được xử lý trong HTTP/1.1

Khi một client gửi request đến một HTTP server, các bước thực hiện sẽ như sau:

– Mở kết nối TCP/IP đến HTTP server.

– Gửi request.

– Server phân tích request.

– Server xử lý request và trả về response.

– Client đọc response và xử lý kết quả.

Mỗi một vòng như vậy gọi là 1 round trip, client sẽ phải chờ cho đến khi server hoàn thành việc xử lý và trả về kết quả. Trong lúc server xử lý request, ví dụ như đọc file, cập nhật database… thì các phần khác cũng phải dừng lại. Client muốn gửi request kế tiếp thì phải chờ cho đến khi request hiện tại xử lý xong, do vậy không tận dụng hết tài nguyên của cả client và server.

Continue reading “HTTP/2 Rapid Reset Attack”

Những khái niệm cơ bản trong lập trình mạng (lập trình socket)

Khi nói về mạng và lập trình mạng ngày nay, hầu hết chúng ta sẽ chỉ quan tâm đến TCP/IP, đây có thể coi là giao thức thống trị bởi nó là nền tảng cho Internet, tuy nhiên bên cạnh TCP/IP cũng còn nhiều kiến thức khác cũng như những thứ liên quan đến giao thức này.

Trong bài viết này tôi sẽ giới thiệu một số khái niệm cơ bản, cũng như ôn lại một vài kiến thức cũ giúp bạn có một nền tảng cơ bản về mạng và lập trình mạng. Các kiến thức sẽ được giới thiệu một cách ngắn gọn để bạn có một cái nhìn tổng quan về cách thức mọi thứ hoạt động. Các kiến thức sâu hơn sẽ được bổ sung thêm trong các bài viết riêng.

(ảnh minh họa từ: https://www.cs.dartmouth.edu/~campbell/cs50/socketprogramming.html)

Continue reading “Những khái niệm cơ bản trong lập trình mạng (lập trình socket)”

3 LĨNH VỰC YÊU THÍCH CỦA TÔI – phần 1

Công nghệ thông tin là một lĩnh vực rất rộng, không ai có thể giỏi tất cả, vì vậy việc chọn cho mình một ngôn ngữ, nền tảng hay chuyên ngành riêng nào đó rất quan trọng.

Câu hỏi thường gặp nhất sẽ là: Tôi nên học gì để sau này có việc làm? Thật sự công việc trong ngành này rất nhiều, và sẽ càng ngày càng nhiều, nhất là trong bối cảnh các xu hướng làm việc từ xa, dữ liệu lớn, AI, IoT… đang trở nên phổ biến hơn bao giờ hết. Nhưng tôi chắc chắn bạn chưa bao giờ tìm được một đáp án thỏa mãn, bởi đơn giản chỉ bạn mới có thể trả lời chính xác mà thôi.

Câu trả lời của tôi luôn là: Bạn hãy học những gì bạn thích nhất!

Continue reading “3 LĨNH VỰC YÊU THÍCH CỦA TÔI – phần 1”

Lỗi Meltdown và Spectre hoạt động thế nào?

Một trong những thông tin nổi bật gần đây là hai lỗi có trong các bộ xử lý hiện đại, với cái tên Meltdown và Spectre, hai lỗi này xuất hiện trong rất nhiều thế hệ vi xử lý, và nguy hiểm nhất là nó cho phép các chương trình có thể truy xuất tùy ý các vùng bộ nhớ được bảo vệ bởi hệ điều hành. Trong bài viết này mình sẽ cố gắng giải thích một cách dễ hiểu nhất về cách hoạt động của hai lỗi này.

Bài viết này dựa trên thông tin có trong trang https://www.raspberrypi.org/blog/why-raspberry-pi-isnt-vulnerable-to-spectre-or-meltdown/https://spectreattack.com, đặc biệt các ví dụ sẽ mượn từ bài viết trên trang RaspberryPi.

Continue reading “Lỗi Meltdown và Spectre hoạt động thế nào?”

Windows 8 Secrets: WinRT, the Windows Runtime

Tuần trước tôi đã có một buổi nói chuyện trước một nhóm người dùng tại khu vực Boston, đây là lần thứ tư kể từ khi bản Windows 8 Developer Preview được phát hành. Không phải tình cờ mà đây là lần thứ tư liên tiếp tôi nói riêng về Windows 8: Mọi người đang bị cuốn hút – và sợ hãi bởi – hệ điều hành tiếp theo của Microsoft theo cách mà họ chưa từng thấy kể từ bản Longhorn (thế hệ Windows Vista và Windows Server 2008), hoặc thậm chí là kể từ Windows 95. Nó là một số thứ thậm chí tôi phải giữ kín trong đầu vì tôi vẫn còn một vài nghi ngờ, mà hầu hết là do Microsoft giữ kín các kế hoạch của họ.

StockViewer 0.55 beta

Phiên bản này cho phép người dùng chọn nhà cung cấp thông tin, nhà cung cấp mặc định sẽ là Công ty Cổ phần chứng khoán Sài Gòn (SSI).

Một số thay đổi khác:

– Hiển thị room và số lượng CP nhà đầu tư nước ngoài mua.

– Cho phép xem bảng thông tin chứng khoán của thị trường Hà Nội (HASTC-Index).

– Tự động thay đổi vị trí và chiều cao khi người dùng thay đổi chế độ hiển thị.

sv_05_11

Đây là bản beta, module xử lý dữ liệu từ công ty CP chứng khoán Sài Gòn hoạt động chưa ổn định, bạn nên dùng nguồn dữ liệu từ Sở giao dịch chứng khoán TPHCM.

Bạn có thể tải về từ http://www.daohainam.com/download/StockViewer.055beta.zip hoặc tại đây.

Phần mềm này cần có .NET 3.5 SP1 (http://download.microsoft.com/download/2/0/e/20e90413-712f-438c-988e-fdaa79a8ac3d/dotnetfx35.exe).

StockViewer 0.22

Phiên bản này sửa một số lỗi và có một chút thay đổi:

– Sửa lỗi khóa chương trình nếu lúc bắt đầu chạy StockViewer không có kết nối Internet.

– Tự động thay đổi chiều rộng để phù hợp với chế độ hiển thị.

– Lưu và dùng lại chế độ hiển thị đã dùng trước đó.

Một chức năng đã có từ phiên bản trước nhưng có thể các bạn chưa biết, đó là khi click đúp vào tiêu để, cửa sổ chương trình sẽ tự động ẩn vào sát lề phải màn hình, nếu bạn nhấn chuột lên viền cửa sổ (còn thò ra một chút 🙂 ) nó sẽ tự động trở về vị trí cũ.

Một số hình ảnh:

stockviewer_022_1stockviewer_022_2

Một trong những ưu điểm của chương trình là việc cập nhật nhanh nhiều hơn so với xem dữ liệu từ các trang web, cho phép bạn nắm bắt các thay đổi sớm hơn.

Tải về chương trình tại đây.

Rất mong nhận được ý kiến phản hồi từ các bạn.