2008-09-04 7 views
5

Tôi muốn cho phép người dùng của mình nhúng hoạt ảnh Flash của riêng họ vào bài đăng của họ. Thông thường các tập tin thực tế được lưu trữ trên một số trang web lưu trữ hình ảnh miễn phí. Tôi sẽ không thực sự tải flash trừ khi người dùng nhấp vào một nút để phát (để không có gì tự động phát khi tải trang). Tôi biết mọi người có thể làm cho một số thực sự gây phiền nhiễu crap trong flash, nhưng tôi không thể tìm thấy bất kỳ thông tin về tiềm năng nghiêm trọng thiệt hại một ứng dụng flash có thể gây ra cho người xem.Làm thế nào để an toàn nhúng bất kỳ tập tin flash (swf)?

Có an toàn khi nhúng bất kỳ tệp flash nào từ internets không? Nếu có, làm cách nào để tôi có thể cho phép người dùng nhúng hoạt ảnh vô tội nhưng vẫn giữ ứng dụng độc hại?

chỉnh sửa:

Từ những gì tôi có thể thu thập, mối đe dọa rõ ràng nhất là cho hành động chuyển hướng bạn đến trang web độc hại.

Adobe says bạn có thể đặt allowScriptAccess = không bao giờallowNetworking = none và swf nên không có quyền truy cập vào bất cứ điều gì ngoài chính nó. Điều này có giải quyết được tất cả các vấn đề của tôi không?

Trả lời

1

Adobe nói rằng bạn có thể thiết lập đặt allowScriptAccess = không bao giờ và allowNetworking = none và swf nên không có quyền truy cập vào bất cứ điều gì ngoài chính nó. Mặc dù allowNetworking chỉ có trong Flash Player 9, do đó người dùng có các phiên bản Flash trước đó sẽ vẫn dễ bị một số lần khai thác.

Creating more secure SWF web applications : Security Controls Within the HTML Code

How to restrict SWF content from HTML

0

Có, không an toàn.

Không có cách nào dễ dàng để cho phép. Bạn có thể có một danh sách trắng tên miền cho phép YouTube, Hulu, v.v., nhưng danh sách trắng vốn vốn đang siêng năng - bạn sẽ liên tục cập nhật.

3

Flash có một số biện pháp bảo mật gọn gàng tại chỗ. Cho phép người dùng tải lên swf vào trang web của bạn và nhúng chúng không an toàn, về cơ bản bạn sẽ tự thiết lập cho một cuộc tấn công XSS.

Tuy nhiên, cho phép chúng liên kết nóng không phải là vấn đề. Các swf sẽ được khóa vào tên miền đó là lưu trữ nó và không được phép gọi url của bên ngoài không gian đó.

Nó vẫn sẽ được mở cho "liên kết độc ác" (tôi chắc chắn có một từ thích hợp cho họ), và do đó tôi có nghĩa là có liên kết thường xuyên đến yoursite.com/admin/deleteallpages.php mà nó cố tải "như bạn. Tuy nhiên, nó sẽ không thể sử dụng dữ liệu này theo bất kỳ cách nào, về cơ bản nó sẽ giống như một liên kết bình thường, và tôi đoán các cm hiện đại được bảo vệ khỏi kiểu tấn công đó.

Bạn có thể nhận được sự bảo vệ tương tự bằng cách lưu trữ các nhấp nháy trên một tên miền phụ khác, vì flash coi đây giống như một miền hoàn toàn khác.

+0

"liên kết ma quỷ" được gọi là CSRF, Hội Chữ thập trang web yêu cầu giả mạo. –

3

Khi nhúng các file SWF từ các nguồn không rõ, nó cũng là thực hành tốt nhất để ném một chiếc mặt nạ trên Loader để các SWF đã tải không thể đảm nhận nhiều màn hình bất động sản hơn dự kiến.

Pseudo-code để làm như vậy:

var maskSpr : Sprite = new Sprite(); 
maskSpr.graphics.beginFill(); 
maskSpr.graphics.drawRect(0,0,safeWidth,safeHeight); 
maskSpr.graphics.endFill(); 
myLdr.mask = maskSpr; 
2

Có thực sự là nhiều hơn một lựa chọn.

Để an toàn tuyệt đối, hãy đặt allowScriptAccess = never và allowNetworking = none và swf sẽ không có quyền truy cập vào bất kỳ thứ gì bên ngoài chính nó. Chú ý: allowNetworking chỉ có trong Flash Player 9 (nó được tạo ra để đáp ứng với các sâu myspace khác nhau), vì vậy bạn sẽ cần sử dụng SWF Object để đảm bảo rằng chỉ người dùng có phiên bản trình phát flash phù hợp hoặc tốt hơn có flash được tải .

Nếu bạn muốn bật những thứ như video trên youtube, bạn không thể đặt allowNetworking thành "none". May mắn thay, có một mức độ bảo mật trung gian cho trường này - "nội bộ" cho phép SWF nói chuyện với miền được lưu trữ của nó.

Cũng lưu ý rằng bạn không nên có tệp crossdomain.xml trên trang web của mình - hãy đọc thêm về những mối nguy hiểm here và các địa điểm khác.

Dưới đây là một số trang web khác được đề cập bởi câu trả lời khác mà đi vào chi tiết hơn:

http://www.adobe.com/devnet/flashplayer/articles/secure_swf_apps_04.html

http://blogs.adobe.com/stateofsecurity/2007/07/how_to_restrict_swf_content_fr_1.html