本文已参与「新人创作礼」活动,一起开启掘金创作之路。
XSS攻击--跨站脚本攻击;
是什么:攻击者向有XSS漏洞的网站中输入恶意的HTML代码,当其浏览器浏览该网站时,这段HTML代码会自动执行。(理论上所有可以输入的地方没有对输入的数据进行处理,都会存在XSS攻击);
危害: 盗取用户cookie,破坏页面结构,重定向到其他网站;
防御:对用户输入的信息进行处理,只允许合法的值;
CSRF攻击--跨站请求伪造
是什么:攻击者盗用了你的身份,以你的名义发送恶意请求;
危害:以你的名义发送邮件,盗取帐号,购买东西等;
原理: 首先个登录某网站,并在本地生成cookie;然后在不登出的情况下,访问危害网站。
防御: 可以从服务端和客户端两方面进行考虑。但是在服务端的效果好。
a. 随机的cookie
b. 添加验证码
c. 不同的表单包含一个不同的伪随机值
注意:如果用户在一个站点上同时打开了两个不同的表单。CSRF保护措施不应该影响到他对任何表单的提交
DDOS攻击(分布式拒绝服务攻击)
是什么:简单来说就是ifasong大量的请求使服务器瘫痪。
被攻击的原因:服务器带宽不足,不能挡住攻击者的攻击流量。
防御:a. 最直接的方法就是增加带宽;
b. 使用硬件防火墙;
c. 优化资源使用提高 web server 的负载能力
SQL注入
是什么:通过sql命令伪装成正常的http请求参数,传递到服务端,服务器执行sql命令造成对数据库进行攻击
原理:sql语句伪造参数,然后在对参数机型拼接后形成破坏性的sql语句,最后导致数据库收到攻击
防御:a. 对参数进行转义
b. 数据库中的密码不应明文存储,可以对密码使用md5进行加密。
c. 使用占位符对sql语句进行预编译处理,比如jdbc里使用PreparStatement代替Statement