使用jTDS驱动程序将Android应用程序连接到SQL Server是否安全?

问题描述

我正在开发一个Android应用程序,该应用程序通过使用java和android studio使用jtds驱动程序通过Internet连接到sql Server。 在我的应用程序的源代码中,我应该对sql Server的用户名密码以及名称和IP进行硬编码。 现在我有两个关于我的应用程序安全性的问题:

  1. 黑客可以反编译我的应用程序并访问sql Server的用户名密码吗?如果是的话,我应该怎么做才能解决这个问题?
  2. 黑客中间人可以解密我的应用程序的互联网流量并访问sql Server的用户名密码吗?如果是的话,我应该怎么做才能解决这个问题?

在我的两个问题中,我都关注普通的标准安全性,而不是关注非常高的安全性(例如NSA安全性)。

这是我的应用程序源代码的一部分,该应用程序负责连接到sql Server。在使用之前,我应该将jtds添加到android studio。谢谢

    package com.mysite.myappname;

    import android.annotation.SuppressLint;
    import android.os.StrictMode;
    import android.util.Log;

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.sqlException;

    public class ConnectionClass {
       String ip = "IP ADDRESS OF sql SERVER";
       String classs = "net.sourceforge.jtds.jdbc.Driver";
       String db = "DATABASE NAME";
       String un = "USERNAME";
       String password = "PASSWORD";
 
      @SuppressLint("NewApi")
      public Connection getConnection() {
        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
                .permitAll().build();
        StrictMode.setThreadPolicy(policy);
        Connection conn = null;
        String ConnURL = null;
        try {
            Class.forName(classs);
            ConnURL = "jdbc:jtds:sqlserver://" + ip + ";"
                    + "databaseName=" + db + ";user=" + un + ";password="
                    + password + ";";
            conn = DriverManager.getConnection(ConnURL);
        } catch (sqlException se) {
            Log.e("ERRO",se.getMessage());
        } catch (ClassNotFoundException e) {
            Log.e("ERRO",e.getMessage());
        } catch (Exception e) {
            Log.e("ERRO",e.getMessage());
        }
        return conn;
    }
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)