当前位置:编程学习 > C#/ASP.NET >>

C#数据库连接怎么保证安全

  我自己做了一个类似于论坛客户端的软件,但是目前在数据库安全链接的问题上纠结了
   老师推荐我创建一个DBHelper的方式在里面添加数据库连接的方法
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
namespace GamerBox
{
    public class DBHelper
    {
        //测试用,暂时连接的是本地的数据库
        private string connString = @"Data Source=.;Initial Catalog=Discuz;Persist Security Info=True;User ID=sa;Password=1234";

        private SqlConnection connection;

        public SqlConnection Connection
        {
            get
            {
                if (connection == null)
                {
                    connection = new SqlConnection(connString);
                }
                return connection;
            }
        }
        public void OpenConnection()
        {
            if (Connection.State == ConnectionState.Closed)
            {
                Connection.Open();
            }
            else if (Connection.State == ConnectionState.Broken)
            {
                Connection.Close();
                Connection.Open();
            }
        }
        public void CloseConnection()
        {
            if (Connection.State == ConnectionState.Open || Connection.State == ConnectionState.Broken)
            {
                Connection.Close();
            }
        }
    }
}


  但是不知道上面这种是否安全,我主要担心有人通过反编译或者拦截的方式获取到了我数据库的密码,如果获取到了,这个对我的网站肯定是毁灭性的打击,所以非常注重安全这一块。
  望高人指点。 数据库 C# 安全 --------------------编程问答-------------------- Winform的客户端?
为用户创建一个只读的sql用户。使用他来访问。

或者将字符串加密放在程序或者config中,程序中解密。再混淆下代码,虽然也还是会被破解,但是会稍微难一点。

asp.net会好点。用户没法访问到你的代码。 --------------------编程问答-------------------- 现有的肯定不安全,要保证安全可考虑:
1. 对后台数据库进行安全防御处理,如限制失败登陆次数,禁用sa用户或禁用常用的账户等;如有条件,可考虑使用多种身份鉴别技术。
2. 应用系统做安全性处理,在传输密码时不要采用明文 --------------------编程问答--------------------
引用 1 楼 findcaiyzh 的回复:
Winform的客户端?
为用户创建一个只读的sql用户。使用他来访问。

或者将字符串加密放在程序或者config中,程序中解密。再混淆下代码,虽然也还是会被破解,但是会稍微难一点。

asp.net会好点。用户没法访问到你的代码。


引用 1 楼 findcaiyzh 的回复:
Winform的客户端?
为用户创建一个只读的sql用户。使用他来访问。

或者将字符串加密放在程序或者config中,程序中解密。再混淆下代码,虽然也还是会被破解,但是会稍微难一点。

asp.net会好点。用户没法访问到你的代码。


问题是我是论坛客户端,需要有比如修改密码、修改个人信息的功能 --------------------编程问答-------------------- 数据库连接信息放在一个文件中,运行时读取这个文件 --------------------编程问答-------------------- 连接字符串加密,后台取的时候解密 --------------------编程问答-------------------- winform真能连到你的数据库么?你的数据库居然对公网开放?

还是做webservice 或者remoting吧。 --------------------编程问答-------------------- 楼主的老师该打了,用 DBHelper 跟不用一个样子。 --------------------编程问答--------------------
引用 7 楼 keith_cheung 的回复:
楼主的老师该打了,用 DBHelper 跟不用一个样子。

有没有更好的办法啊,我程序肯定是winform的 --------------------编程问答--------------------
引用 8 楼 u011667915 的回复:
Quote: 引用 7 楼 keith_cheung 的回复:

楼主的老师该打了,用 DBHelper 跟不用一个样子。

有没有更好的办法啊,我程序肯定是winform的

用WebService做数据库的所有操作,winform只是业务处理,这样就安全了 --------------------编程问答-------------------- C# winform 代码是可反编译的,直接连接数据库肯定会暴露连接串,要从架构上考虑使用 WebService 而不直接访问数据库 --------------------编程问答--------------------
引用 10 楼 tcmakebest 的回复:
C# winform 代码是可反编译的,直接连接数据库肯定会暴露连接串,要从架构上考虑使用 WebService 而不直接访问数据库

WebService我不是很了解,我用来做Discuz论坛的登陆等功能的
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,