Điểm:0

Chặn truy cập trực tiếp vào trang web tĩnh trên Azure Blob Storage và chỉ cho phép Azure Front Door

lá cờ in

Tôi có một ứng dụng web SPA được triển khai trên Bộ lưu trữ Azure Blob có URL công khai. Ví dụ. https://example.z23.web.core.windows.net/

Tôi muốn sử dụng Azure Front Door với WAF để tăng cường bảo mật. Có cách nào để chặn truy cập trực tiếp tại URL blob không? Tôi đã googled nó và tìm thấy nhiều câu trả lời ở đó, một trong số đó là chỉ cho phép AzureFrontDoor.Backend IP tại cấu hình mạng Tài khoản lưu trữ. Tôi đã thử và nó đã hoạt động.

Tuy nhiên, phương pháp này vẫn có một sơ hở là bất kỳ ai cũng có thể chỉ cần tạo Cửa trước và trỏ đến URL blob của tôi (nếu họ tình cờ phát hiện ra nó bằng cách nào đó).

(Điều này nghe có vẻ ngu ngốc): ví dụ: nếu tôi tiếp tục với phương pháp này và đặt tên cho tài khoản lưu trữ của mình một cách ngẫu nhiên, hãy sử dụng GUID ngẫu nhiên đã được rút gọn. (https://6c4a89d5dba04b8fbe1ed7f.z23.web.core.windows.net/) Điều này có thể làm giảm khả năng ai đó có thể phát hiện ra URL của tôi và bỏ qua bảo mật không?

Một phương pháp khác mà Azure đề xuất là để kiểm tra X-Azure-FDID tiêu đề bao gồm ID của phiên bản Cửa trước cụ thể của tôi và loại bỏ các yêu cầu không chứa tiêu đề này. Tôi đã hỏi nhà phát triển của mình liệu điều này có thể thực hiện được trên ứng dụng web Vue hay không và anh ấy nói rằng chúng tôi sẽ cần đưa ID Cửa trước vào mã chạy ở phía máy khách, do đó dù sao thì ID cũng sẽ hiển thị công khai. (Đây không phải là Stack Overflow nhưng nếu ai đó có thể đề xuất bất cứ điều gì về vấn đề này thì thật tuyệt)

Một cách khác tôi tìm thấy là sử dụng SKU Azure Front Door Premium hỗ trợ kết nối với Tài khoản lưu trữ bằng Liên kết riêng. Điều này là hoàn hảo, nhưng nó có giá khổng lồ 165 đô la mỗi tháng. Thay vào đó, tôi muốn triển khai mã của mình trên Dịch vụ ứng dụng vì mã này vốn dĩ chỉ có thể hạn chế quyền truy cập từ Cửa trước.

Có ai có thể đề xuất bất kỳ phương pháp nào về cách đạt được điều này không?

Cảm ơn.

Điểm:0
lá cờ ng

Kiểm tra tiêu đề X-Azure-FDID, kết hợp với hạn chế IP là cách duy nhất để khóa điều này hiện tại mà không cần đi xuống tuyến đường liên kết riêng. Vì vậy, bạn sẽ cần lấy mã ứng dụng của mình để xác thực điều đó, với điều kiện là bạn không có bất kỳ thứ gì khác ở giữa FD và tài khoản lưu trữ.

Mặc dù có điều này trong mã phía máy khách của bạn sẽ làm lộ ID, nhưng điều đó không thực sự quan trọng. Các giới hạn IP có nghĩa là bạn chỉ cho phép lưu lượng truy cập từ các phiên bản Cửa trước và không có cách nào để kẻ tấn công đặt ID đó trên một phiên bản FD khác.

BlackMiracle avatar
lá cờ in
Cảm ơn vì đã trả lời. Điều đó nghe có vẻ hợp pháp. Bạn đã đề cập: "do bạn không có bất kỳ thứ gì khác ở giữa FD và tài khoản lưu trữ." Tôi có thể thêm điều gì khác để đạt được điều này mà không cần thay đổi mã không? chỉ tò mò
lá cờ ng
không phải là không thêm chi phí đáng kể. Bạn có thể xem cổng ứng dụng thay vì Cửa trước, nhưng điều đó không rẻ, bạn cũng có thể chạy ứng dụng của mình trên dịch vụ ứng dụng hoặc cụm AKS và thêm các dịch vụ bổ sung ở phía trước, nhưng một lần nữa, lại tăng thêm chi phí.
lá cờ in
Tôi không tin rằng bạn có thể truy cập các tiêu đề yêu cầu http trong JavaScript phía máy khách. Tôi nghĩ đặt tên cho tài khoản lưu trữ của bạn bằng một cái tên khó đoán là lựa chọn tốt nhất cho bạn.
lá cờ in
Tôi không chắc liệu Bộ nhớ có kế hoạch thêm chức năng tương tự hay không nhưng tôi thuộc nhóm Ứng dụng web tĩnh và chúng tôi đang nỗ lực hỗ trợ chính xác tình huống này, bao gồm khả năng khóa ứng dụng bằng thẻ dịch vụ và hạn chế truy cập vào tiêu đề x-azure-fdid cụ thể. Điều này sẽ có sẵn trong một hoặc hai tháng tới.
BlackMiracle avatar
lá cờ in
@AnthonyChu Ồ, thật vui khi được nghe từ nhóm sản phẩm rằng tính năng này đang được phát triển. Bạn có thể vui lòng chia sẻ làm thế nào khách hàng sẽ biết khi nó có sẵn? Chúng tôi có thể kiểm tra trên trang [Azure Update](https://azure.microsoft.com/en-us/updates/) không?
lá cờ in
Có, chúng tôi nên có thông báo Cập nhật Azure về điều này, mặc dù nó có thể nói điều gì đó như hạn chế mạng và thẻ dịch vụ hoặc đại loại như thế. Ngoài ra, tôi muốn làm rõ rằng đây là sản phẩm dành cho Ứng dụng web tĩnh Azure, một sản phẩm riêng biệt với tính năng lưu trữ trang web tĩnh trong Azure Storage. Tôi nghĩ rằng việc duy trì Bộ nhớ và sử dụng một tên tài khoản không thể đoán được là hoàn toàn ổn. Nó thường không phải là mối quan tâm bảo mật lớn để làm điều đó. Chủ yếu là bạn muốn ngăn Google lập chỉ mục và những thứ tương tự.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.