Почему Android так строго ограничивает допустимые типы файлов при приеме через Bluetooth OPP?

Приветствую, stackoverflow.

Недавно я отслеживаю рабочий механизм Bluetooth в платформе Android. Я заметил, что существует некоторое ограничение типа файла, которое этот патч делает при получении файлов через OPP.

в пакете com.android.bluetooth.opp исправлен белый список в 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 ... */
};

, который ограничивает допустимые типы файлов в 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;

Что заставляет нас беспокоиться о типе MIME в этой ситуации? Насколько мне известно, мы можем заблокировать исполняемые файлы (например, * .apk, * .so), поскольку эти файлы могут нанести вред нашему устройству. Если блокировка некоторых определенных типов является причиной, по которой мы устанавливаем здесь список, почему мы должны использовать белый список вместо черного непосредственно перед этим патчем? Есть ли подобное ограничение при передаче файлов по другому протоколу, отличному от Bluetooth, например HTTP?

8
задан Will Norris 31 July 2013 в 23:29
поделиться