2017-02-09 54 views
1

正如你所知道的Android开发者:修复片段注入漏洞

起2017年3月1日,谷歌Play不会阻止任何新的应用程序或更新的发布,这些PreferenceActivity类可能会受到片段注射

在页面https://support.google.com/faqs/answer/7188427它提供了一些建议,如何解决这个漏洞但是用Xamarin开发的应用程序呢?

我还没有找到关于此的任何信息。它说,我受影响的类是SettingActivity,从PreferenceActivity继承和我的课SettingActivity是这样的:

[Activity(
    Label = "@string/ApplicationName", 
    Icon = "@drawable/ic_launcher", 
    Theme = "@android:style/Theme.Holo.Light", 
    ParentActivity = typeof(MainActivity))] 
[IntentFilter(
    new [] {Intent.ActionManageNetworkUsage}, 
    Categories= new [] {Intent.CategoryDefault} 
)] 
public class SettingsActivity : PreferenceActivity 
{ 
    public static readonly string KeyWifiOnly = "pref_wifi_only"; 

    protected override void OnCreate(Bundle savedInstanceState) 
    { 
     base.OnCreate(savedInstanceState); 
     AddPreferencesFromResource(Resource.Xml.preferences); 

     ActionBar.SetHomeButtonEnabled(true); 
     ActionBar.SetDisplayHomeAsUpEnabled(true); 

     PreferenceManager.SetDefaultValues(this, Resource.Xml.preferences, false); 

     SetupNetworkPreferences(); 
    } 

    private void SetupNetworkPreferences() 
    { 
     var prefs = PreferenceManager.GetDefaultSharedPreferences(this); 

     ListPreference list = FindPreference(
      AppSettings.PreferenceNetworkProvider) as ListPreference; 

     list.SetEntries(
      Enum.GetNames(typeof(AppSettings.FtpHostNetwork))); 

     list.SetEntryValues(Enum 
      .GetValues(typeof(AppSettings.FtpHostNetwork)) 
      .Cast<int>() 
      .Select(x => x.ToString()) 
      .ToArray()); 
    } 

    protected override void OnResume() 
    { 
     base.OnResume(); 

     var tracker = (Application as App).Tracker; 
     tracker.Screen("PantallaPreferencias"); 
    } 
} 
+1

尽量设置导出到假'【活动( 标签= “@字符串/应用程序名称”,远销=假, 图标= “@绘制/ ic_launcher”, 主题=“@android:风格/主题。 Holo.Light”, ParentActivity = typeof运算(MainActivity))] [IntentFilter的( 新的[] {} Intent.ActionManageNetworkUsage, 分类=新[] {} Intent.CategoryDe​​fault )]' –

+0

是的,这做的伎俩。非常感谢迈克。你刚刚救了我的工作 – GalloPinto

回答

0

正如意见建议由Mike马:

添加远销=假propierty工作就好了。

[Activity(Label = "@string/ApplicationName", Exported =false, Icon = "@drawable/ic_launcher", Theme = "@android:style/Theme.Holo.Light", ParentActivity = typeof(MainActivity))]