当前位置: 首页 > 面试题库 >

角度消毒的目的是什么?

喻子航
2023-03-14
问题内容

我只是通过例子去一个角和的OpenLayers指令 HERE 和整个下面的例子来:

<!DOCTYPE html>
<html ng-app="demoapp">
  <head>
    <script src="../bower_components/openlayers3/build/ol.js"></script>
    <script src="../bower_components/angular/angular.min.js"></script>
    <script src="../bower_components/angular-sanitize/angular-sanitize.min.js"></script>
    <script src="../dist/angular-openlayers-directive.js"></script>
    <link rel="stylesheet" href="../bower_components/openlayers3/build/ol.css" />
    <script>
        var app = angular.module('demoapp', ['openlayers-directive']);
        app.controller('DemoController', [ '$scope', function($scope) {
            angular.extend($scope, {
                center: {
                    lat: 0,
                    lon: 0,
                    autodiscover: true
                }
            });
       }]);
    </script>
  </head>
  <body ng-controller="DemoController">
    <openlayers ol-center="center"  height="400px"></openlayers>
    <h1>Center autodiscover example</h1>
    <form>
        Latitude : <input type="number" step="any" ng-model="center.lat" />
        Longitude : <input type="number" step="any" ng-model="center.lon" />
        Zoom : <input type="number" step="any" ng-model="center.zoom" />
        <button ng-click="center.autodiscover=true">Discover position</button>
    </form>
  </body>
</html>

该示例可以在 此处 视为实时示例。

我的问题是关于正在加载的文件,我不太明白为什么要加载以下脚本:

<script src="../bower_components/angular-sanitize/angular-sanitize.min.js"></script>

上面脚本的目的是什么?

编辑:: 我的角度发现了混帐回购协议和文档这里该模块
的位置
。,但我仍然不了解该脚本的用途,文档甚至没有一个示例。

我已经在jQuery中进行了相当多的编码,因此有人可以用jQuery术语来解释这一点吗?


问题答案:

如果包含angular- sanitize脚本,则通过将HTML解析为标记来清理输入。然后将所有安全令牌(来自白名单)序列化回正确转义的html字符串。这意味着没有不安全的输入可以使其进入返回的字符串。

我在下面提供了一个受此博客文章启发的小例子。如果运行此脚本,var app = angular.module("app", ["ngSanitize"]);则html链接将正确显示。但是,如果您注释掉该语句并取消注释var app = angular.module("app", []);,则会引发以下错误消息:Error: [$sce:unsafe] Attempting to use an unsafe value in a safe context.

<!DOCTYPE html>

<html>



<head>

  <link rel="icon" type="image/x-icon" href="favicon.ico">



  <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.1/angular.js"></script>

  <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.1/angular-sanitize.min.js"></script>

  <!-- BEGIN disable refresh -->

  <script type="text/javascript">

    //Including ngSanitize ensures html links get properly sanitized

    var app = angular.module("app", ["ngSanitize"]);

    //If you use this code instead no html links get displayed

    //var app = angular.module("app", []);



    app.controller("mainController", function($scope) {

      var main = this;



      main.links = [

        "<a href='http://google.com'>Google</a>",

        "<a href='http://odetocode.com'>OdeToCode</a>",

        "<a href='http://twitter.com'>Twitter</a>"

      ];

    });

  </script>



</head>



<body ng-app="app">

  <section ng-controller="mainController as main">

    <nav>

      <ul>

        <li ng-repeat="link in main.links" ng-bind-html="link">

        </li>

      </ul>

    </nav>

  </section>

</body>



</html>


 类似资料:
  • 问题内容: 我正在关注egghead.io上的视频教程,但是在尝试遵循他在创建工厂时的示例时,我一直收到“未定义角度”的参考错误,但是我包含了角度脚本 这是我的html页面: 这是我的JavaScript文件“ main.js”: 我已经读过几篇类似的文章,如果我写错了,请纠正我,但是我认为这与引导绑定有关,并且我尝试使用手动引导,但没有成功,仍然遇到相同的错误。 但是我想知道的是,为什么这可以在

  • 问题内容: 我一直在某些人的工作中看到角色属性。我也使用它,但是我不确定它的效果。 例如: 要么: 要么: 此角色属性是否必要? 此属性更适合语义吗? 它会提高SEO吗? 可以在此处找到角色列表,但是我看到有人组成了自己的角色。是否允许或正确使用role属性? 有什么想法吗? 问题答案: 您看到的大多数角色都定义为ARIA 1.0的一部分,然后又合并到HTML5中。一些新的HTML5元素(对话框,

  • 问题内容: 我从书中获得了这两个函数,作者说通过使用这两个函数,我可以更加安全地抵御XSS(第一个函数)和sql注入(第二个函子)。这些都是必要的吗? 同样为了进行清理,我使用准备好的语句来防止sql注入。 我会这样使用它: 编辑: 摆脱第一个功能的strip_tags,因为它不执行任何操作。使用这两个功能是否足以防止大多数攻击并可以在公共站点使用? 问题答案: 的确如此,但是这种逃避级别可能并不

  • 我在这个问题中看到了这个词。我想我有一个想法,但不确定这是一个本地化的术语,还是这个术语的广泛含义。 散弹枪意味着他可能在使用一种比更简单、更优雅的解决方案更笨重或笨拙的工具或技术。还有伏都教?

  • 我正在尝试从我的数据库中获取第三方(潜在的不安全的)html内容,并将其插入到我的html文档中。 如何安全地做到这一点(针对XSS的保护)? 在Angular1.x中,以前有来清理输入,在Angular2中如何做到这一点?据我理解,Angular2默认情况下自动对其进行消毒,是这样吗? 像这样的东西是行不通的:

  • 我一直在看视频和阅读文章,但这篇具体的文章让我很困惑,文章开头写道 Angular中的应用程序遵循模块化结构。Angular应用程序将包含许多模块,每个模块都专用于单一用途。通常,模块是一组内聚的代码,与其他模块集成以运行Angular应用程序。 模块从其代码中导出一些类、函数和值。组件是Angular的基本块,多个组件将构成您的应用程序。 一个模块可以是另一个模块的库。例如,作为主角度库模块的