前端开发安全编码规范

 

一、Cookie使用

禁止「MUST NOT」给 baidu.com 域下设置 cookie,设置 cookie 请指定为当前域名。javascript

禁止「MUST NOT」给页面设置 document.domain = "baidu.com"java

2隐私数据

禁止「MUST NOT」在页面中出现 ip 相关信息 ,若有提交 ip 给 server 端的需求,请修改成其它形式,好比:由 rd 在 server 端间接获取 ip 信息。json

用户的我的隐私信息:姓名、邮箱、电话、QQ 等,必须「MUST」遵照最小化原则,使用不到信息 禁止「MUST NOT」 出如今页面代码中,获取这些数据的 json 接口也必 「MUST」须通过权限控制。后端



三、页面跳转

获取 url 中的参数,跳转至另外一个站点时, 禁止「MUST NOT」跳转至任意站点,「MUST」设置白名单,只容许跳转至规定的站点。跨域

点击页面中的连接跳转至第三方站点的时候,建议「RECOMMENDED」 以相似百度、 Google 搜索结果中 Server 端跳转的形式进行,后端能够对 URL 进行安全性扫描,检测到是一个恶意网站、或者目标资源是可执行文件时,应给予用户强烈的警告,告知其风险。数组


四、第三方功能和资源

页面中嵌入的第三方功能,禁止「MUST NOT」直接内嵌第三方 JS 代码,建议以「RECOMMENDED」iframe 形式引入 。安全

页面中若是须要使用第三方的数据,建议 RECOMMENDED」 由 RD 获取,尽可能避免以 jsonp 方式获取,如必须使用 jsonp,请限制好第三方返回的 callback 函数名,对于不容许使用的函数名称,一概禁止。cookie

原则上禁止「MUST NOT」使用第三方提供的资源:图片、文档等,若有必须,建议「RECOMMENDED」由 RD 抓取相关内容转存至自有 Server。由于,外链会产生站外请求,能够被利用实施 CSRF 攻击,并且每每存在性能问题。app


五、上传文件

建议「RECOMMENDED」上传接口所在的域名和主域名隔离,而且采用最小化原则限制容许上传的文件大小。dom

6JSON/JSONP协议

JSON 数据,必须「MUST」设置 http header Content-Type : application/json

JSONP 形式向第三方提供数据,必须「MUST」设置 http header Content-Type : application/javascript,而且callback function 名称只容许出现:数组、字母、下划线。

JSON/JSONP 方式提供数据,建议「RECOMMENDED」遵循最小化原则,只暴露须要暴露的信息,而且用白名单限制 referer 防止恶意抓取。

七、Cross Domain 设置

在时 XML Httprequest 2(xhr2) 以及 font-face 若是须要支持跨域访问的需求,禁止「MUST」设置 header 为: Access-Control-Allow-Origin: * ,须要设置为容许访问的地址,好比: Access-Control-Allow-Origin:www.baidu.com

相关文章
相关标签/搜索