常见web攻击以及防御
xss攻击:
跨站脚本攻击,攻击者在网页中嵌入恶意代码,当用户打开网页,脚本程序便开始在客户端的浏览器上执行,以盗取客户端cookie,用户名密码,下载执行病毒木马程序,甚至是获取客户端admin权限等。
原理就是用户输入的时候,输入一些可执行代码,例如<input name="username" value="<script>alert('haha')</script>" />
xss之所以会发生,是因为用户输入的数据变成了代码。因此我们需要对用户的输入的数据进行html转义处理,将其中的括号,引号之类的特殊字符进行转义编码。
crsf攻击,跨站请求伪造,攻击者盗用了你的身份,以你的名义向第三方网站发送恶意请求,crsf能做的事情包括利用你的身份发邮件,发短信,进行交易转账等,甚至盗取你的账号。
攻击值做2件事情,即可完成csrf攻击:
1,登陆受信任站点A,并在本地生产cookie;
2,在不登出站点A(清除站点A的cookie)的情况下,访问恶意站点B。这时恶意站点B的某个页面向站点A发送请求,而这个请求会带上浏览器所保存的站点A的cookie,站点A根据请求所带的cookie,识别为某用户合法行为。
csrf防御手段:
1,将cookie设置为httponly
2,表单提交增加隐藏token提交
3,通过http referer来识别请求来源
sql注入攻击,就是通过把sql命令伪装成正常的http请求参数,传递到服务端,欺骗服务器最终执行恶意的sql命令,达到入侵目的,目前涉及的大批量数据泄露的攻击事件,大部分都是通过sql注入来实施的。
防御手段:
1,使用预编译语句
2,使用orm模型
3,避免密码明文存放
3,处理好相关异常,避免错误暴露过多信息
文件上传漏洞
防御手段:验证上传文件类型