Chúc mừng stackoverflow.Tại sao Android giới hạn các loại tệp có thể chấp nhận được trong khi nhận thông qua Bluetooth OPP?
Gần đây, tôi đang theo dõi cơ chế hoạt động Bluetooth trong khung công tác Android. Tôi đã nhận thấy rằng có một số loại tệp giới hạn được thực hiện bởi this patch trong khi nhận tệp qua OPP.
trong gói com.android.bluetooth.opp
, có một danh sách trắng cố định trong Constants.java
/**
* The MIME type(s) of we could accept from other device.
* This is in essence a "white list" of acceptable types.
* Today, restricted to images, audio, video and certain text types.
*/
public static final String[] ACCEPTABLE_SHARE_INBOUND_TYPES = new String[] {
/* ... some types such as images and music ... */
};
làm hạn chế các loại tệp được chấp nhận trong BluetoothOppObexServerSession.java
// Reject policy: anything outside the "white list" plus unspecified
// MIME Types.
if (!pre_reject
&& (mimeType == null || (!Constants.mimeTypeMatches(mimeType,
Constants.ACCEPTABLE_SHARE_INBOUND_TYPES)))) {
if (D) Log.w(TAG, "mimeType is null or in unacceptable list, reject the transfer");
pre_reject = true;
obexResponse = ResponseCodes.OBEX_HTTP_UNSUPPORTED_TYPE;
Điều làm chúng tôi lo ngại về kiểu MIME trong tình huống này? Theo hiểu biết của tôi, chúng tôi có thể chặn các tệp thi hành (tức là * .apk, * .so) vì các tệp đó có thể gây hại cho thiết bị của chúng tôi. Nếu chặn một số loại cụ thể là lý do chúng tôi thiết lập một danh sách ở đây, tại sao chúng ta sẽ sử dụng một danh sách trắng thay vì một danh sách đen ngay trước bản vá này? Có giới hạn tương tự nào khi chúng tôi truyền tệp qua giao thức không phải bluetooth khác như HTTP không?
Cảm ơn bạn đã trả lời! Tôi sẽ chọn câu hỏi của tôi cẩn thận hơn trong lần tới. – coldturnip