XSS:(cross-site script)跨站脚本
XSS是一种网站应用程序的安全漏洞攻击。恶意用户将代码注入到网页上,然后别的用户在观看网页时受到影响。
其通常指的是恶意用户利用网页开发时遗留的漏洞,使用一种奇妙的方法将恶意代码放入网页中,然后当用户去访问的时候,不由自主地进行加载和执行恶意用户制作的脚本。
其中过程大致如下
1 攻击者发现网站编写网页的漏洞
2 攻击者将恶意指令放入网页中,并上传到服务器成功(就是服务器对上传的内容没有进行过滤)
3 其他用户访问服务器种被恶意植入指令的网页,然后暗地中恶意指令执行
如何防护?
如下
1.过滤掉特殊字符。在node中可以使用node-validator
2.在后台字符串模板中,不要直接输出content,例如.net中 <% content %>
3.前端尽量不使用html()
方法或者拼接字符串$p=$('<p>'+conent+'</p>') 2.使用http指定头类型,
content-type=text/javascript;charset=utf-8`
3.对于用户而言:可以在网站设置不加载js脚本。但是考虑到现在很多网站都是需要js脚本去运行相关的功能。
总结:还是服务端做好点吧,毕竟你是提供服务给用户的。
reference reference1👈
CSRF:(cross site request forgery)
It's renamed XSRF(跨站请求伪装)
其是一种要挟用户在已经登录的web程序中执行非本意的操作的命令。
具体过程
1.恶意用户通过操纵用户的浏览器去访问一些以前被认证过的服务器并进行某些恶意操作。
2.而由于服务器被认证过,所以服务器会认为是真正的用户在执行操作。
本质:其是欺骗用户的浏览器,以用户的名义去执行恶意操作。
如何防护
如下
1.检查referer字段:这个字段可以表面请求来自哪个地址
2.服务器验证,加上token。这样在对比token过程中,不一致,服务器就禁止这个请求。
3.尽量少使用get请求,毕竟明文
由于做过一些后端,也总结一下自己了解到的后端认证方式吧
常见的认证方式
1.username+password ->http basic authentication
2.cookie
3.token -->Now ,the JWT token is hot.
4.signature
5.one-time password
reference translation
OAuth 2.0
It's a industry-standard protocol of authentication.It allows some third-website saving your website user's some information without using use's password.