2017-02-13 15 views
0

Я пытается использовать XSS Vurnablity в AngularJS на простом примере:XSS Vurnability эксплуатируют в AngularJS (простой пример)

SNIPPET

<html> 
<head> 

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

    <script> 
     //app declaration 
     var app = angular.module('myApp', []); 

     //controller declaration 
     app.controller('myCtrl', function ($scope) { 
      $scope.name = 9; 
     }); 
    </script> 

</head> 

<body ng-app="myApp" ng-controller="myCtrl"> 

    <input type="text" ng-model="name"> 

    <!-- sanitized html --> 
    <p ng-bind="name"></p> 
    <hr/> 
    <img src="apple.png" /> 

</body> 

</html> 

Результат:

enter image description here

E Осмотр:

Я ожидал, что там будет 2 яблока. Сначала ng-bind, а второй - обычным образом (в соответствии с html). Я могу видеть второе изображение яблока (как в той же папке, что и мой html-файл), но почему бы не сначала? Хотя, я вижу ссылку в выполненном коде?

+0

модель рассматривается как строка. используйте trustAsHTML, когда вы установили p-тэг – Nirus

+0

Я должен привести пример, как нормальный угловой сайт может быть переменным. Если я добавлю usetrustAsHTML, он покажет, что я разрешил инъекцию. Я буду использовать его только тогда, когда я подтвержу, что пользователь может ввести что-нибудь здесь ... – Deadpool

+0

Что вы думаете? Вы пытаетесь показать уязвимость, которой просто нет. – Camo

ответ

0

ng-bind автоматически выходит из html-кода.

, если вы хотите, чтобы показать результат без продезинфицировать затем использовать ng-html-bind

вы можете найти более подробную информацию здесь в связанном документ

https://docs.angularjs.org/api/ngSanitize/service/$sanitize

+0

его ng-bind-html. не ng-html-bind –