用凭据改装授权头

im9ewurl  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(330)

我有一个通过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);
}

}

bnlyeluc

bnlyeluc1#

这并不理想,但您可以使用现有的服务器和客户机堆栈。如果服务器上的auth是client/password,并且您提示用户输入详细信息和存储,并且连接总是安全的(https),那么它似乎最适合您的情况。
要避免的事情
纯文本请求(http://)
在应用程序二进制文件中嵌入凭据
将此用于关键数据因为对用户来说很难撤销,所以像oauth这样的令牌更适合于此,也可以限定范围。

相关问题