android–SharedPreferences的MODE_MULTI_PROCESS比MODE_PRIVATE更不安全

android–SharedPreferences的MODE_MULTI_PROCESS比MODE_PRIVATE更不安全,第1张

概述Androiddocumentation没有说明任何关于而且MODE_MULTI_PROCESS是安全的(安全方面)是否安全.那么,这样安全吗?有没有理由不使用它?解决方法:此标志与安全性无关,但与访问可靠性无关.效率较低但尝试避免由访问底层文件的多个进程(来自同一应用程序)引起的问题.如果您不编写多进程应用

Android documentation没有说明任何关于而且MODE_MulTI_PROCESS是安全的(安全方面)是否安全.

那么,这样安全吗?有没有理由不使用它?

解决方法:

此标志与安全性无关,但与访问可靠性无关.效率较低但尝试避免由访问底层文件的多个进程(来自同一应用程序)引起的问题.如果您不编写多进程应用程序,则不需要它.如果这样做,文档建议使用其他进程间通信.出于性能原因而不是安全性,文档建议不要使用它.

因此,一方面MODE_PRIVATE / MODE_WORLD_READABLE / MODE_WORLD_WRITEABLE和另一方面的MODE_MulTI_PROCESS是正交标志.如果您打开SharedPreferences:

> MODE_PRIVATE – >安全
> MODE_WORLD_READABLE – >不安全@H_301_12@> MODE_PRIVATE | MODE_MulTI_PROCESS – >安全@H_301_12@> MODE_WORLD_READABLE | MODE_MulTI_PROCESS – >不安全

并且当MODE_PRIVATE的值为0时:MODE_MulTI_PROCESS相当于MODE_PRIVATE | MODE_MulTI_PROCESS(即安全)

实际上,MODE_MulTI_PROCESS源代码中唯一的用法是在ContextImpl类中:

@OverrIDepublic SharedPreferences getSharedPreferences(String name, int mode) {    SharedPreferencesImpl sp;    synchronized (sSharedPrefs) {        sp = sSharedPrefs.get(name);        if (sp == null) {            file prefsfile = getSharedPrefsfile(name);            sp = new SharedPreferencesImpl(prefsfile, mode);            sSharedPrefs.put(name, sp);            return sp;        }    }    if ((mode & Context.MODE_MulTI_PROCESS) != 0 ||        getApplicationInfo().targetSdkVersion < androID.os.Build.VERSION_CODES.HONEYCOMB) {        // If somebody else (some other process) changed the prefs        // file behind our back, we reload it.  This has been the        // historical (if undocumented) behavior.        sp.startReloadIfChangedUnexpectedly();    }    return sp;}
总结

以上是内存溢出为你收集整理的android – SharedPreferences的MODE_MULTI_PROCESS比MODE_PRIVATE更不安全全部内容,希望文章能够帮你解决android – SharedPreferences的MODE_MULTI_PROCESS比MODE_PRIVATE更不安全所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1115593.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存