`
DBear
  • 浏览: 232652 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类

【Frontend Knowlodge Chart】 学习之安全相关

阅读更多

安全相关

考查前端及系统安全方面的知识,需要对各种攻击手段和防范措施有基本的了解。

知识点

  • HTML转义符号、脚本转义符号。
参见百度百科:http://baike.baidu.com/view/73.htm
  • 常见的XSS漏洞,及其避免方式。
Xss(跨站脚本攻击),简单来说,就是让不支持富文本的区域支持了富文本的执行,例如blog的标题是不支持富文本的,但由于页面显示时没去做处理,导致了可以在标题中嵌入像文本加粗、变颜色等等的普通HTML,当然,攻击者也就可以嵌入恶意的javascript了,例如获取你在当前网站的cookie的javascript:document.cookie等等,另外一种就是支持富文本的区域没有去过滤一些恶意的javascript。
常见的XSS攻击手法:
1、依赖跨站漏洞,需要在被攻击网站的页面种入XSS脚本的手法
    a. Cookie 盗取,通过javascript 获取被攻击网站种下的cookie,并发送给攻击者。
  • 从cookie 中提取密码等隐私
  • 利用cookie 伪造session,发起重放攻击
    b. Ajax 信息盗取,通过javascript 发起ajax 请求。
  • 从ajax 结果中获取隐私。
  • 模拟用户完成多页表单。
2、不依赖跨站漏洞的XSS攻击手法
    a. 单向HTTP 动作,通过img.src 等方法发起跨站访问,冒充被攻击者执行特权操作。但是很难拿到服务器的返回值。
    b. 双向HTTP 动作,如果服务器产生一段动态的script,那么可以用script.src 的方法发起跨站访问并拿到服务器的返回值。

所谓知己知彼百战不殆,看看黑客教程能更好的了解这方面内容:

避免方式:
  1. 不信任用户提交的任何内容,对所有用户提交内容进行可靠的输入验证,包括对URL、查询关键字、HTTP头、REFER、POST数据等,仅接受指定长度范围内、采用适当格式、采用所预期的字符的内容提交,对其他的一律过滤。尽量采用POST 而非GET 提交表单;对”<”,”>”,”;”,”’”等字符做过滤;任何内容输出到页面之前都必须加以encode,避免不小心把html tag 弄出来。
  2. 实现Session标记(session tokens)、CAPTCHA系统或者HTTP引用头检查,以防功能被第三方网站所执行,对于用户提交信息的中的img 等link,检查是否有重定向回本站、不是真的图片等可疑操作。
  3. Cookie 防盗。避免直接在cookie 中泄露用户隐私,例如email、密码等等;通过使cookie 和系统ip 绑定来降低cookie 泄露后的危险。这样攻击者得到的cookie 没有实际价值,不可能拿来重放。
  4. 确认接收的的内容被妥善的规范化,仅包含最小的、安全的Tag(没有javascript),去掉任何对远程内容的引用(尤其是样式表和javascript),使用HTTP only的cookie。
淘宝QA Team也有专门一片检验XSS漏洞的文章:
  • 常见的其他安全攻击方式,及其应对措施。
先引一篇文章,留着慢慢看。。。。

"中间人"攻击:前端很难防御。。。。。
  • 与flash交互过程中的安全事项。

常见问题

  • 有一段用户输入的文字,现在要通过一定的方法显示在一个id为output的div元素中,请问如何做?
比如,我在一个textarea中输入<input type="text" value="">,然后点击提交把它放入div中,此时如果不做任何处理,div中会出现一个输入框,而不是文字。因此,在输出之前,要用js的内置方法encodeURIComponent(),将输入串转义,然后输出。
  • 请问什么是XSS漏洞?从你的角度看,HTML片段中有哪些关键字可能导致输出后会执行一段javascript脚本?
就常见的是在一个input中输入"><script>alert(document.cookie);</script>这样的字符串,之后与原来的input标签组合,就变成 <input type="text" value=""><script>alert(document.cookie);</script> >,这样script就被执行了。
效果图:

 
一般会导致脚本执行的关键字有“script”,“iframe”,”<”,”>”,”;”,”’”等。
简单的防御方法是把这些输入都encode,代码如下:
encodeJsonString: function(str) {
        var a = [[/"/g, '\"'], [/</g, '&lt;'], [/>/g, '&gt;'], [/'/g, "\'"], [/\//g, '/'], [/\\/g, '\\']];
        var s = str;
        if (typeof str == 'string') {
            for (var i = 0; i < a.length; i++) {
                s = s.replace(a[i][0], a[i][1]);
            }
        }
        return s;
    },
 
这样转义后在输出到dom中,就不会有上面的js运行情况了。

引一篇简单描述XSS攻击实例的文章:http://coderblog.me/2011/04/xss攻击案例分析之——我是2b状态/


  • 如何防止flash在页面中执行javascript呢?
  • 大小: 30.5 KB
分享到:
评论

相关推荐

    基于ssm+vue的垃圾分类网站(java毕业设计,包括源码,数据库,教程).zip

    Java 项目, Java 毕业设计,Java 课程设计,基于 SSM 开发的,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。 包含:项目源码、数据库脚本、软件工具等,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行! 1. 技术组成 前端:vue/html5 后台框架:SSM 开发环境:idea 数据库:MySql(建议用 5.7 版本,8.0 有时候会有坑) 数据库工具:navicat 部署环境:Tomcat(建议用 7.x 或者 8.x 版本), maven 2. 部署 如果部署有疑问的话,可以找我咨询 Java工具包下载地址: https://pan.quark.cn/s/eb24351ebac4

    Flutter分析:带有质量平衡部分机翼的MATLAB计算(含Elastic轴与中心对齐)

    内容概要:本文档主要针对含有质量平衡段(即弹性轴和重心重合点xa=0)的硬翼Flutter问题提供了MATLAB解决方案。文档通过迭代的方式对一系列参数(如频率比(fr)、弹性轴(E)和半径(r)等)进行操作,并利用贝塞尔函数(Kn)来评估flutter速度(UFhat),从而预测了不同质比(mu)下flutter的缩减速度变化情况。同时,文档包含了绘图命令以视觉展示减小颤振速度随质量比变化的趋势以及相应的MATLAB代码。 适合人群:航空工程、飞行器动力学领域的科研工作者,工程师及研究生。尤其是那些从事飞行安全性和稳定性研究的专业人士。 使用场景及目标:主要用于解决飞行器设计过程中遇到的具体颤振问题,能够为设计新型飞机或其他有翼飞行物体提供科学依据和技术支持。它还能够辅助教育,帮助相关专业的学生理解flutter现象及其预防措施。 其他说明:此文件是以数值方法探讨带质量平衡的翅膀颤振特性的实例,在工程上有着重要意义。对于希望深入学习此类问题的人来说,这是一个极好的参考资料和实验平台。然而,实际应用还需要进一步考虑真实条件下的复杂因素,因此需要更多的专业知识和背景资料的支持。

    GUI面板MATLAB人脸识别系统.zip

    GUI面板MATLAB人脸识别系统

    2023年全国计算机二级笔记.pdf

    2023年全国计算机二级笔记.pdf

    【人机交互】MATLAB水果成熟度分析.zip

    【人机交互】MATLAB水果成熟度分析

    基于SSM+JSP的个人交友网站+数据库(Java毕业设计,包括源码,教程).zip

    Java 项目, Java 毕业设计,Java 课程设计,基于 SpringBoot 开发的,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。 包含:项目源码、数据库脚本、软件工具等,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行! 1. 技术组成 前端:jsp 后台框架:SSM 开发环境:idea 数据库:MySql(建议用 5.7 版本,8.0 有时候会有坑) 数据库工具:navicat 部署环境:Tomcat(建议用 7.x 或者 8.x 版本), maven 2. 部署 如果部署有疑问的话,可以找我咨询 Java工具包下载地址: https://pan.quark.cn/s/eb24351ebac4

    Java毕业设计-SpringBoot+Vue的车辆充电桩(附源码、数据库、教程).zip

    Java 项目, Java 毕业设计,Java 课程设计,基于 SpringBoot 开发的,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。 包含:项目源码、数据库脚本、软件工具等,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行! 1. 技术组成 前端:html、javascript、Vue 后台框架:SpringBoot 开发环境:idea 数据库:MySql(建议用 5.7 版本,8.0 有时候会有坑) 数据库工具:navicat 部署环境:Tomcat(建议用 7.x 或者 8.x 版本), maven 2. 部署 如果部署有疑问的话,可以找我咨询 Java工具包下载地址: https://pan.quark.cn/s/eb24351ebac4 后台路径地址:localhost:8080/项目名称/admin/dist/index.html 前台路径地址:localhost:8080/项目名称/front/index.html (无前台不需要输入)

    2023年秋季学期公共课计算机基础与应用.pdf

    2023年秋季学期公共课计算机基础与应用.pdf

    基于SSM+JSP的多用户博客个人网站+数据库(Java毕业设计,包括源码,教程).zip

    Java 项目, Java 毕业设计,Java 课程设计,基于 SpringBoot 开发的,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。 包含:项目源码、数据库脚本、软件工具等,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行! 1. 技术组成 前端:jsp 后台框架:SSM 开发环境:idea 数据库:MySql(建议用 5.7 版本,8.0 有时候会有坑) 数据库工具:navicat 部署环境:Tomcat(建议用 7.x 或者 8.x 版本), maven 2. 部署 如果部署有疑问的话,可以找我咨询 Java工具包下载地址: https://pan.quark.cn/s/eb24351ebac4

    联邦基金目标利率数据.xlsx

    美联储在2024年9月18日宣布将其调50个基点,降至4.75%至5.00%之间的水平。这是美联储自2020年3月以来首次降息,也是自2023年7月将利率水平调升至历史高位后的首次下调,标志着货币政策由紧缩周期向宽松周期的转向 数据名称:美国联邦基金有效利率、目标利率历史数据 样本数量:12667条 数据年份:1990.1-2024.9 数据说明:包括有效利率、目标利率 更新日期:2024年9月

    基于SpringBoot+Vue的招聘信息管理系统 (2)(Java毕业设计,包括源码、数据库、教程).zip

    Java 项目,仅供学习参考。 Java 毕业设计,Java 课程设计,基于 SpringBoot 开发的,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。 包含:项目源码、数据库脚本、软件工具等,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行! 1. 技术组成 前端:html、javascript、Vue 后台框架:SpringBoot 开发环境:idea 数据库:MySql(建议用 5.7 版本,8.0 有时候会有坑) 数据库工具:navicat 部署环境:Tomcat(建议用 7.x 或者 8.x 版本), maven 2. 部署 如果部署有疑问的话,可以找我咨询 Java工具包下载地址: https://pan.quark.cn/s/eb24351ebac4 后台路径地址:localhost:8080/项目名称/admin/dist/index.html 前台路径地址:localhost:8080/项目名称/front/index.html (无前台不需要输入)

    Delpih 12.3控件之ddj-installer-20250211.zip

    Delpih 12.3控件之ddj_installer_20250211.zip

    【工程项目】MATLAB车牌识别SVM方法,模板匹配太多人做了.zip

    【工程项目】MATLAB车牌识别SVM方法,模板匹配太多人做了

    【工程项目】MATLAB车牌出入库识别(GUI界面,计时计费,停车位计算,倾斜矫正).zip

    【工程项目】MATLAB车牌出入库识别(GUI界面,计时计费,停车位计算,倾斜矫正)

    Java毕业设计-SpringBoot+Vue的结合疫情情况的婚恋系统(附源码、数据库、教程).zip

    Java 项目, Java 毕业设计,Java 课程设计,基于 SpringBoot 开发的,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。 包含:项目源码、数据库脚本、软件工具等,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行! 1. 技术组成 前端:html、javascript、Vue 后台框架:SpringBoot 开发环境:idea 数据库:MySql(建议用 5.7 版本,8.0 有时候会有坑) 数据库工具:navicat 部署环境:Tomcat(建议用 7.x 或者 8.x 版本), maven 2. 部署 如果部署有疑问的话,可以找我咨询 Java工具包下载地址: https://pan.quark.cn/s/eb24351ebac4 后台路径地址:localhost:8080/项目名称/admin/dist/index.html 前台路径地址:localhost:8080/项目名称/front/index.html (无前台不需要输入)

    基于SpringBoot+Vue的生鲜超市管理的设计与实现 (2)(Java毕业设计,包括源码、数据库、教程).zip

    Java 项目, Java 毕业设计,Java 课程设计,基于 SpringBoot 开发的,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。 包含:项目源码、数据库脚本、软件工具等,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行! 1. 技术组成 前端:html、javascript、Vue 后台框架:SpringBoot 开发环境:idea 数据库:MySql(建议用 5.7 版本,8.0 有时候会有坑) 数据库工具:navicat 部署环境:Tomcat(建议用 7.x 或者 8.x 版本), maven 2. 部署 如果部署有疑问的话,可以找我咨询 Java工具包下载地址: https://pan.quark.cn/s/eb24351ebac4 后台路径地址:localhost:8080/项目名称/admin/dist/index.html 前台路径地址:localhost:8080/项目名称/front/index.html (无前台不需要输入)

    GUI面板MATLAB苹果水果分级.zip

    GUI面板MATLAB苹果水果分级

    2023年专升本计算机复习题.pdf

    2023年专升本计算机复习题.pdf

    个人用途,用于学习和交流

    个人用途,用于学习和交流

    基于SpringBoot和Vue的人事管理系统(Java毕业设计,包括源码、数据库、教程).zip

    Java 项目,仅供学习参考。 Java 毕业设计,Java 课程设计,基于 SpringBoot 开发的,含有代码注释,新手也可看懂。毕业设计、期末大作业、课程设计、高分必看,下载下来,简单部署,就可以使用。 包含:项目源码、数据库脚本、软件工具等,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行! 1. 技术组成 前端:html、javascript、Vue 后台框架:SpringBoot 开发环境:idea 数据库:MySql(建议用 5.7 版本,8.0 有时候会有坑) 数据库工具:navicat 部署环境:Tomcat(建议用 7.x 或者 8.x 版本), maven 2. 部署 如果部署有疑问的话,可以找我咨询 Java工具包下载地址: https://pan.quark.cn/s/eb24351ebac4 后台路径地址:localhost:8080/项目名称/admin/dist/index.html 前台路径地址:localhost:8080/项目名称/front/index.html (无前台不需要输入)

Global site tag (gtag.js) - Google Analytics