本文目录一览:
- 1、如何用angularjs指定一段html拿来预览
- 2、web前端需要掌握的哪些知识
- 3、如何通过BurpSuite检测Blind XSS漏洞
- 4、写前端用哪个软件好?
- 5、怎样过滤跨站恶意脚本攻击
如何用angularjs指定一段html拿来预览
1.首先定义一个angularJS的过滤器,作为处理html文本的通用过滤器。
define([ "app",], function (app) {
app().registerFilter("trusted", ["$sce", function ($sce) { return function (html) { if (typeof html== 'string') //判断类型为字符串
return $sce.trustAsHtml(html);
return html;
}
}])
});
sce 即 strict contextual escaping,严格模式下的上下文隔离,也可以理解为安全绑定,类似于浏览器的同源加载策略,不能加载不同域下的文件及不鞥呢使用不和要求的协议,angularJS为了避免安全漏洞,有些ng-src或ng-include都会进行安全检查,避免了一些跨站的XSS。angularJS是默认开启sce的,所以html文本得使用授权信任加载的html文本。
$sce是angularJS自带的安全处理模块,$sce.trustAsHtml()方法将值转换为特权所接受并能安全地使用“ng-bind-html”,就实现在数据加载时对于html标签的自动转义。
web前端需要掌握的哪些知识
一个合格的web前端需要掌握哪些技术?
最基础的自然是JavaScript,HTML和css这三种语言。
首先了解下它们到底是什么。
HTML是用户看到的网页的骨架,比如你会发现当前页面分为左中右三个部分,其中还填充了不同的文字和图片;每个子部分还会继续细分,比如当前页面的中间部分下方有输入框等等。
CSS是网页展示的细节控制,比如你会发现有的文字是红底白色,有的子部分占了页面的二分之一宽,有的只占六分之一,有些部分需要用户进行某些操作(如点击,滑动)才会出现等等,这些就是有CSS来控制。
JavaScript是负责捕捉用户在浏览器上的操作,并与后端服务器进行数据交换的脚本语言。当用户在前端进行点击,输入等操作的时候,会触动绑定了该动作的JavaScript脚本,然后JavaScript收集数据,调用后端的api接口,再将后端返回的数据交给HTML和CSS渲染出来。
一个网页的HTML代码和CSS代码是可以直接在浏览器中查看的,你可以直接按F12,就能看到下图右侧的模块,左右侧红框就是代码与实际页面的对应关系。因此如果你看到某个网站的布局很不错,不妨点击F12,进行学习。
前端框架
然而,实际应用中,已经很少有正规的项目组直接用上述三种语言进行web 前端开发了,而是使用很多封装了这三种语言的框架,比如
Vue.js
,angular,react native等等。它们是来自谷歌和Facebook的大神项目组,基于自己的经验,封装了原生前端语言,实现了更多更复杂更酷炫的功能。因此,可以说,学会使用这些框架,能达到事半功倍的效果。
比如用了vue,它是自底向上增量开发的设计,其核心只关心图层,而且还可以与其他库或已存项目融合,学习门槛极其友好;另一方面,vue可以驱动单文件组件和vue生态系统支持的库开发的复杂单页应用。有了这个生态系统,可以说,vue是处在一个不断壮大,不断完善的欣欣向荣的状态。
网络通信协议
由于前后端分离的趋势,前端还需要了解很多网络通信协议的知识,这里不局限于http协议,因为据我的经验,有时候我们还会用到websocket等协议。因此,前端需要简单了解不同协议的特点以及使用方式,但是好消息是不用像学习计算机网络课程一样对每种协议的原理都了解的特别透彻,只要学会如何用前端语言发送这种协议的请求就够了。
如何通过BurpSuite检测Blind XSS漏洞
1.这是一个Blind XSS漏洞,可以通过这个联系表单来利用这个漏洞;
2.考虑到网站使用的是AngularJS v1.5.8,所以AngularJS在这里也会是一个非常重要的突破口;
3.基本的HTML注入和JavaScript注入(使用img或script标签)可能已经被过滤掉了;
写前端用哪个软件好?
编写代码的软件有不少:WebStorm、Sublime、HBuilderX、Editplus和Dreamweaver等。
每个软件各有优缺点。
我自己主要用Dreamweaver这个软件,用习惯了;有时用一下 HBuilderX
怎样过滤跨站恶意脚本攻击
1. 在输入流中截住form data中的恶意脚本
研究两种XSS攻击,如反射型和存储型XSS攻击,其恶意脚本都是来自用户的输入。因此,可以使用过滤用户输入的方法对恶意脚本进行过滤。对简单的HTTP请求,一般使用GET和POST方法。
2. 在输入流中检测滤掉来自其他网站的URL中的恶意脚本
当用户不小心点击了被其他黑客提供的假冒URL,则可能在该URL中注入恶意脚本。因此,也需要对这种情况进行处理。因此为确保其他在header中的恶意脚本,需要对request.getHeader进行重写。以下为例子:
public String getHeader(String name) {
String value = super.getHeader(name);
if (value == null)
return null;
return xssClean(value);
}
3. xssClean函数怎样实现才可以过滤掉恶意脚本呢?
如果是java语言,推荐使用antisamy。使用antisamy进行XSS清理非常简单,只需要简单的几个步骤即可达到目的。
1‘. 在pom.xml文件中加入antisamy的dependency,
dependency
groupIdorg.owasp.antisamy/groupId
artifactIdantisamy/artifactId
version1.5.3/version
/dependency
2’. 加入了dependency之后,就可以在xssClean中加入antisamy对恶意脚本进行清理。其中policy.xml是白名单,policy.xml中规定了各个html元素所必须满足的条件。antisamy的精髓之处在于,使用policy文件来规定你的过滤条件,若输入字符串不满足policy文件中的条件,则会过滤掉字符中的恶意脚本,返回过滤后的结果。具体代码如下:
private String xssClean(String value) {
AntiSamy antiSamy = new AntiSamy();
try {
final CleanResults cr = antiSamy.scan(value, Policy.getInstance("policy.xml"), AntiSamy.SAX);
return cr.getCleanHTML();
} catch (ScanException e) {
e.printStackTrace();
} catch (PolicyException e) {
e.printStackTrace();
}
return value;
}
这样,我们就将client端用户输入的request,在server端进行了拦截,并且进行了过滤。