我有一个通过htaccess保护目录及其内容的web服务器。我的android应用程序可以通过okhttpclient拦截器用用户名和密码访问这个目录。目前,实际的用户名和密码被设置为拦截器中的参数。该应用程序可以访问没有任何问题。
我的问题是这是否是一个好的和安全的做法。我的代码如下。先谢谢你。
Okhttp客户端
//This method establish the OkHttpClient timers
private static OkHttpClient client() {
//Return the OkHttpClient with the read and connect Timeouts
return new OkHttpClient.Builder().readTimeout(30, TimeUnit.SECONDS)
.connectTimeout(10, TimeUnit.SECONDS)
.addInterceptor(new BasicAuthInterceptor("<username>","<password>"))
.build();
}
基底节感受器
public class BasicAuthInterceptor implements Interceptor {
private String credentials;
public BasicAuthInterceptor(String user, String password) {
this.credentials = Credentials.basic(user, password);
}
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
Request authenticatedRequest = request.newBuilder()
.header("Authorization", credentials).build();
return chain.proceed(authenticatedRequest);
}
}
1条答案
按热度按时间bnlyeluc1#
这并不理想,但您可以使用现有的服务器和客户机堆栈。如果服务器上的auth是client/password,并且您提示用户输入详细信息和存储,并且连接总是安全的(https),那么它似乎最适合您的情况。
要避免的事情
纯文本请求(http://)
在应用程序二进制文件中嵌入凭据
将此用于关键数据因为对用户来说很难撤销,所以像oauth这样的令牌更适合于此,也可以限定范围。