Hướng dẫn php check if base64 is image - php kiểm tra xem base64 có phải là hình ảnh không
Tôi đang xây dựng một ứng dụng cho phép người dùng Show Một chút jQuery sẽ lấy dữ liệu canvas, 0Tuy nhiên, bảo mật là nền tảng và cần xác nhận dữ liệu Canvas Base64 để ngăn chặn dữ liệu độc hại trong yêu cầu 2 và được yêu cầu trên tải trang.Tôi hiện đang có một thiết lập như thế này:
Tôi muốn đảm bảo thiết lập hiện tại của tôi đủ an toàn để ngăn các URL bên ngoài được chèn vào thẻ 2 và nếu không, có thể làm gì để xác thực dữ liệu hình ảnh?
@desaikalpesh34 Tôi tin rằng điều này giải quyết vấn đề của bạn và của tôi! PHP có hai chức năng tích hợp để làm việc với Base64: base64_encode và base64_decode. Dường như điều này là đủ để làm việc với thuật toán này, nhưng thực tế chứng minh rằng nó không phải lúc nào cũng đơn giản. Ví dụ, một số người dùng gặp phải vấn đề khi cố gắng xác thực các giá trị Base64. Trước hết tôi muốn chỉ cho bạn gần như cách hoàn hảo để kiểm tra xem chuỗi có được mã hóa Base64 không.
Như bạn đã nhận thấy, tôi đã viết về cách gần như hoàn hảo, vì đối với một kiểm tra lý tưởng, bạn có thể xem xét như sau:
Ngoài ra, nếu bạn đang tự hỏi tại sao các chuỗi như là ABCD, thì IUJHKLSC, hoặc 123412341234, được coi là hợp lệ, ngay cả khi chúng tạo ra một kết quả kỳ lạ, vui lòng cho tôi nhớ rằng Base64 được phát triển để mã hóa và giải mã dữ liệu nhị phân. Vì vậy, không có gì sai. Bạn có thể tự mình xem bằng cách tải xuống các tệp sau và giải mã chúng bằng công cụ tệp Decode Base64 hoặc thậm chí sử dụng các ngôn ngữ hoặc triển khai lập trình khác.
Cuối cùng, tôi muốn chỉ ra một số sai lầm phổ biến trong quá trình xác thực Base64:common mistakes made during the Base64 validation: 1) Sai lầm lớn nhất là không kiểm tra Sai Boolean. Ví dụ: đoạn trích bên dưới sẽ không bao giờ hiển thị hợp lệ, ngay cả khi đầu vào 7 là giá trị base64 hợp lệ cho mã hóa được mã hóa 0 0 (không).
2) Có lẽ bạn nghĩ rằng nó đủ để sử dụng toán tử so sánh giống hệt nhau ( 8). Tuy nhiên, đây không phải là trường hợp. Ví dụ sau đây sẽ luôn luôn xuất ra giá trị hợp lệ, ngay cả khi 9 là giá trị cơ sở không hợp lệ.
3) Người tiếp theo AHA! Hiệu ứng sẽ là ý tưởng để kích hoạt chế độ 0. Tuy nhiên, tôi không nghĩ rằng đây là những gì bạn cần. Ít nhất là do thực tế là bất kỳ chữ số và chữ cái Latin nào sẽ được coi là giá trị base64 hợp lệ. Ví dụ, những điều sau đây sẽ luôn luôn xuất hiện hợp lệ, mặc dù điều này rõ ràng không phải là trường hợp.
Nhân tiện, như một trò đùa, tôi muốn lưu ý rằng ví dụ cuối cùng gần giống với biểu thức thông thường:
Tất nhiên, tất cả phụ thuộc vào loại đầu vào bạn muốn kiểm tra và kết quả quan trọng như thế nào. Tuy nhiên, nếu bạn nhận được dữ liệu đầu vào từ người dùng không xác định, tôi thực sự khuyên bạn nên kiểm tra lại mọi thứ. Làm thế nào tôi có thể biết hình ảnh có phải là base64 hay không trong PHP?Xin chào các bạn, bạn có thể xác thực mã hình ảnh mã hóa cơ sởusing getimagesize() function just use the given below code:
Làm thế nào để tôi biết nếu một hình ảnh là base64?Không thể phân biệt rõ ràng Chuỗi văn bản và chuỗi mã hóa hình ảnh Base64.Cách duy nhất - kiểm tra xem chuỗi của bạn có hợp lệ chuỗi mã hóa cơ sở 64 hợp lệ không.Nếu nó là - có lẽ đó là một hình ảnh.Nếu không - bạn có thể chắc chắn đó là một văn bản.check if your string is valid Base 64 encoding string. If it is - probably it is an image. If not - you can be sure it is a text.
Làm thế nào tôi có thể biết nếu PHP là base64 được mã hóa?Làm thế nào để kiểm tra xem một cái gì đó là cơ sở64 được mã hóa mã PHP.. chức năng is_base64_encoded ($ data). if (preg_match ('%^[a-za-z0-9/+]*= {0,2} $%', $ data)) {. trả về đúng ;. } khác {. trả lại sai ;. Làm thế nào để bạn kiểm tra xem một chuỗi có phải là base64 hay không?Trong mã hóa base64, bộ ký tự là [A-Z, A-Z, 0-9 và + /].Nếu độ dài phần còn lại nhỏ hơn 4, chuỗi được đệm với các ký tự '='.^([A-A-Z0-9+/] {4})* có nghĩa là chuỗi bắt đầu với các nhóm 0 hoặc nhiều hơn.^([A-Za-z0-9+/]{4})* means the string starts with 0 or more base64 groups. |