2008-09-19 22 views
7

Tôi đã tự hỏi có bất kỳ mối quan tâm bảo mật nào với việc thêm crossdomain.xml vào thư mục gốc của một máy chủ ứng dụng không? Nó có thể được thêm vào bất kỳ phần nào khác của máy chủ và bạn có biết bất kỳ công việc nào xung quanh không yêu cầu máy chủ phải có tệp này không?Flex và crossdomain.xml

Cảm ơn Damien

Trả lời

10

Bằng cách thêm crossdomain.xml, mối quan tâm an ninh chính là rằng các ứng dụng đèn flash bây giờ có thể kết nối với máy chủ của bạn. Vì vậy, nếu ai đó đăng nhập vào trang web của bạn và sau đó duyệt qua trang web khác bằng ứng dụng flash độc hại, ứng dụng flash đó có thể kết nối lại với trang web của bạn. Vì trong trình duyệt, cookie được chia sẻ với ứng dụng flash. Điều này cho phép ứng dụng flash chiếm quyền truy cập vào phiên của người dùng để làm bất cứ điều gì mà trang web của bạn thực hiện mà không cần người dùng biết về nó.

Nếu ứng dụng flex của bạn được phục vụ từ cùng một máy chủ, bạn không cần một crossdomain.xml

Bạn có thể đặt nó trong một thư mục con của trang web của bạn và sử dụng System.security.loadSecurityPolicy()

http://livedocs.adobe.com/flex/2/langref/flash/system/Security.html

Sau đó, ứng dụng sẽ được giới hạn trong cấu trúc thư mục đó.

+0

Hi Marc Cảm ơn nhận xét của bạn. Điều này là điều đáng lo ngại. Bạn có biết liệu adobe đang làm việc trên điều này hay đến với bất kỳ tính năng bảo mật nào khác để khắc phục mối đe dọa tiềm ẩn này? Cảm ơn Damien – Damien

+1

Đây là mối đe dọa "tiềm năng" theo thiết kế, đôi khi bạn cần ** để có thể thực hiện liên lạc crossdomain, đó là lý do tại sao bạn cần cho phép kết nối rõ ràng bằng tệp này. – grapefrukt

+0

Tôi không hiểu rõ rủi ro này. Nếu bạn đặt một crossdomain.xml "cho phép mọi thứ" vào thư mục gốc của máy chủ của bạn, điều đó không chỉ cho phép các ứng dụng Flash có cùng quyền truy cập như các trình duyệt đã có? Javascript trên trang web tại xxx.com không thể thấy cookie tại yyy.com vì trình duyệt và bảo mật Javascript sẽ không cho phép. Có thể tệp flash tại xxx.com thực sự truy cập cookie tại yyy.com (nếu crossdomain.xml của yyy.com được đặt để cho phép mọi thứ) không? – SkippyFlipjack

0

Bạn có thể định cấu hình máy chủ ảo cho ứng dụng của mình. Bằng cách này, tệp crossdomain.xml có thể ở gốc của ứng dụng của bạn nhưng không nhất thiết phải ở gốc của máy chủ.

-1

crossdomain.xml chỉ là tệp có ý nghĩa với thời gian chạy Flash; bạn có thể hạn chế những yêu cầu HTTP nào có thể xem được. Bạn có thể sử dụng điều khiển cấu hình máy chủ web (ví dụ: Apache) để cho phép truy cập đọc vào nó (và chỉ có nó) từ thư mục "root" (xem câu trả lời trước).

Bạn có thể lọc theo tiêu đề khác trong yêu cầu vv

Cheers

1

Không có cách giải quyết cho các tập tin crossdomain, nó là cần thiết để hỗ trợ việc truy cập dữ liệu crossdomain hoặc kịch bản crossdomain. Trong trường hợp có bất kỳ yêu cầu tên miền chéo nào, Flash sẽ tìm tệp crossdomain.xml ở gốc của miền. Ví dụ, nếu bạn đang yêu cầu một tập tin XML từ:

http://mysubdomain.mydomain.com/fu/bar/

Flash sẽ kiểm tra xem một tập tin crossdomain.xml tồn tại tại địa chỉ:

http://mysubdomin.mydomain.com/crossdomain.xml

Bạn có thể đặt các tập tin crossdomain.xml ở vị trí khác. Tuy nhiên, khi bạn cần tải tệp crossdomain.xml từ một vị trí khác, bạn phải thực hiện qua Security.loadPolicyFile. Hãy nhớ rằng vị trí của crossdomain này có bất kỳ tác động nào đến quyền truy cập bảo mật mà bạn có. Flash sẽ chỉ cấp quyền truy cập vào thư mục chứa tên miền chéo và thư mục con của nó.

Bạn cũng có thể muốn đọc trên security changes in Flash Player 10.

+0

Điều này không đúng; giải pháp cho tệp crossdomain là ủy quyền tất cả lưu lượng truy cập mạng qua cùng một máy chủ lưu trữ ứng dụng Flash của bạn. – Brian