问候stackoverflow.
最近,我正在追踪Android框架中的蓝牙操作机制.我注意到在通过OPP接收文件时,this patch会产生一些文件类型限制.
在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),因为这些文件可能会损害我们的设备.如果阻止某些特定类型是我们在此设置列表的原因,为什么我们会在此补丁之前使用白名单而不是黑名单?当我们通过其他非蓝牙协议(如HTTP)传输文件时是否存在类似的限制?
本文探讨了Android蓝牙框架中对文件类型的白名单限制,特别是在com.android.bluetooth.opp包中的Constants.java中定义的ACCEPTABLE_SHARE_INBOUND_TYPES。这个白名单用于限制从其他设备接收的文件类型,主要是为了防止潜在的恶意可执行文件(如.apk, .so)对设备造成危害。作者指出,相较于黑名单策略,白名单提供了更积极的安全保障,因为它只允许预定义的安全文件类型通过。然而,文章未提及是否在其他非蓝牙协议(如HTTP)中存在类似的安全措施。

被折叠的 条评论
为什么被折叠?



