GyaanSetu PHP

PHP, Laravel và WordPress.

32 articlesDeep, practical knowledge

Đừng ngó lơ các cảnh báo lỗi thời: Shopware tách biệt @deprecated khỏi các thay đổi nhỏ của API

Shopware 6.7.14.0 bổ sung một namespace thuộc tính BC-Change mới giúp phân biệt giữa các cảnh báo lỗi thời thực sự và các thay đổi nhỏ không gây hại của API, cho phép các nhà phát triển tập trung xử lý các cảnh báo CallSiteCompatibilityChange và ExtenderCompatibilityChange trước khi phiên bản 6.8 ra mắt.

PHP · 1 min read

Tài khoản kế toán chỉ có quyền đọc có thể hủy hóa đơn trong Akaunting cho đến bản vá 3.2.0

Người dùng chỉ có quyền đọc có thể gọi endpoint markCancelled không được tài liệu hóa thông qua yêu cầu GET, làm xóa sạch các hồ sơ thanh toán và phá vỡ dấu vết kiểm toán. Lỗi này bắt nguồn từ việc danh sách cho phép (allowlist) đã bỏ sót các phương thức thay đổi trạng thái, và đã được khắc phục trong phiên bản 3.2.0.

PHP · 2 min read

Chặn wp-cron.php tại máy chủ để tiết kiệm PHP workers và ngăn chặn tình trạng CPU tăng đột biến

Việc đặt DISABLE_WP_CRON = true chỉ ngăn WordPress thực hiện các yêu cầu loopback của chính nó; URL wp-cron.php vẫn có thể truy cập được và có thể bị kẻ tấn công tấn công dồn dập, làm cạn kiệt PHP workers và gây ra tình trạng từ chối dịch vụ trên các máy chủ dùng chung.

PHP · 4 min read

Bản vá InvoiceShelf khắc phục lỗ hổng điểm 8.7 cho phép bất kỳ Chủ sở hữu nào chiếm quyền điều khiển các khách thuê khác

Lỗ hổng này bắt nguồn từ cơ chế route-model binding của Laravel và việc thiếu kiểm tra phạm vi khách thuê (tenant-scope), cho phép một Chủ sở hữu yêu cầu bất kỳ ID người dùng nào và ghi đè thông tin xác thực, từ đó chuyển tài khoản của nạn nhân sang công ty của kẻ tấn công.

PHP · 2 min read

Dev Magento giảm 300 lần số lượng truy vấn DB, nhưng sản phẩm hết hàng lại 'biến mất'

Việc thay thế 300 lần gọi repository cho mỗi sản phẩm bằng một truy vấn collection duy nhất đã giúp cắt giảm đáng kể số lượng truy vấn, nhưng bộ lọc kho hàng tích hợp của Magento lại loại bỏ toàn bộ các SKU có số lượng bằng 0, khiến khách hàng chỉ thấy một danh mục sản phẩm không đầy đủ.

PHP · 3 min read

TrendVidStream chuyển từ JWT 30 ngày sang Refresh Token chỉ sử dụng một lần sau sự cố tấn công

Một SDK của đối tác đã lưu trữ JWT 30 ngày dưới dạng văn bản thuần túy, cho phép kẻ tấn công tái sử dụng từ nước ngoài. Sự cố này đã buộc TrendVidStream phải thay thế các JWT có thời hạn dài bằng các token truy cập 15 phút và refresh token chỉ sử dụng một lần, giúp kích hoạt việc thu hồi ngay lập tức nếu có dấu hiệu tái sử dụng.

PHP · 3 min read

Etcd giảm lỗi định tuyến video tại APAC xuống còn 1 giây, ngăn chặn tình trạng định tuyến sai Seoul-Tokyo

Bằng cách chuyển dữ liệu định tuyến đặc thù theo khu vực vào etcd thông qua các nguyên ngữ watch, lease và CAS, nền tảng hiện có thể đẩy các thay đổi đến cả tám bộ định tuyến chỉ trong khoảng một giây. Một sidecar Go nhỏ gọn sẽ ghi cấu hình vào bộ nhớ dùng chung, giúp PHP xử lý các yêu cầu với độ trễ đọc bằng không.

PHP · 4 min read

Cách Edge-Side Includes giúp giảm tải trang xu hướng từ 4.000 xuống còn <50 truy vấn mỗi phút

Nhóm đã chia trang chủ thành ba phần—lưới video, bộ chuyển đổi ngôn ngữ và thanh tiêu đề trực tiếp—bằng cách sử dụng TTL của Varnish là 60 giây, 24 giờ và không lưu bộ nhớ đệm, loại bỏ cookie khỏi các phần ẩn danh, đồng thời tận dụng surrogate keys để thực hiện xóa bộ nhớ đệm tức thì.

PHP · 3 min read

Nền tảng video thay thế SQLite FTS5 bằng OpenSearch để giảm số lượng kết quả tìm kiếm trống xuống gấp 10 lần

Đội ngũ kỹ thuật vẫn giữ SQLite làm kho lưu trữ dữ liệu gốc và xây dựng một bản sao OpenSearch chỉ đọc với các lớp phân cấp mức độ liên quan cùng các thiết lập tìm kiếm mờ (fuzzy) đã được tinh chỉnh, giúp giảm số lượng kết quả trống xuống gấp 10 lần mà vẫn duy trì độ trễ trung vị dưới 28 ms.

PHP · 3 min read

Nếu bạn cài đặt một plugin “Last Login” và đột nhiên màn hình Người dùng WordPress của bạn trông có vẻ ngăn nắp, thì sự ngăn nắp đó đang lừa dối

Nếu bạn cài đặt một plugin “Last Login” và đột nhiên màn hình Người dùng WordPress của bạn trông có vẻ ngăn nắp, thì sự ngăn nắp đó đang lừa dối bạn. Các ngày tháng trông có vẻ đáng tin cậy. Bạn có thể sắp xếp chúng. Th…

PHP · 4 min read

Quá trình hydration đối tượng có vẻ như là một vấn đề đã được giải quyết cho đến khi bạn đo lường nó. Bạn lấy một hàng từ cơ sở dữ liệu, bạn ánh xạ mảng

Quá trình hydration đối tượng có vẻ như là một vấn đề đã được giải quyết cho đến khi bạn đo lường nó. Bạn lấy một hàng từ cơ sở dữ liệu, bạn ánh xạ mảng đó thành một đối tượng, và tiếp tục công việc. Hầu hết chúng ta đều coi nó là một việc hiển nhiên...

PHP · 5 min read

Tự động hóa tiếp thị mã nguồn mở không nhất thiết phải đồng nghĩa với việc giao dữ liệu của bạn cho một nhà cung cấp SaaS. Mautic đưa các chiến dịch email

Tự động hóa tiếp thị mã nguồn mở không nhất thiết phải đồng nghĩa với việc giao dữ liệu của bạn cho một nhà cung cấp SaaS. Mautic đưa các chiến dịch email, theo dõi liên hệ và nuôi dưỡng khách hàng tiềm năng về ngay tại hạ tầng của chính bạn.…

PHP · 5 min read