Safe SVG

Mô tả

Safe SVG cho phép bạn tải file SVG lên website!

Plugin cho phép bạn file SVG lên website đồng thời đảm bảo chúng được làm sạch để ngăn chặn các lỗ hổng bảo mật SVG/XML ảnh hưởng đến web bạn. Ngoài ra, nó còn cho phép bạn xem trước các fileSVG đã tải lên trong thư viện media ở mọi chế độ xem.

Tính năng hiện có

  • Sanitised SVG (Làm sạch SVG) – Loại bỏ các lỗ hổng bảo mật trong file SVG trước khi tải lên website.
  • Tối ưu SVGO – Tải SVG thông qua công cụ SVGO để tiết kiệm dung lượng. Mặc định tính năng này đã bị tắt nhưng bạn có thể bật nó thông qua code sau: add_filter( 'safe_svg_optimizer_enabled', '__return_true' );
  • Xem SVG trong Thư viện – Bạn có thể xem trực tiếp file SVG trong Thư viện như khi xem ảnh.
  • Cấp quyền tải lên – Có thể cấp quyền tải file SVG cho những tài khoản nhất định trên web.

Plugin được phát hành để giải quyết vấn đề #24251.

SVG Sanitization bằng thư viện: https://github.com/darylldoyle/svg-sanitizer.

Tối ưu dung lượng SVG bằng thư viện: https://github.com/svg/svgo.

Khối

Plugin này cung cấp 1 khối.

  • Safe SVG Display the SVG icon

Cài đặt

Cài đặt qua thư mục WordPress hoặc tải xuống, giải nén và tải các tệp lên thư mục /wp-content/plugins/.

Hỏi đáp

Chúng ta có thể thay đổi các attribute và tag được phép (allowed attribute/allowed tag) không?

Tất nhiên, bạn có thể thực hiện thông qua filter svg_allowed_attributessvg_allowed_tags filters.
Chúng nhận một đối số (argument) và phải trả về đối số (return) đó. Xem các ví dụ bên dưới:

add_filter( 'svg_allowed_attributes', function ( $attributes ) {

    // Do what you want here...

    // This should return an array so add your attributes to
    // to the $attributes array before returning it. E.G.

    $attributes[] = 'target'; // This would allow the target="" attribute.

    return $attributes;
} );


add_filter( 'svg_allowed_tags', function ( $tags ) {

    // Do what you want here...

    // This should return an array so add your tags to
    // to the $tags array before returning it. E.G.

    $tags[] = 'use'; // This would allow the <use> element.

    return $tags;
} );

Đánh giá

10 Tháng Một, 2024 5 trả lời
Hello everyone,the Plugin does not work for me, I refreshed, logged in and out, checked several different svg files but the uploading is still not possible.After having read so many positive reviews I think I am an exception. Thanks for any advice!
16 Tháng tám, 2023 1 trả lời
I don’t understand why this isn’t in core wordpress. Plugin integrates flawlessly into the website and causes no issues.
Đọc tất cả 72 đánh giá

Người đóng góp & Lập trình viên

“Safe SVG” là mã nguồn mở. Những người sau đã đóng góp vào plugin này.

Những người đóng góp

“Safe SVG” đã được dịch qua 26 ngôn ngữ. Cảm ơn những người tham gia dịch vì đóng góp của họ.

Dịch “Safe SVG” sang ngôn ngữ của bạn.

Muốn tham gia phát triển?

Duyệt code, check out SVN repository, hoặc theo dõi nhật ký phát triển qua RSS.

Nhật ký thay đổi

2.2.6 – 2024-08-28

2.2.5 – 2024-06-27

  • Đã thêm: Filter mới, safe_svg_current_user_can_upload, cho phép kiểm soát tốt hơn việc ai có thể tải lên file SVG (được thực hiện bởi @dkotter, @iamdharmesh thông qua #193).
  • Đã sửa: Fatal error khi áp dụng filter admin_post_thumbnail_html chỉ với hai đối số (argument) (được thực hiện bởi @kmgalanakis, @dkotter, @liz1kiweno thông qua #196).
  • Đã sửa: Ngăn chặn PHP fatal error khi giá trị của filter block category sau khi lọc không phải là một mảng (array) (được thực hiện bởi @kmgalanakis, @dkotter, @cguidog thông qua #200).
  • Đã sửa: Xử lý cảnh báo PHP khi $image_meta không phải là một mảng (array) (được thực hiện bởi @faisal-alvi, @dkotter, @drazenbebic, @kirtangajjar thông qua #203).

2.2.4 – 2024-03-28

  • Đã thay đổi: Nâng cấp download-artifact từ phiên bản v3 lên v4 (được thực hiện bởi @iamdharmesh, @jeffpaul thông qua #181).
  • Đã thay đổi: Thay thế lee-dohm/no-response bằng actions/stale để giúp đóng các vấn đề không phản hồi/cũ (được thực hiện bởi @jeffpaul, @dkotter thông qua #183).
  • Đã sửa: Đảm bảo tệp SVG có thể được tải trước khi cố truy cập các thuộc tính (attribute) của nó (được thực hiện bởi @dkotter, @metashield-ie, @ocean90, @darylldoyle, @faisal-alvi thông qua #186).
  • Đã sửa: Đảm bảo không xảy ra lỗi JS trong Classic Editor khi tính năng tối ưu hóa được bật (được thực hiện bởi @dkotter, @turtlepod, @faisal-alvi thông qua #187).
  • Bảo mật: Nâng cấp webpack-dev-middleware từ phiên bản 5.3.3 lên 5.3.4 (được thực hiện bởi @dependabot, @dkotter thông qua #185).
  • Bảo mật: Nâng cấp express từ phiên bản 4.18.2 lên 4.19.2 (được thực hiện bởi @dependabot, @dkotter thông qua #188).

2.2.3 – 2024-03-20

  • Đã thêm: Hỗ trợ xem trước plugin trên WordPress.org (được thực hiện bởi @dkotter, @jeffpaul thông qua #167).
  • Đã thay đổi: Tăng phiên bản WordPress “đã kiểm tra đến” lên 6.5 (được thực hiện bởi @dkotter, @jeffpaul thông qua #180).
  • Đã thay đổi: Dọn dẹp các thư viện NPM và cập nhật Node lên phiên bản v20 (được thực hiện bởi @Sidsector9, @dkotter thông qua #172).
  • Đã sửa: Tái cấu trúc hàm svg_dimensions để tăng hiệu suất (được thực hiện bởi @sksaju, @cjyabraham, @bmarshall511, @Hercilio1, @darylldoyle thông qua #154, #174).
  • Đã sửa: Khắc phục fatal JS error khi tính năng tối ưu hóa được bật và một mục được xuất bản mà không có block nào (được thực hiện bởi @psorensen, @tictag, @dkotter thông qua #173).
  • Bảo mật: Nâng cấp axios từ phiên bản 0.25.0 lên 1.6.2 và @wordpress/scripts từ phiên bản 26.0.0 lên 26.18.0 (được thực hiện bởi @dependabot, @ravinderk thông qua #166).
  • Bảo mật: Nâng cấp follow-redirects từ phiên bản 1.15.3 lên 1.15.6 và ip từ phiên bản 1.1.8 lên 1.1.9 (được thực hiện bởi @dependabot, @dkotter thông qua #169, #177).

2.2.2 – 2023-11-21

  • Đã thay đổi: Tăng phiên bản WordPress “đã kiểm tra đến” lên 6.4 (được thực hiện bởi @qasumitbagthariya, @jeffpaul thông qua #162, #163).
  • Đã sửa: Đảm bảo CSS được áp dụng đúng cho block SVG Icon khi thêm qua theme.json (được thực hiện bởi @tobeycodes, @dkotter thông qua #161).

2.2.1 – 2023-10-23

  • Đã thay đổi: Cập nhật block SVG Icon lên apiVersion 3 (được thực hiện bởi @fabiankaegy, @ravinderk, @jeffpaul, @dkotter thông qua #133).
  • Đã sửa: Khắc phục lỗi do block SVG Icon sử dụng thuộc tính fill-rule (được thực hiện bởi @zamanq, @jeffpaul, @iamdharmesh thông qua #152).
  • Bảo mật: Nâng cấp postcss từ phiên bản 8.4.20 lên 8.4.31 (được thực hiện bởi @dependabot, @faisal-alvi thông qua #155).
  • Bảo mật: Nâng cấp @cypress/request từ phiên bản 2.88.12 lên 3.0.1 và cypress từ phiên bản 10.11.0 lên 13.3.0 (được thực hiện bởi @dependabot, @ravinderk thông qua #156).
  • Bảo mật: Nâng cấp @babel/traverse từ phiên bản 7.20.12 lên 7.23.2 (được thực hiện bởi @dependabot, @iamdharmesh thông qua #158).

2.2.0 – 2023-08-21

  • Đã thêm: Cài đặt mới cho phép chọn loại tài khoản nào có thể tải lên tệp SVG (được thực hiện bởi @dhanendran, @csloisel, @faisal-alvi, @dkotter thông qua #76).
  • Đã thêm: Tối ưu hóa dung lượng SVG trong quá trình tải lên bằng SVGO. Tính năng này bị tắt theo mặc định nhưng có thể bật bằng cách sử dụng filter safe_svg_optimizer_enabled (được thực hiện bởi @gsarig, @peterwilsoncc, @Sidsector9, @darylldoyle, @faisal-alvi, @dkotter, @ravinderk thông qua #79, #145).
  • Đã thêm: Tùy chọn khoảng cách (spacing) và màu sắc (color) đã được thêm vào block SVG (được thực hiện bởi @bmarshall511, @iamdharmesh thông qua #135).
  • Đã thêm: Đã thêm Mochawesome reporter cho báo cáo kiểm thử Cypress (Cypress test report) (được thực hiện bởi @jayedul, @peterwilsoncc thông qua #124).
  • Đã thay đổi: Cập nhật Mức hỗ trợ từ Active (Hoạt động) sang Stable (Ổn định) (được thực hiện bởi @Sidsector9, @iamdharmesh thông qua #100).
  • Đã thay đổi: Cập nhật tên của block SVG từ Safe SVG Icon thành Inline SVG (được thực hiện bởi @bmarshall511, @iamdharmesh thông qua #135).
  • Đã thay đổi: Tăng phiên bản WordPress “đã kiểm tra đến” lên 6.3 (được thực hiện bởi @dkotter, @jeffpaul thông qua #144).
  • Đã thay đổi: Cập nhật Dependency Review GitHub Action (được thực hiện bởi @jeffpaul, @Sidsector9 thông qua #128).
  • Đã sửa: Thêm namespace vào check class_exists (được thực hiện bởi @szepeviktor, @iamdharmesh thông qua #120).
  • Đã sửa: Đảm bảo Sanitizer class được nhập đúng cách (được thực hiện bởi @szepeviktor, @iamdharmesh thông qua #121).
  • Đã sửa: Loại bỏ một biến toàn cục không cần thiết (được thực hiện bởi @szepeviktor, @iamdharmesh thông qua #122).
  • Đã sửa: Sử dụng đường dẫn tuyệt đối trong require (được thực hiện bởi @szepeviktor, @iamdharmesh thông qua #123).
  • Đã sửa: Đảm bảo custom classname được thêm vào block SVG được hiển thị ở front-end (được thực hiện bởi @bmarshall511, @Sidsector9, @dkotter thông qua #130).
  • Đã sửa: Đảm bảo SimpleXML tồn tại trước khi sử dụng (được thực hiện bởi @sdmtt, @faisal-alvi thông qua #140).
  • Đã sửa: Sửa các vấn đề về markdown trong tệp readme (được thực hiện bởi @szepeviktor, @iamdharmesh thông qua #119).
  • Bảo mật: Nâng cấp semver từ phiên bản 5.7.1 lên 5.7.2 (được thực hiện bởi @dependabot thông qua #134).
  • Bảo mật: Nâng cấp word-wrap từ phiên bản 1.2.3 lên 1.2.5 (được thực hiện bởi @dependabot thông qua #141).
  • Bảo mật: Nâng cấp tough-cookie từ phiên bản 4.1.2 lên 4.1.3 và @cypress/request từ phiên bản 2.88.10 lên 2.88.12 (được thực hiện bởi @dependabot thông qua #146).

Xem chi tiết lịch sử thay đổi (changelog) tại đây.