笔记-Java开发必须掌握的8种网站攻防技术

精选30+云产品,助力企业轻松上云!>>> 笔记-Java开发必须掌握的8种网站攻防技术

原文地址:https://mp.weixin.qq.com/s/QIqGGFJd8bcrHfJoSiwViA

XSS攻击

XSS攻击的全称是跨站脚本攻击(Cross Site Scripting),它指的是攻击者在网页中嵌入恶意脚本程序, 当用户打开该网页时,脚本程序便开始在客户端的浏览器上执行,以盗取客户端cookie、 盗取用户名密码、下载执行病毒木马程序等等。

为了不和层叠样式表 (Cascading Style Sheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。

XSS的防御

我们需要对用户输入的数据进行HTML转义处理。

 

 

如今很多开源的开发框架本身默认就提供HTML代码转义的功能,如流行的jstl、Struts等等,不需要开发人员再进行过多的开发。使用jstl标签进行HTML转义,将变量输出。

CSRF攻击

CSRF攻击的全称是跨站请求伪造(cross site request forgery), 是一种对网站的恶意利用。

攻击者盗用了你的身份,以你的名义向第三方网站发送恶意请求。CRSF能做的事情包括利用你的身份发邮件、发短信、进行交易转账等等,甚至盗取你的账号。

尽管听起来跟XSS跨站脚本攻击有点相似,但事实上CSRF与XSS差别很大,XSS利用的是站点内的信任用户,而CSRF则是通过伪装来自受信任用户的请求来利用受信任的网站。

笔记-Java开发必须掌握的8种网站攻防技术

CSRF的防御

cookie设置为HttpOnly、增加token、通过Referer识别。

SQL注入攻击

就是通过把SQL命令伪装成正常的请求参数,传递到服务端,欺骗服务器最终执行恶意的SQL命令,达到入侵目的。

SQL注入原理

将输入参数作为SQL语句语法的一部分,而不仅仅是SQL参数。

SQL注入的防御

使用预编译语句PreparedStatement、使用ORM框架、避免密码明文存放、处理好相应的异常。

上传文件漏洞

文件名后缀、文件大小、文件重命名、根据起始字节判断文件类型(魔数)。

DDoS攻击

DDoS(Distributed Denial of Service),即分布式拒绝服务攻击。

DNS Query Flood

向被攻击的服务器发送海量的域名解析请求,通常,请求解析的域名是随机生成,大部分根本就不存在,并且通过伪造端口和客户端IP,防止查询请求被ACL过滤。

CC攻击

CC(Challenge Collapsar)攻击属于DDoS的一种,是基于应用层HTTP协议发起的DDos攻击,也被称为HTTP Flood。

攻击者通过控制的大量“肉鸡”或者利用从互联网上搜寻的大量匿名的HTTP代理,模拟正常用户给网站发起请求直到该网站拒绝服务为止。

另,GitHub遭受的DDoS攻击到底是个什么鬼?https://mp.weixin.qq.com/s?__biz=MzI3NzE0NjcwMg==&mid=2650120826&idx=1&sn=bc7dc7bd910ae019e60e14b90ce2842b&chksm=f36bbf5bc41c364d0e20263d27c8c31899385d856067bf12ee97536e770abaa08df5c41bdd6d&scene=21#wechat_redirect