XSS攻击即跨站点脚本攻击(Cross Site Script),指黑客通过篡改网页,注入恶意HTML脚本,在用户浏览网页时,控制用户浏览器进行恶意操作的一种攻击方式。
1.1 反射型
攻击者诱使用户点击一个嵌入恶意脚本的链接,达到攻击的目的
1.2 持久型
黑客提交含有恶意脚本的请求,保存在被攻击的Web站点的数据库中,用户浏览网页时,恶意脚本被包含在正常页面中,达到攻击的目的
1.3消毒
XSS攻击者一般都是通过在请求中嵌入恶意脚本达到攻击的目的,这些脚本是一般用户输入中不使用的,如果进行过滤和消毒处理,即对某些html危险字符转义就可以让绝大部分攻击失败
1.4HttpOnly
浏览器禁止页面JavaScript访问带有HttpOnly属性的Cookie,可以防止Cookie中的数据被窃取
2.1 SQL注入攻击
攻击者在HTTP请求中注入恶意SQL命令(drop table users;),服务器用请求参数构造数据库SQL命令时,恶意SQL被一起构造,并在数据库中执行。
2.2 OS注入攻击
2.3 消毒
通过正则匹配,过滤请求数据中可能注入的SQL
2.4 参数绑定
使用预编译手段,绑定参数是最好的防SQL注入方法。目前许多数据访问层框架,如IBatis,Hibernate等,都实现SQL预编译和参数绑定,攻击者的恶意SQL会被当做SQL的参数,而不是SQL命令被执行。
攻击者通过跨站请求,以合法用户的身份进行非法操作,如转账交易、发表评论等;
CSRF的主要手法是利用跨站请求,在用户不知情的情况下,以用户的身份伪造请求。其核心是利用了浏览器Cookie或服务器Session策略,盗取用户身份。
3.1 Token验证
通过在请求参数中增加随机数的办法来阻止攻击者获得所有请求参数:在页面表单中增加一个随机数作为Token,每次响应页面的Token都不相同,从正常页面提交的请求会包含该Token值,而伪造的请求无法获得该值,服务器检查请求参数中Token的值是否存在并且正确以确定请求提交者是否合法
3.2 验证码
验证码则更加简单有效;
请求提交时,需要用户输入验证码,以避免在用户不知情的情况下被攻击者伪造请求。但是输入验证码是一个糟糕的用户体验,所以请在必要时使用,
3.3 Referer check
HTTP请求头的Referer域中记录着请求来源,可通过检查请求来源,验证其是否合法。
因篇幅问题不能全部显示,请点此查看更多更全内容