如何安全地将Android会话转移到web到webview?

时间:2018-02-01 19:20:41

标签: android firebase webview oauth-2.0 firebase-authentication

我尝试将用户ID从网址传递到webview,但如果有人获得用户ID,那么会出现安全问题,然后他们就可以将数据发布到firebase中。

还有其他方法可以将会话转移到webview吗?

我目前的代码:

if (firebaseAuth.getCurrentUser() == null) {
            //closing this activity
            finish();
            //starting login activity
            startActivity(new Intent(this, MainActivity.class));
        }else {

            final DatabaseReference myref = FirebaseDatabase.getInstance().getReference();
            myref.child("Users").child(FirebaseAuth.getInstance().getCurrentUser().getUid()).addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                    if (dataSnapshot.child("data").exists()){
                        Toast.makeText(getApplication(),"You have already submitted the form",Toast.LENGTH_LONG).show();
                        Intent homeActivity = new Intent(getApplicationContext(),Home.class);
                        startActivity(homeActivity);
                        finish();
                    }    else {

                        String userId = firebaseAuth.getInstance().getCurrentUser().getUid();
                        WebView myWebView = (WebView) findViewById(R.id.webview);
                        myWebView.setWebChromeClient(new WebChromeClient());
                        myWebView.getSettings().setJavaScriptEnabled(true);

                       // passing url parameters
                        String url = "https://someurl/?param1=" + userId;
                        myWebView.loadUrl(url);
                        Toast.makeText(getApplicationContext(),""+url,Toast.LENGTH_LONG).show();
                    }
                }

                @Override
                public void onCancelled(DatabaseError databaseError) {

                }
            });

1 个答案:

答案 0 :(得分:0)

到目前为止,使用URL变量是实现此目的的最简单方法。 至于安全性,我不认为这是一个问题。用户ID是不可能猜到的,一些随机的人很难获得它。大多数用户自己甚至不知道自己的用户ID。您还可以尝试向数据库添加安全规则以帮助实施安全性。 你可以在这里阅读更多相关信息......

https://firebase.google.com/docs/database/security/

如果您不想使用这种方法,可以尝试快速谷歌搜索“将JS与原生Android进行通信”,但您可能会发现它有点复杂。