web前后端开发不得不聊的安全问题

web项目安全大致可以分为两个方面:
1.私密性:资料不被非法获取和利用,只有授权才可以利用。
2.可靠性:资料不丢失不损坏不被篡改。
web安全大概有这么几个层面:
1.代码层。2.架构层面。3.运维层面。
开发者需要的安全问题比如:用户身份被盗用,用户密码泄露,用户资料被盗取,网站数据库泄露等。。。
web安全的重要性:直面用户,挑战严峻;网站和用户安全是生命线;安全事故威胁企业生产、口碑甚至生存;作为开发者应该掌握基础的安全知识,严肃对待这个问题。
学习内容:
跨站脚本攻击XSS,跨站请求伪造攻击CSRF,前端Cookies安全性,点击劫持攻击,传输过程安全问题,用户密码安全问题,SQL注入攻击,信息泄露和社会工程学,其他安全问题。
那么我们需要掌握哪些知识,原生JavaScript,少量后端语言基础(Node),HTTP基础知识(含Cookies/Session),web后端基础知识(HTTP/SQL)。
XSS(Cross Site Scripting)跨站脚本攻击:


Scripting能干啥?
获取页面数据,获取Cookies,劫持前端逻辑,发送请求等。
偷取网站任意数据,偷取用户资料,偷取用户密码和登陆状态,欺骗用户。
XSS攻击分类:
反射型:url参数直接注入;攻击者将代码通过url带过来,页面直接显示这串代码。
存储型:存储到DB读取时注入;xss攻击代码会保存到网站数据中,在用户访问到这条记录,会被从数据库中读取出来显示在页面中。
反射型攻击略小于存储型攻击,因为携带在url中更容易被用户发现。
XSS攻击注入点:
HTML节点内容,HTML属性,JavaScript代码,富文本。
1)HTML节点内容


2)HTML属性


3)JavaScript代码

4)富文本
富文本得保留HTML,HTML有XSS攻击风险。
浏览器自带防御

防御范围:参数出现在HTML内容或属性拦截,在javascript出现中的不拦截,所以说浏览器自带防御非常有限的。
浏览器对XSS攻击防御是有限的,如何针对上述四种XSS攻击进行防御呢?
1.比如事例中的评论,我们只希望用户输入文字,而不是输入html标签。这种情况我们需要对内容进行转义,那转义内容html中的标记(尖括号)

对字符串进行转义
2.JavaScript代码对 进行转义
3.富文本
1)黑名单:在输入的时候进行过滤(正则)

你可能感兴趣的:(web前后端开发不得不聊的安全问题)