由于篇幅有限,D妹就来讲下与DNS比较相关的DDoS攻击 —— DNS洪水攻击、DNS放大攻击。
DNS洪水攻击(DNS Flood Attack),有点特别,它不是攻击目标服务器,而是攻击DNS服务器。
黑客控制“肉鸡”对DNS服务器发起大量的解析请求,将DNS服务器的资源耗尽,用户输入域名时就无法解析出IP地址,最终导致应用程序/网站无法访问。
由于DNS的运作原理,黑客用某些手段让DNS尽可能大响应,因此DNS服务器的应答数据包是请求包的数十倍或数百倍,导致目标服务器容易被大量的响应淹没,从而资源耗尽,正常用户无法访问。这招可谓“借刀杀人”,四两拨千斤。
这些被利用的DNS服务器一般是开放的DNS服务器,站长们还不好做点啥,要根治还是需要提供DNS服务器的互联网服务提供商(ISP)过滤伪造IP的流量,避免被利用。
■ 如何应对DDoS攻击?
1、针对DNS洪水攻击,可以使用DNS安全防护服务,例如我们DNSPod的DNS安全防护套餐,最高可以承受1亿QPS,也就是每秒1亿次查询请求,DNS服务器即使遭到攻击也很难耗尽资源。(详情也可以查看公众号第二篇推文)
针对其他类型的DDoS攻击,目前比较主流的应对方法是在自己的终端加强防护:
2、在自己的服务器使用DDoS防护服务,例如腾讯云轻量应用服务器Lighthouse就提供了DDoS高防保险,当然你也可以选购更高规格的DDoS防护套餐。
■ SQL注入攻击是什么?
SQL注入(SQL Injection)是利用程序员编写应用程序/网站时忽略的网络安全漏洞进行攻击。
如果一个应用程序/网站需要接受客户端用户输入的内容或传递的参数,且前端数据传到后端时没有做严格校验,这个内容或参数被当作SQL语句的一部分执行,从而导致数据库数据泄露、数据篡改、数据丢失等。
举个简单的例子,你的网站是需要用户登录的,用户输入账号与密码后,服务器就会向后端的数据库查询用户数据,这时就会用到SQL语言。
SQL语言(图源:google)
如果黑客在登录的时候不好好输入账号与密码,而是输入恶意SQL代码(如下图例子所示),那么后端就不会正常查询数据库,执行出来的SQL语句的意思就变味了。
当正常用户输入账号密码:
后端SQL语句为:从用户表单里选取用户名为dmei、密码为dns666的用户
SELECT * FROM users WHERE username = 'dmei' AND password = 'dns666'
当黑客输入带有恶意SQL代码的账号名:
后端SQL语句为:从用户表里选取用户名为dmei的用户即可。
(在MySQL里,– 后面的内容被认为是注释,不会作为代码执行,黑客就能绕过密码检查。)
SELECT * FROM users WHERE username = 'dmei' --' AND password = '123456'
这样,黑客即使不知道密码也可以直接登录。有的黑客会导出数据库里的所有用户数据,用于牟利或者其他非法用途,有的会篡改数据库,甚至有的会删库跑路。
■ 如何应对SQL注入攻击?
1、后端程序员在编写应用程序/网站的时候设置检测过滤,对用户的输入进行校验,过滤不正常的输入;同时也可以通过参数化查询的方法,将查询与数据分离,确保用户输入的数据不会被解释为SQL代码。
2、此外,还可以使用Web应用防火墙(WAF)、定期更新和限制数据库用户权限等措施来加强对数据库的防护。
原创文章,作者:guozi,如若转载,请注明出处:https://www.sudun.com/ask/81960.html