加密和解密存储在react-native Cookies数据库中的Cookies

在我的本机应用程序中,我使用fetch库进行网络通信,在通信中也使用了Cookie。

我的服务器向我发送了一些敏感数据,我将获取请求配置为通过credentials: 'include'来存储cookie

fetch(URL,{
  // other Options
  credentials: 'include',}).then().catch();

我在有根Android设备上测试了我的应用程序,发现Cookie已存储在名为Cookies的数据库中。

加密和解密存储在react-native Cookies数据库中的Cookies

当我在SQLiteDatabase浏览器中打开数据库时,发现敏感数据不安全地存储在该数据库中。

加密和解密存储在react-native Cookies数据库中的Cookies

我知道fetch Api在android实现中使用的是Okhttp3,因此我尝试通过覆盖其CookieJar类并为其添加一些加密和解密过程来更改默认客户端,以更改默认行为。

Mainactivity

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    OkHttpClientProvider.setOkHttpClientFactory(new OkHttpClientFactory() {
        @Override
        public OkHttpClient createNewNetworkModuleclient() {
            ReactCookieJarContainer reactCookieJarContainer = new ReactCookieJarContainer();
            reactCookieJarContainer.setCookieJar(new SecureCookieJar());
            return new OkHttpClient.Builder()
                // other configures
                .cookieJar(reactCookieJarContainer)
                .build();
        }
    });
}

SecureCookieJar

public class SecureCookieJar implements CookieJar {

    @Override
    public void saveFromResponse(HttpUrl url,List<Cookie> cookies) {
        // securely encrypt and store the cookies
    }

    @Override
    public List<Cookie> loadForRequest(HttpUrl url) {
        // decrypt the stored cookies
    }
}

但是当我调试代码时,我的类似乎没有被react-native考虑,仍然使用其内部类JavaNetCookieJar(我调试了代码并受到了打击)

ReactCookieJarContainer

加密和解密存储在react-native Cookies数据库中的Cookies

是否有任何方法可以覆盖默认行为,如果可以,我该如何实现。理想的方法是找到一种在传输Cookie之前覆盖JavaNetCookieJar来加密和解密Cookie的方法。

IOS是否也需要类似的程序?我不知道IOS如何在其本机实现中管理cookie。

lewode 回答:加密和解密存储在react-native Cookies数据库中的Cookies

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3165201.html

大家都在问