前端開發安全編碼規範

 

一、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

相關文章
相關標籤/搜索