2015-10-14 37 views
6

Tôi có một hành vi lạ hoặc có thể có ý định với dịch góc.
strategie giá trị của chúng tôi làangular dịch sanitize/escape

$translateProvider.useSanitizeValueStrategy('sanitize'); 

Chúng tôi sử dụng chủ yếu là dịch lọc trong ứng dụng của chúng tôi, nhưng khi nói đến nhân vật đặc biệt, chúng tôi có được ví dụ thay vì Überschrift cái gì đó như & # 220; berschrift.
Nếu tôi sử dụng chỉ thị, nó hoạt động.
Nếu tôi sử dụng bộ lọc này chỉ hoạt động khi chiến lược vệ sinh được đặt thành "thoát".

Có giải pháp nào khác ngoài việc viết lại TẤT CẢ bộ lọc dịch cho chỉ thị?

Đây là plnkr tôi http://plnkr.co/edit/QIMVQcyH5APeYxNnS82v

Để biết thông tin của bạn, tôi có thể không chỉ đơn giản là sử dụng "thoát" chiến lược, bởi vì chúng tôi sử dụng dịch biến góc cũng và các biến chứa đôi khi thậm chí thẻ html.

Cảm ơn!

Trả lời

10

Sử dụng sanitizeParameters thay vì sanitize. Đây là plnkr cố định: http://plnkr.co/edit/qicVqPXn3qo6hMNa1fY2?p=preview

(EDIT: 07/10/2016): Có sự khác biệt đáng kể giữa hai chiến lược vệ sinh. sanitizeParameters khử trùng các thông số nội suy chứ không phải đầu ra đã dịch. Điều đó có nghĩa là nó không cho phép thay đổi các thông số đó, nhưng nội dung đã dịch vẫn còn dễ bị tổn thương vì nó không được khử trùng.

Sự cố với các ký tự sanitize và UTF-8 là một vấn đề đã biết và tôi tin rằng nó đang được thực hiện.

+0

Cảm ơn, tôi đã thử nó trước đây và bằng cách nào đó nó không hoạt động. Nhưng bây giờ nó! – Anditthas

+0

Tác động bảo mật của thay đổi này là gì? Tôi không thể tìm ra từ các tài liệu https://angular-translate.github.io/docs/#/guide/19_security –

+0

Tôi nên làm điều này trước đó, nhưng tôi đã chỉnh sửa câu trả lời ngay bây giờ để cung cấp thêm thông tin. – DGarvanski

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