`
zhangyaochun
  • 浏览: 2614631 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

谈谈前端安全规范

阅读更多

最近研究了css规范,下一步就是简单分析一下前端安全相关的知识。

 

以下内容整理之淘宝UED相关资料

 

 

1、XSS Cross Site Script跨站攻击脚本

 

方式主要有:    

 

  •  在Web页面插入恶意的html代码
  •  用户浏览网页,嵌入在页面里面的代码会被执行

 

种类主要有:

 

  • 基于DOM的XSS
       产生的原因:
             
              i、页面含有一些不受服务器端控制的DOM
              ii、通过form、referer、location修改页面的DOM


       解决的方法:

             避免客户端脚本对DOM的重写、重定向及其它的敏感操作,需要在客户端对form输入进行过滤


     
  • 基于字符集的XSS
     产生的原因:

           页面字符集不固定,用户输入非期望字符集的字符,逃过了过滤。

     解决的方法:

           i、页面一定要指定字符集
           ii、XML不仅要指定字符集,而且要标签闭合

  • 持久性XSS
     产生的原因:

         破坏html结构,来源是数据库导致。

     解决的方法:

          对输入进行过滤
          对输出进行编码,如<>等这些进行编码的转换


  • 非持久性XSS
     产生的原因:
          
           直接将fomr或者搜索域中的字符扔到页面,比如搜索域输入带<script>的执行脚本,在展示搜索结果的时候会执行输入的脚本

     解决的方法:

          对输入进行过滤
          对输出进行编码,如<>等这些进行编码的转换


  • 基于Flash的跨站
     产生的原因:

          AS脚本接受用户输入并操作cookie,攻击者配合其他XSS方法将恶意swf文件嵌入页面

     解决的方法:

         i、管理好cookie的读写权限
         ii、对flash接受用户输入进行过滤和限定


  • Self-inflicted XSS
      产生的原因:

          某些用户作为攻击者,对其他用户进行攻击,最常见的可能就是分享了。

      解决的方法:
         
          对于自己不信任的尽量不要点击。


  • 未经验证的跳转构成的跨站
       产生的原因:

          服务端做302调整,攻击者利用这跳转到恶意的网站。
    
       解决的方法:

          后端限定接收的URL


  • Cookie的跨站

       产生的原因:


          脚本操作cookie,比如进行搜索提交等。
    
       解决的方法:

          后端对cookie进行验证

 

 

2、CSRF(伪造请求)

 

   场景

 

     表单提交相关,比如登录、注册

     Ajax请求数据相关的

 

   防范:

 

     验证码、时间戳

     在表单中加入token,提交方式尽量POST

     AJAX附带token

 

 

  可被利用的脚本:

            i、URL相关的

               document.location = ...
               document.location.hostname = ...
               document.location.replace(...)
               document.referer
               document.URL = ...
               window.location

           ii、直接运行的脚本

               eval(....)
               window.setInterval(...)
               window.setTimeout(...)
               window.execScript(...)
分享到:
评论

相关推荐

    前端面试题

    - **原则**:模块化、命名规范、代码注释等。 - **实践**:编写易于理解和修改的代码。 **8. SEO优化** - **定义**:搜索引擎优化,通过改善网站内容和技术实现更高的搜索排名。 - **策略**:关键词优化、友好...

    尚硅谷_前端_面试题

    ### 尚硅谷_前端_面试题 #### 一、HTML+CSS 1. **Doctype作用?标准模式与兼容模式各有什么区别?** - **Doctype**:文档类型声明,用于告诉浏览器文档使用哪种HTML或XHTML规范。正确地使用DOCTYPE很重要,因为它...

    swagger3.0,带jwt的token以及前后端双端访问swagger的配置

    接下来,我们谈谈如何在 Swagger3.0 中配置 JWT token: 1. 添加依赖:在 Java 项目中,你需要添加 Swagger3.0 和相关 JWT 库的依赖,如 Springfox 或 OpenAPI Generator。 2. 定义 Security Scheme:在 Swagger ...

    多种不同风格的后台

    Material Design则是谷歌提出的一种设计语言,它以真实世界的物理材料为灵感,提供了一套统一的设计规范;拟物化设计则追求模拟现实世界物体的质感和细节,让界面看起来更加真实。 其次,登录页面的设计需要考虑到...

    毕业设计论文-源码-网络在线考试系统(设计源码).zip

    首先,我们来谈谈前端开发。前端是用户与系统交互的界面,通常采用HTML、CSS和JavaScript等技术实现。在这个系统中,前端设计应该注重用户体验,确保界面清晰、操作简便。HTML用于构建页面结构,CSS则负责样式布局,...

    Rental-House-ManagementSystem:PHP

    再来谈谈数据库设计。在MySQL中,通常会设立多个表来存储不同类型的数据,如房源表、租户表、租约表等。每个表都有相应的主键,用于关联其他表,形成数据的一致性和完整性。例如,房源表和租约表可以通过房源ID进行...

    网上购物系统(网上购物系统)

    首先,我们来谈谈网上购物系统的基本组成部分: 1. **前端界面**:这是用户与系统交互的部分,通常包括商品展示页面、搜索功能、购物车、个人中心等。前端技术可能涉及HTML、CSS、JavaScript,以及现代框架如React...

    图书馆管理系统

    JavaEE,全称Java Platform, Enterprise Edition,是Java平台为企业级应用设计的一套标准规范。它包括一系列的API和服务,如Servlet、JSP(JavaServer Pages)、JPA(Java Persistence API)等,用于构建分布式、...

    基于ssm+vue葛溪乡留守儿童信息管理系统.zip

    在项目实施过程中,开发人员需要关注数据安全与隐私保护,确保留守儿童的个人信息得到妥善保护,遵循相关法律法规。此外,系统的易用性和可维护性也是关键,良好的设计和规范的编码能够保证系统的可持续发展。 系统...

    头像和Ajax应用

    在“头像和Ajax应用”中,可能涉及的场景是用户在修改个人资料时,实时验证头像是否符合规范,如尺寸、格式等。通过Ajax,用户无需等待整个页面刷新就能看到验证结果,提升了用户体验。实现Ajax异步验证通常需要用到...

    组件加载html内容和组件文字样式设置

    在IT行业中,组件化开发是一种常见的实践,它允许开发者将应用程序的不同部分划分为独立的、可重用的单元...同时,注意安全性,避免XSS攻击,以及遵循良好的代码组织和样式管理规范,将使你的代码更加健壮和易于维护。

    基于SSM+vue框架的二手房中介管理系统.zip

    这个系统旨在提高中介公司的工作效率,规范业务流程,提升客户体验。 首先,让我们了解一下SSM框架。SSM是Java Web开发中的经典组合,Spring负责依赖注入和事务管理,SpringMVC处理请求和响应,而MyBatis则作为持久...

    Excellence

    4. **最佳实践文档**:可能是一份详尽的指南,列举了在特定IT领域的最佳实践,如项目管理、编程规范、网络安全等,以助于团队达到卓越的标准。 5. **性能基准测试**:可能包含用于评估系统性能的工具和数据,帮助...

    ios-ios指令代码.rar

    在IT行业中,尤其是在移动应用开发领域,iOS平台的开发具有其独特性和规范。"ios-ios指令代码.rar"这个文件很可能包含了一组用于iOS应用开发的特定代码或指令,特别是针对微信H5游戏的房卡系统。描述中提到的“微信...

    网上招聘系统 软件开发方法 文档模板

    在开发网上招聘系统时,测试团队需要针对每个功能模块设计详尽的测试用例,如验证用户信息的安全性、职位信息的准确性和实时性、系统性能等。同时,测试文档应记录测试过程中的问题,便于后期修复和改进。 接下来,...

    基于springboot的毕业就业信息管理系统源码数据库.zip

    总的来说,基于SpringBoot的毕业就业信息管理系统是一个综合性的项目,涵盖了前端展示、后端服务、数据库设计和优化等多个方面。通过学习和实践,开发者不仅可以掌握Java Web开发的基本技能,还能提升项目管理、问题...

    用户登录系统+窗口跳转+事件处理

    UI设计应该简洁易用,遵循Android Material Design规范以提供良好的用户体验。 2. 数据验证:在用户点击登录按钮后,系统需要验证输入的用户名和密码是否有效。这可能涉及到本地存储的用户数据(如SQLite数据库或...

    jiaoben348

    接着,我们来谈谈Ajax在表单提交中的应用。当用户点击提交按钮时,我们可以捕获这个事件,然后使用Ajax发送表单数据到服务器。在JavaScript中,这通常通过jQuery的`$.ajax()`方法实现。例如: ```javascript $("#...

    The-Crypto-Cube

    在Web应用程序的架构方面,这个项目可能采用了模块化开发,利用ES6的import/export语法或者CommonJS规范,使得代码更易读、可维护。另外,考虑到跨域请求问题,可能使用了JSONP或者CORS策略来实现前后端的数据通信。...

    wpf咖啡系统

    首先,我们来谈谈WPF(Windows Presentation Foundation)。WPF是.NET Framework的一部分,主要用于构建Windows桌面应用程序。它的核心特性包括丰富的图形渲染能力、数据绑定、UI布局和资源管理等。在这个咖啡系统中...

Global site tag (gtag.js) - Google Analytics