安全问题:将敏感数据(例如密码)从childFragments EditText传递到parentFragment

时间:2019-03-26 22:53:54

标签: android firebase authentication fragment password-protection

我正在开发DatingApp,目前正在从事登录/注册过程。

由于某些设计方面的原因,我有一个 AuthActivity 持有 MailAuthFragment (带有“继续”按钮!),持有 EnterMailSubFragment (电子邮件+密码EditText)/ ConfirmMailSubFragmen t(该屏幕显示带有重新发送验证按钮的相关电子邮件)。

我希望 MailAuthFragment 执行所有数据库工作,以便我的 EnterMailSubFragment 仅需要获取EditText条目并将其安全地传递给父 MailAuthFragment

另一个困难是:我希望EnterMail内容和ConfirmMail内容独立于我的“继续”按钮滑动。要实现此按钮是父 MailAuthFragment 的一部分。

当按以下方法触发MailAuthFragment中的“继续”按钮onClick()时:

Fragment mCurrentFragment = getChildFragmentManager().findFragmentById(R.id.fragment_mailauth_container);

    if(mCurrentFragment instanceof EnterMailSubFragment){
        String mMail = ((EnterMailSubFragment) mCurrentFragment).getEmail();
        String mPassword = ((EnterMailSubFragment) mCurrentFragment).getPassword();
        if(mMail == null || mPassword == null){
            return;
        }


因此,我的EnterMailSubFragment具有公用方法getEmail() / getPassword()
我不确定这是否是将某些数据从ChildFragment传递到ParentFragment的安全方法。宣布它们受到保护似乎也很容易受到伤害。

我也可以想象在ChildFragment EnterMailSubFragment

中使用类似的接口
public interface MailSubFragmentListener{
    void onSendEmail(String mEmail);
    void onSendPassword(String mPassword);
}

private MailSubFragmentListener mCallback;

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View mView = inflater.inflate(R.layout.subfragment_mailauth, container, false);
    this.initUiWidgets(mView);
    return mView;
}

public void setListener(MailSubFragmentListener mCallback){
    this.mCallback = mCallback;
}

public static EnterMailSubFragment newInstance(MailSubFragmentListener mCallback){
    EnterMailSubFragment mFragment = new EnterMailSubFragment();
    mFragment.setListener(mCallback);
    return mFragment;
}<br/>

并在我的ParentFragment中将其实现为

  this.performFragmentTransaction(EnterMailSubFragment.newInstance(new EnterMailSubFragment.MailSubFragmentListener() {
        @Override
        public void onSendEmail(String mEmail) {

        }

        @Override
        public void onSendPassword(String mPassword) {

        }
    }),"EnterMail", mEnterAnim);<br/>

这些方法中的任何一种是否足以安全地传递密码和电话号码?

0 个答案:

没有答案