1. android 密码输入框
EditText password;
password.setInputType(0x81);
2.在几个Acitivy 中使用Intent传送数据的安全性考虑
方式一:
Intent intent = new Intent();
intent.putExtra("username", name);
intent.putExtra("password", password);
intent.setAction("edu.com.SendIntent.LoginActivity");
intent.addCategory(Intent.CATEGORY_DEFAULT);
startActivity(intent);
安全问题:如果在一个hack app 中也定义了相同名称的action:
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="edu.com.SendIntent.LoginActivity" />
<category android:name="android.intent.category.DEFAULT" />
intent-filter>
activity>
那么在intent-filter过滤时,这些信息也将被hack app拦截到。
两种方式可以防止这个情况发生:
方式一:
不使用setAction()隐式获取intent,而使用setClassName()根据包名和类名显式获取intent
Intent intent = new Intent();
intent.putExtra("username", name);
intent.putExtra("password", password);
intent.setClassName("edu.com.SendIntent", "edu.com.SendIntent.LoginActivity");
startActivity(intent);
方式二:
Intent intent = new Intent(this,MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Bundle bun = new Bundle();
bun.putString("Username", useredit.getText().toString());
bun.putString("Password", pswedit.getText().toString());
intent.setClass(this, IntentReciever.class);
intent.putExtras(bun);
MainActivity.this.startActivity(intent);