上QQ阅读APP看书,第一时间看更新
2.6 AngularJS技术
AngularJS诞生于2009年,由Misko Hevery等人创建,后被谷歌收购。它是一款优秀的前端JavaScript框架,已经被用于谷歌的多款产品中。AngularJS有着诸多特性,最核心的特性是MVC(Mode-View-Controller)、模块化、自动化双向数据绑定、语义化标签和依赖注入等。
AngularJS是一个JavaScript框架,是一个以JavaScript编写的库。AngularJS通过指令扩展了HTML,且通过表达式绑定数据到HTML。AngularJS以一个JavaScript文件形式发布,可通过<script>标签添加到网页中。
1.AngularJS防止模板攻击
AngularJS可以通过JavaScript框架把表达式放在花括号中嵌入页面中。例如,表达式1+2={{1+2}}将会得到1+2=3。其中,括号中的表达式被执行了,这就意味着如果服务器端允许用户输入的参数中带有花括号,就可以用Angular表达式来进行XSS攻击。所以对用户的输入需要做有效性验证,避免攻击者依据AngularJS语法的特征进行有针对性的攻击。
2.AngularJS防止XSS攻击
ng-bind-html指令会在运行时过滤一些不安全的标签来防止XSS攻击,提高安全性。但是会导致字符串中的某些标签(如<button></button>,<input/>等)显示不出来。
AngularJS中使用$sce来进行这类安全防护,程序员可以根据实际需要进行选择。