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
-
Tất nhiên, bạn có thể thực hiện thông qua filter
svg_allowed_attributes
vàsvg_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á
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
- Đã thay đổi: Tăng phiên bản WordPress “đã kiểm tra đến” lên 6.6 (được thực hiện bởi @sudip-md, @ankitguptaindia, @jeffpaul thông qua #212, #213).
- Đã thay đổi: Tăng phiên bản WordPress tối thiểu từ 5.7 lên 6.4 (được thực hiện bởi @sudip-md, @ankitguptaindia, @jeffpaul thông qua #212, #213).
- Bảo mật: Thêm svg sanitization vào filter
wp_handle_sideload_prefilter
(được thực hiện bởi @dkotter, @xknown, @iamdharmesh thông qua GHSA-3vr7-86pg-hf4g). - Bảo mật: Nâng cấp
braces
từ 3.0.2 lên 3.0.3,pac-resolver
từ 7.0.0 lên 7.0.1,socks
từ 2.7.1 lên 2.8.3,ws
từ 7.5.9 lên 7.5.10 và loại bỏip
(được thực hiện bởi @dependabot, @Sidsector9 thông qua #206). - Bảo mật: Nâng cấp
axios
từ phiên bản 1.6.7 lên 1.7.4 (được thực hiện bởi @dependabot, @faisal-alvi thông qua #218).
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ằngactions/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) sangStable
(Ổ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).