- 对网络知识的掌握层度
熟悉:了解http和TCP,能调试http的前后端接口,解决跨越问题
掌握:具备网络和协议知识和常用的网络代码攻击方式
精通:精通加密解密,HTTPS等配置和应用,能识别并防止大多数常见的代码安全问题
综合应用:在系统和开发中避免大多数的安全问题,能有效修改扫描出的问题
参考: https://blog.csdn.net/xy3233/article/details/106433665
https://blog.csdn.net/Star_CSU/article/details/90703526
https://zhuanlan.zhihu.com/p/66484450
https://segmentfault.com/a/1190000017867312
https://blog.csdn.net/loongshawn/article/details/88047373
跨域问题的原因:
浏览器同源策略(会限制来自不同源的文档和脚本对当前源的文档数据的读取或设置某些属性,是用于隔离潜在恶意文件的重要安全机制。)
如何确定是同一个源:
协议, 域名, 端口
跨域的目的:
1, 前后端分离时,前端为了获取后端数据而跨域
2, 为不同页面下的前端通讯而跨域
跨域方案:
Cross Origin Resource Share (CORS)
通过增加一系列请求头和响应头,规范安全地进行跨站数据传输
JSONP 跨域
jsonp的原理就是借助HTML中的
nginx 反向代理实现跨域
思路: 既然浏览器有同源策略限制,那我们把前端项目和前端要请求的api接口地址放在同源下不就可以了?再结合web服务器提供的反向代理,便可以在前端和后端都不做配置的情况下解决跨域问题。
常见的网络攻击和防御:
XSS: 原理即在网页中嵌入恶意脚本,当用户打开网页时,恶意脚本便开始在用户浏览器上执行,以盗取客户端cookie、用户名、密码,甚至下载木马程式
其实攻击的形式还有很多,比如将脚本伪装进URL,然后将URL进行URLEncode编码,当用户点击链接后,脚本就会被执行。
xss防范: 对用户输入的数据进行HTML转义处理,将输出的“尖括号”、“单引号”、“引号”之类的特色符号进行转义。
CSRF
通过盗用用户的身份信息,以你的名义向第三方网站发起恶意请求,若转账、盗取账号、发信息、邮件。
CSRF攻击防御:
① 将cookie设置为HttpOnly
CSRF攻击很大程度是利用了浏览器的cookie,为了防止站内XSS漏洞,cookie设置HttpOnly属性,
JS脚本就无法读取到cookie中的信息,避免攻击者伪造cookie的情况出现。
② 增加token
CSRF攻击之所以成功,主要是攻击中伪造了用户请求,而用户请求的验证信息都在cookie中,
攻击者就可以利用cookie伪造请求通过安全验证。
因此抵御CSRF攻击的关键就是,在请求中放入攻击者不能伪造的信息,并且信息不在cookie中。
③ 通过Referer识别
Http头中有一个字段Referer,它记录了Http请求来源地址。
但是注意不要把Rerferer用在身份验证或者其他非常重要的检查上,因为Rerferer非常容易在客户端被改变。
Sql注入攻击:
防范措施: 使用 # 代替 $
“#” 是将传入的值当做字符串的形式
“$” 相当于拼接
文件上传漏洞
将可执行文件上传到了服务器,恶意程序就会执行
为了避免恶意文件上传,需要对上传文件类型进行白名单校验,并限制文件大小,上传文件进行重命名。
DDOS攻击
SYN 洪水攻击
伪造大量无效IP,不断与目标主机建立TCP链接,接,导致服务器维护了一个非常大的链接等待列表,占用大量系统资源,直至新链接无法建立。
DNS query flood
攻击者伪造大量无效域名,发送给目标服务器解析,这些域名均为无效域名,导致DNS服务器耗用大量资源去处理这些无效域名,造成DNS解析域名超时,达到攻击目的。
HTTPS(SSL\TLS): 参考:https://zhuanlan.zhihu.com/p/43789231