web前端开发中的安全性问题
2018-03-11 17:15
447 查看
跨站脚本攻击(XSS攻击)
恶意攻击者往Web页面里注入恶意Script代码,用户浏览这些网页时,就会执行其中的恶意代码,可对用户进行盗取cookie信息、会话劫持等各种攻击.解决方案:
1. 输入过滤,输入符合预期的格式的数据,比如图片上传,设置accept属性,或者只能输入字母或者日期格式等,同时后台对前台输入的数据也应该做编码或转义来防范XSS攻击。
2.对所有要动态输出到页面的内容,进行相关的编码和转义.主要有HTML字符过滤和转义,JS脚本转义过滤.url转义过滤.。
3.CSP,原理其实就是白名单机制,开发者明确告诉客户端(浏览器)哪些资源可以加载并执行,我们只需要提供配置,其他的工作由客户端(浏览器)来完成。通过
<meta>标签开启
<meta http-equiv="Content-Security-Policy" content="配置项" >
配置项:
default-src:用来设置每个选项的默认值 script-src:外部脚本 style-src:样式表 img-src:图像 media-src:媒体文件(音频和视频) font-src:字体文件 object-src:插件(比如 Flash) child-src:框架 frame-ancestors:嵌入的外部资源(比如<frame>、<iframe>、<embed>和<applet>) connect-src:HTTP 连接(通过 XHR、WebSockets、EventSource等) worker-src:worker脚本 manifest-src:manifest 文件 block-all-mixed-content:HTTPS 网页不得加载 HTTP 资源(浏览器已经默认开启) upgrade-insecure-requests:自动将网页上所有加载外部资源的 HTTP 链接换成 HTTPS 协议 plugin-types:限制可以使用的插件格式 sandbox:浏览器行为的限制,比如不能有弹出窗口等。 report-uri:有时,我们不仅希望浏览器帮我们防止XSS的攻击,还希望将该行为上报到给定的网址,该选项用来配置上报的地址
例子
<meta http-equiv="Content-Security-Policy" content="script-src 'self'; object-src 'none'; style-src cdn.example.org third-party.org; child-src https:"> 脚本:只信任当前域名 <object> 标签:不信任任何URL,即不加载任何资源 样式表:只信任 cdn.example.org 和 third-party.org 框架(frame):必须使用HTTPS协议加载 其他资源:没有限制
跨站请求伪造(CSRF攻击)
CSRF攻击过程是受害者用户登录网站A,输入个人信息,在本地保存服务器生成的cookie。然后在A网站点击由攻击者构建一条恶意链接跳转到B网站,然后B网站携带着的用户cookie信息去访问B网站.让A网站造成是用户自己访问的假相,从而来进行一些列的操作,常见的就是交易转账.
解决方案:
1.在关键业务点设置验证码验证。
2.在HTTP 请求中以参数的形式加入一个随机产生的token,并在服务器建立一个拦截器来验证这个token。服务器读取浏览器当前域cookie中这个token值,会进行校验该请求当中的token和cookie当中的token值是否都存在且相等,才认为这是合法的请求。否则认为这次请求是违法的,拒绝该次服务。
3.通过检查一下两个 header:Origin Header、Referer Header
相关文章推荐
- web大前端开发中一些常见的安全性问题
- WEB前端开发人员须知的常见浏览器兼容问题及解决技巧
- [WEB前端开发]-复选框操作经验-解决无法获取所有选中值的问题
- web 开发安全性问题
- WEB前端开发人员须知的常见浏览器兼容问题及解决技巧
- WEB前端开发人员须知的常见浏览器兼容问题及解决技巧
- 使用WebStorm开发web前端 网页中文乱码问题的解决方案
- web前端开发中浏览器兼容问题(五)
- web前端开发问题
- 道客web前端开发实习生,电话面试问题
- web前端开发中浏览器兼容问题(二)
- web前端开发在IE7下的一些问题汇总
- web前端开发中浏览器兼容问题(六)
- WEB前端开发人员须知的常见浏览器兼容问题及解决技巧
- web前端开发中浏览器兼容问题(六)
- WEB前端开发人员须知的常见浏览器兼容问题及解决技巧
- WEB前端开发人员须知的常见浏览器兼容问题及解决技巧
- web前端开发中浏览器兼容问题(一)
- web前端开发的你必须要知道的“级联”问题
- 学习web前端开发基础,入门要注意哪些问题