2011-10-13 35 views
5

Là một phần của dự án, tôi chấp nhận văn bản từ người dùng thông qua biểu mẫu web và hiển thị văn bản trên trang web. Văn bản mà họ cung cấp có thể chứa URL, nếu vậy tôi muốn kết xuất nó như một siêu liên kết để cải thiện trải nghiệm. Ví dụ: người dùng có thể gửi văn bản có chứa http://www.google.com và tôi muốn chuyển đổi văn bản đó thành <a href="http://www.google.com">...Hiển thị siêu liên kết an toàn trong văn bản không tin cậy

Tôi tự hỏi mình nên lưu ý những vấn đề bảo mật nào khi thực hiện việc này. Tôi đã thực hiện các biện pháp để tránh bất kỳ sự chèn ép XSS đơn giản nào, bởi vì thư viện XML của tôi sẽ thoát khỏi bất kỳ ký tự đặc biệt nào, nhưng tôi tưởng tượng có những cuộc tấn công phức tạp hơn.

+0

Một trong những vấn đề lớn nhất của bạn [có thể là điều này.] (Http://www.youtube.com/watch?v=oHg5SJYRHA0) Chỉnh sửa: Dang, chỉ cần nhận ra rằng bạn sẽ không làm xáo trộn href. Bỏ qua điều này;) – vzwick

Trả lời

1

Ngoài việc bỏ qua javascript :, bạn có thể chỉ tạo siêu liên kết cho giao thức http: vì có một số ứng dụng nhất định có thể được khởi chạy hoặc kiểm soát thông qua các giao thức khác. Hơi nước, Skype, và AOL Messenger đến tâm trí.

+1

dữ liệu: văn bản/html; base64, PHNjcmlwdD5hbGVydCgnWFNTJyk8L3NjcmlwdD4 = –

0

Nếu bạn chỉ xung quanh URL có các yếu tố a, vấn đề duy nhất sẽ xảy ra nếu chúng nhập URL độc hại (có thể rút ngắn) và bạn kết thúc bằng cách nhấp vào nó, miễn là tất cả các phương tiện tấn công khác đều an toàn trong phần mềm của bạn (ví dụ: không thể thực thi JavaScript tùy ý, v.v.).

Đảm bảo bạn không xem xét giao thức giả javascript: khi bạn đang khớp URL. Không có gì tốt đẹp có thể đến đó.

Các vấn đề liên quan