SSRF防御
XSS防御
CSRF防御
路径遍历防御
目的
- 防止例如业务接口http://test.com?url= 被攻击者利用进行任意本地文件遍历等:http://test.com?url=/etc/passwd http://test.com?url=../../../../../../../etc/passwd
URL编码
URL编码:%+字符的ASCII码的十六进制,比如"\"的ASCII码为92,92的十六进制是5c,那么对"\"编码后的结果就是%5c
解决方案
攻击者通常会对url进行编码,例如:
. ----> %2e
/ ----> %2f
\ ----> %5c
- 彻底的url解码:循环检测url路径字符串中是否有%,如果有则解码,直到没有%为止,防止对%多次编码绕过,直到得到彻底url解码后无%的路径
- 判断解码后的url是否以/开头,是的话返回错误;判断解码后的url是否含有../,有的话范湖错误
SQL注入防御
文件上传漏洞防御
文件上传漏洞是指用户上传了一个可执行的文件到服务器并执行,这里的文件可以是病毒,恶意脚本等
解决方案
首先对于文件名要防止路径穿越,这里可以参考路径遍历防御
对于后缀,我们要限制能够上传的文件类型;设置一个白名单,不在白名单中的文件类型直接过滤
不能简单的根据后缀名来判断一个文件的类型,我们需要通过文件头来判断;每一种类型的文件对应着一个文件头,我们可以更加文件头的字节码文件来判断文件类型
补充-DDOS攻击
举个栗子:现在有一家店生意很好,作为他的竞争者你雇佣了一批"闹事者",这群闹事者在店里乱逛,就是不买东西,导致一些真正要买东西的顾客连店门都进不了
DDOS:分布式拒绝服务,利用大量伪造的请求来占用过多的服务资源从而使得合法用户的请求得不到响应