Chapter 2 User Authentication, Authorization, and Security(3):保护服务器避免暴力攻击
未经作者同意,任何人不得以“原创”形式发布,也不得已用于商业用途,本人不负责任何法律责任。
前一篇:http://blog.csdn.net/dba_huangzj/article/details/38705965
前言:
暴力攻击(Brute-force attack)是通过几乎所有可能的字符组合尝试破解密码,或者使用一个字典表,包含几乎所有可能的密码来实现密码破解的方法。如果你的密码很简单,那么很快就会被破解。所以,测试密码是非常重要的。
实现:
1. 首先查找SQL 密码没有使用强制密码策略的:
SELECT name, is_disabled FROM sys.sql_logins WHERE is_policy_checked = 0 ORDER BY name;
2. 然后对这些登录使用强密码策略:
ALTER LOGIN Fred WITH CHECK_POLICY = ON,CHECK_EXPIRATION = ON;
这个命令不会更改现有密码,直到密码过期前密码依然有效。可以使用下面函数检查密码到期时间:
SELECT LOGINPROPERTY('Fred', 'DaysUntilExpiration');
3. 你还可以强制在登录时修改密码,但是需要先提供一个协商好的密码并告知使用者,比如下面的代码,就是把Fred这个登录名强制登陆时修改密码,然后你使用了You need to change me ! 这个作为“初始密码”,你需要告知用户,登陆时使用它,登录成功后会提示你修改密码。
ALTER LOGIN Fred WITH PASSWORD = 'You need to change me !' MUST_CHANGE, CHECK_POLICY = ON, CHECK_EXPIRATION = ON;
原文出处:http://blog.csdn.net/dba_huangzj/article/details/38756693
4. 可以使用脚本把所有需要修改的登录名全部显式出来:
SELECT 'ALTER LOGIN ' + QUOTENAME(name) + ' WITH PASSWORD = ''You need to change me 11'' MUST_CHANGE, CHECK_POLICY = ON, CHECK_ EXPIRATION = ON; ' FROM sys.sql_logins WHERE is_policy_checked = 0 ORDER BY name;
如果需要在应用程序中允许用户修改他们的密码,可以参照这篇文章:http://msdn.microsoft.com/zh-cn/library/ms131024.aspx (以编程方式更改密码)
原理:
最好的保护密码避免暴力攻击的方法是使用WIndows密码策略,因为它仅允许你使用强密码。另外暴力攻击密码会在SQL Server的错误日志和Windows的事件日志中留底。
SQL登录的密码或密钥是不存储在任何系统表中,仅存储密码的hash值,也就是说没有办法解密。hash值会存储在系统表中,以便后续登录时与传输的密码使用hash函数生成的hash值匹配。
原文出处:http://blog.csdn.net/dba_huangzj/article/details/38756693
更多:
过期策略的其中一个组成部分是【lockout threshold】,如果要启用对SQL 登录的失败尝试锁定,需要对CHECK_POLICY 选项设为ON,并且把你的帐号锁定策略在Active Directory或者本地配置。
可以使用下面语句查询是否有锁定的帐号:
SELECT name FROM sys.sql_logins WHERE LOGINPROPERTY(name, N'isLocked') = 1 ORDER BY name;
原文出处:http://blog.csdn.net/dba_huangzj/article/details/38756693
下一篇:http://blog.csdn.net/dba_huangzj/article/details/38817915
Chapter 2 User Authentication, Authorization, and Security(3):保护服务器避免暴力攻击的更多相关文章
- Chapter 2 User Authentication, Authorization, and Security(11):在已还原的数据库中修正登录映射错误
原文出处:http://blog.csdn.net/dba_huangzj/article/details/39496517,专题目录:http://blog.csdn.net/dba_huangzj ...
- Chapter 2 User Authentication, Authorization, and Security(10):创建包含数据库
原文出处:http://blog.csdn.net/dba_huangzj/article/details/39473895,专题目录:http://blog.csdn.net/dba_huangzj ...
- Chapter 2 User Authentication, Authorization, and Security(9):防止登录名和用户查看元数据
原文出处:http://blog.csdn.net/dba_huangzj/article/details/39003679,专题目录:http://blog.csdn.net/dba_huangzj ...
- Chapter 2 User Authentication, Authorization, and Security(8):创建映射到登录名的数据库用户
原文出处:http://blog.csdn.net/dba_huangzj/article/details/38944121,专题目录:http://blog.csdn.net/dba_huangzj ...
- Chapter 2 User Authentication, Authorization, and Security(4):限制SA帐户管理权限
原版的:http://blog.csdn.net/dba_huangzj/article/details/38817915,专题文件夹:http://blog.csdn.net/dba_huangzj ...
- Chapter 2 User Authentication, Authorization, and Security(3):保server避免暴力袭击
原版的:http://blog.csdn.net/dba_huangzj/article/details/38756693,专题文件夹:http://blog.csdn.net/dba_huangzj ...
- Chapter 2 User Authentication, Authorization, and Security(7):创建和使用用户自定义服务器角色
原文出处:http://blog.csdn.net/dba_huangzj/article/details/38895357,专题目录:http://blog.csdn.net/dba_huangzj ...
- Chapter 2 User Authentication, Authorization, and Security(6):服务器权限授予粒度
原文出处:http://blog.csdn.net/dba_huangzj/article/details/38867489,专题目录:http://blog.csdn.net/dba_huangzj ...
- Chapter 2 User Authentication, Authorization, and Security(5):使用固定服务器角色
原文出处:http://blog.csdn.net/dba_huangzj/article/details/38844999,专题目录:http://blog.csdn.net/dba_huangzj ...
- Chapter 2 User Authentication, Authorization, and Security(4):限制SA帐号的管理权限
原文出处:http://blog.csdn.net/dba_huangzj/article/details/38817915,专题目录:http://blog.csdn.net/dba_huangzj ...
随机推荐
- ubuntu下安装 python 常用软件
1.用于科学计算的常用包: sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-noteb ...
- truncated、delete和drop的异同点
相同点 truncate和不带where子句的delete, 以及drop都会删除表内的数据. 不同点: 1.truncate和 delete只删除数据不删除表的结构(定义) drop语句将删除表的结 ...
- Docker 自定义网桥
除了默认的 docker0 网桥,用户也可以指定网桥来连接各个容器. 在启动 Docker 服务的时候,使用 -b BRIDGE或--bridge=BRIDGE 来指定使用的网桥. 如果服务已经运行, ...
- Python3 SMTP发送邮件
SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式. python的smtplib提供了一 ...
- 学习笔记:Zookeeper 应用案例(上下线动态感知)
1.Zookeeper 应用案例(上下线动态感知) 8.1 案例1--服务器上下线动态感知 8.1.1 需求描述 某分布式系统中,主节点可以有多台,可以动态上下线 任意一台客户端都能实时感知到主节点服 ...
- 操作系统内核Hack:(二)底层编程基础
操作系统内核Hack:(二)底层编程基础 在<操作系统内核Hack:(一)实验环境搭建>中,我们看到了一个迷你操作系统引导程序.尽管只有不到二十行,然而要完全看懂还是需要不少底层软硬件知识 ...
- 计算机网络之文件传送协议FTP
FTP 文件传送协议FTP(File Transfer Protocol)是因特网上使用最广泛的文件传送协议. FTP 提供交互式的访问,允许客户指明文件的类型与格式,并允许文件具有存取权限.FTP ...
- Android简易实战教程--第四十七话《使用OKhttp回调方式获取网络信息》
在之前的小案例中写过一篇使用HttpUrlConnection获取网络数据的例子.在OKhttp盛行的时代,当然要学会怎么使用它,本篇就对其基本使用做一个介绍,然后再使用它的接口回调的方式获取相同的数 ...
- 剑指Offer——好未来视频面知识点储备+面后总结
剑指Offer--好未来视频面知识点储备+面后总结 情景介绍 时间:2016.10.12 13:00- 地点:宿舍 事件:好未来视频面 知识点储备 数据结构 单链表反转 public class Li ...
- Afianl加载网络图片(续)
上一篇已经讲了如何利用Afianl加载网络图片和下载文件,这篇文章将继续讲解使用Afinal加载网络图片的使用,主要结合listview的使用: 看效果图: listview在滑动过程中没用明显卡顿, ...