常见攻击防御方法

2022/9/20 网络安全

# SQL 注入

使用参数化查询接口或在代码级对带入SQL语句中的外部参数进行转义或过滤;

对于整数,判断变量是否符合[0-9]的值;其他限定值,也可以进行合法性校验;

对于字符串,对SQL语句特殊字符进行转义(单引号转成两个单引号,双引号转成两个双引号)。

保护网站不受注入攻击危害,主要落实到代码库构建上。比如说,缓解SQL注入风险的首选方法就是始终尽量采用参数化语句。更进一步,可以考虑使用第三方身份验证工作流来外包你的数据库防护。

继承HttpServletRequestWrapper,然后重写(@Override)getParameter()、getHeader()等等方法。

文件上传不走HttpServletRequestWrapper,需要继承CommonsMultipartResolver,重写方法。

# XSS

设置Web应用防火墙(WAF)可以保护网站不受跨站脚本攻击危害。WAF就像个过滤器,能够识别并阻止对网站的恶意请求。购买网站托管服务的时候,Web托管公司通常已经为你的网站部署了WAF,但你自己仍然可以再设一个。

# 模糊测试

对抗模糊攻击的最佳方法就是保持更新安全设置和其他应用,尤其是在安全补丁发布后不更新就会遭遇恶意黑客利用漏洞的情况下。

# 零日攻击

保护自己和自身网站不受零日攻击影响最简便的方法,就是在新版本发布后及时更新你的软件。

# 路径(目录)遍历

网站能否抵御路径遍历攻击取决于你的输入净化程度。这意味着保证用户输入安全,并且不能从你的服务器恢复出用户输入内容。最直观的建议就是打造你的代码库,这样用户的任何信息都不会传输到文件系统API。即使这条路走不通,也有其他技术解决方案可用。

# DDoS

保护网站免遭DDoS攻击侵害一般要从几个方面着手。首先,需通过内容分发网络(CDN)、负载均衡器和可扩展资源缓解高峰流量。其次,需部署Web应用防火墙(WAF),防止DDoS攻击隐蔽注入攻击或跨站脚本等其他网络攻击方法。

# 中间人攻击

在网站上安装安全套接字层(SSL)就能缓解中间人攻击风险。SSL证书加密各方间传输的信息,攻击者即使拦截到了也无法轻易破解。现代托管提供商通常已经在托管服务包中配置了SSL证书。

# 暴力破解

保护登录信息的最佳办法,是创建强密码,或者使用双因子身份验证(2FA)。作为网站拥有者,你可以要求用户同时设置强密码和2FA,以便缓解网络罪犯猜出密码的风险。

# 使用未知代码或第三方代码

想要避免围绕潜在数据泄露的风险,请让你的开发人员分析并审计代码的有效性。此外,确保所用插件(尤其是WordPress插件)及时更新,并定期接收安全补丁:研究显示,超过1.7万个WordPress插件(约占研究当时采样数量的47%)两年内没有更新。

# 网络钓鱼

缓解网络钓鱼骗局风险最有效的办法,是培训员工和自身,增强对此类欺诈的辨识能力。保持警惕,总是检查发送者电子邮件地址是否合法,邮件内容是否古怪,请求是否不合常理。另外,谨记:天上不会掉馅饼,事出反常必有妖。

# CSRF

验证码

Refer Check(添加Referer识别)

Anti CSRF Token(添加token验证)

Last Updated: 2023/1/12 04:11:40