网络攻击
一些网络攻击
DNS攻击
域名劫持:
一个例子:我输入一个域名比如谷歌,但是进入了百度,或者无法访问。
黑客通过控制域名管理密码和域名管理邮箱,然后将该域名的NS记录指向黑客控制的DNS服务器,然后通过在DNS服务器上添加相应域名记录,从而其他人访问域名时,当问黑客指向的内容。
缓存投毒
利用控制DNS缓存服务器,把原本准备访问某网站的用户在不知不觉中带到黑客指向的其他网站上。
当用户权威域名服务器同时可以被昂做缓存服务器使用,黑客可以实现缓存投毒,将错误的域名记录在缓存中。
DNS欺骗
DNS欺骗就是攻击者冒充域名服务器。
如果可以冒充域名服务器,然后把查询的IP地址设为攻击者的IP地址,这样的话,用户上网就只能看到攻击者的主页,而不是用户想要取得的网站的主页了,这就是DNS欺骗的基本原理。DNS欺骗其实并不是真的“黑掉”了对方的网站,而是冒名顶替、招摇撞骗罢了。
SQL注入攻击
攻击者在HTTP请求中注入SQL代码,服务器使用参数构建数据库sql命令时,恶意SQL被一起构造,并在数据库中执行。
SQL注入有很多方式,说一种比较简单的:
在账号登陆的时候:我们会输入账号:123456,密码:654321,然后数据库就会去找账号:123456,密码:654321的信息,但是如果你输入的是账号:123456,密码:#,会怎么样呢?数据库就只会去找账号:123456的账号直接登录,从而实现无密码登录。
CSRF攻击
跨站点请求伪造,以合法的用户的身份进行非法请求。攻击者盗用你的身份,以你的名义发送恶意请求。
防范措施:
- 安全框架,例如Spring Security。
- token机制。在HTTP请求中进行token验证,如果请求中没有token或者token内容不正确,则认为CSRF攻击而拒绝该请求。
- 验证码。通常情况下,验证码能够很好的遏制CSRF攻击,但是很多情况下,出于用户体验考虑,验证码只能作为一种辅助手段,而不是最主要的解决方案。
- referer识别。在HTTP Header中有一个字段Referer,它记录了HTTP请求的来源地址。如果Referer是其他网站,就有可能是CSRF攻击,则拒绝该请求。但是,服务器并非都能取到Referer。很多用户出于隐私保护的考虑,限制了Referer的发送。在某些情况下,浏览器也不会发送Referer,例如HTTPS跳转到HTTP。 1)验证请求来源地址; 2)关键操作添加验证码; 3)在请求地址添加 token 并验证。