安全相关
考查前端及系统安全方面的知识,需要对各种攻击手段和防范措施有基本的了解。
知识点
参见百度百科:http://baike.baidu.com/view/73.htm
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 的方法发起跨站访问并拿到服务器的返回值。
所谓知己知彼百战不殆,看看黑客教程能更好的了解这方面内容:
避免方式:
- 不信任用户提交的任何内容,对所有用户提交内容进行可靠的输入验证,包括对URL、查询关键字、HTTP头、REFER、POST数据等,仅接受指定长度范围内、采用适当格式、采用所预期的字符的内容提交,对其他的一律过滤。尽量采用POST 而非GET 提交表单;对”<”,”>”,”;”,”’”等字符做过滤;任何内容输出到页面之前都必须加以encode,避免不小心把html tag 弄出来。
- 实现Session标记(session tokens)、CAPTCHA系统或者HTTP引用头检查,以防功能被第三方网站所执行,对于用户提交信息的中的img 等link,检查是否有重定向回本站、不是真的图片等可疑操作。
- Cookie 防盗。避免直接在cookie 中泄露用户隐私,例如email、密码等等;通过使cookie 和系统ip 绑定来降低cookie 泄露后的危险。这样攻击者得到的cookie 没有实际价值,不可能拿来重放。
- 确认接收的的内容被妥善的规范化,仅包含最小的、安全的Tag(没有javascript),去掉任何对远程内容的引用(尤其是样式表和javascript),使用HTTP only的cookie。
淘宝QA Team也有专门一片检验XSS漏洞的文章:
先引一篇文章,留着慢慢看。。。。
"中间人"攻击:前端很难防御。。。。。
常见问题
- 有一段用户输入的文字,现在要通过一定的方法显示在一个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, '<'], [/>/g, '>'], [/'/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运行情况了。
- 如何防止flash在页面中执行javascript呢?
- 大小: 30.5 KB
分享到:
相关推荐
java编译反编译工具-FrontEnd,压缩包里面包含有jad,不用另行下载!
fcitx-frontend-qt5的离线安装包
赠送jar包:cxf-rt-frontend-simple-3.0.1.jar; 赠送原API文档:cxf-rt-frontend-simple-3.0.1-javadoc.jar; 赠送源代码:cxf-rt-frontend-simple-3.0.1-sources.jar; 赠送Maven依赖信息文件:cxf-rt-frontend-...
介绍gcc frontend的一篇好文档
NewbeeGuide-frontend在学习本系列指南前,请确保你至少掌握了基本的信息搜索能力,本系列指南不会也不可能提供无微不至的关怀,在学习过程中遇到问题请善用搜索。学习方法:按照章节顺序学习即可。如果章节内使用...
FrontEnd.exe+Jad.exe
JAVA反编译工具Frontend+2.0
UPX Frontend用于对可执行文件进行UPX方式压缩,图形界面,操作方便。
赠送jar包:cxf-rt-frontend-jaxws-3.0.1.jar; 赠送原API文档:cxf-rt-frontend-jaxws-3.0.1-javadoc.jar; 赠送源代码:cxf-rt-frontend-jaxws-3.0.1-sources.jar; 赠送Maven依赖信息文件:cxf-rt-frontend-jaxws...
FrontEnd Plus java反编译。
反编译工具将class文件反编译为java文件,frontEnd为反编译提供GUI
赠送jar包:cxf-rt-frontend-jaxrs-3.0.1.jar; 赠送原API文档:cxf-rt-frontend-jaxrs-3.0.1-javadoc.jar; 赠送源代码:cxf-rt-frontend-jaxrs-3.0.1-sources.jar; 赠送Maven依赖信息文件:cxf-rt-frontend-jaxrs...
可视化的java反编译工具,用于学习,反对剽窃。
FrontEnd是专为JAD做的一个图形化操作界面,它的反编译引擎就是jad.exe,弥补了JAD只能在命令行窗口下运行的不足,是对JAD在Windows操作系统下的扩充。
使用Simple Frontend+Aegis方式发布并获取webservice.doc
cxf-rt-frontend-jaxws-3.0.16.jar jar包下载3.0.16版本下载
FrontEnd Plus反编译工具 反编译工具 反编译 FrontEnd Plus反编译工具 反编译工具 反编译
CXF中使用Simple FrontEnd Project方式发布并获取webservice服务
CXF前端(Frontend)是编程使用的API,用来开发和对外暴露Web Services。CXF提供两种类型的前端(Frontend):JAX-WS和简单前端(Simple Frontend)。本节将详细介绍JAX-WS前端。 JAX-WS前端 Code-First方式 创建...
wp user frontend pro汉化版2.1.8