sqlserver 字符串中添加单引号_快速解决SQL Server传输SQL明文的问题

默认情况下SQL Server的客户端与服务端是使用SQL明文传输数据的。 此时攻击者可以通过修改SQL语句等方式,获取系统权限,威胁数据和系统安全。

使用抓包工具Wireshark可抓取到SQL语句的明文,见下图。

5a1a944bf84d18d2fce1d2f3f780c5ea.png

   有两个比较简便的方法来实现SQL Server客户端与服务端的数据加密传输。

   方法一:更改SQL Server服务端的配置,实现所有客户端与服务端的数据加密传输。

其实解决这个问题很简单,只需要更改SQL Server服务端的一个配置项即可实现客户端与服务端间数据的加密传输,本文以 SQL Server 2008 R2为例。

1.点击开始菜单中Microsoft SQL Server 2008 R2的配置工具文件夹,点击SQL Server配置管理器。

c4b13d695b8153b27077a95f7f4195e6.png

     2.在打开的窗口中点击SQL Server网络配置,找到想要实现加密传输的数据库实例,右键点击属性菜单项。

de6e5f2509c3ead34ce1969fe888eb91.png

     3.在属性窗口中将强制加密项对应的值由“否”更改为“是”,即启用安全传输层协议TLS,点击下方的确定按钮,提示重启数据库服务,以使更改生效。

74546d4f402fba19888abf2654755189.png

960127472389713f034e40064dd1eb6a.png

    4.在计算机的控制面板中,依次点击管理工具、服务,找到对应的数据库服务,右键点击重新启动菜单项,等待数据库服务完成重启即可。

b51cfa3ab7f36e752cda386c37bd23ca.png

    5.数据库服务重启成功后,再次使用Wireshark抓取数据,可见SQL语句已实现加密传输。

cc1b170dcb26047e6f6d81a5eb73a5da.png

方法二:更改SQL Server客户端的连接字符串,实现当前客户端与服务端的数据加密传输。

在数据库客户端的连接字符串中添加两个属性:

Encrypt=True//开启加密传输,启用安全传输层协议TLS

TrustServerCertificate=True//使用 TLS 加密通信层时,自动信任服务器传输层安全性 (TLS)证书

  ;Encrypt=True; TrustServerCertificate=True" />

更改连接字符串后,使用Wireshark抓取数据,如上图所示,SQL语句已实现加密传输。


版权声明:本文为weixin_39866874原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。