Two weeks ago I started writing some Javascript and AngularJS code for a customer. As a proud newby I must also be aware of the dangers on the big bad Internet. In particular vulnerabilities such as XSS attacks.

I've already performed a vulnerability scan and this showed I didn't restrict session cookies to httponly. However nothing about the Javascript or AngularJS scripting.

My familiarity with JavaScript and AngularJS is somewhat limited.

    var kvv = angular.module('kvv', ['ngStorage']);

    kvv.controller('CartController', ["$scope", "$localStorage", "$sessionStorage", "$timeout", function($scope, $localStorage, $sessionStorage, $timeout) {

	if ($localStorage.items === undefined) {
	    $localStorage.items = [];
	};

	$scope.localStorage = $localStorage

	$scope.remove = function(index) {
	  $localStorage.items.splice(index, 1);
	};

	$scope.checked = false;

	$scope.addToCart = function(index, title, desc, price, timeout) {

	  $scope.checked = true;
	  var found = false;
	  angular.forEach($localStorage.items, function(items) {
	      if (items.id  === index) {
	        $timeout(function() {
	          (items.quantity++);
	          $scope.checked = false;
	        }, 750);
	        found = true;
	    }
	  });
	  if (!found) {
	    $timeout(function() {
	        $localStorage.items.push(angular.extend({
	        id: index,
	        title: title,
	        quantity: 1,
	        price: price}, index))
	        $scope.checked = false;
	        },750);
	    }
	};

	$scope.itemWithoutBtw = function(index) {
	    var itemWithoutBtw = 0;
	    angular.forEach($localStorage.items, function(items) {
	        itemWithoutBtw += items.price / 106 * 100;
	    })
	    return itemWithoutBtw;
	};

	$scope.total = function(index) {
	        var total = 0;
	        angular.forEach($localStorage.items, function(items) {
	            total += items.quantity * items.price;
	        })
	        return total;
	};

	$scope.totalBtw = function(index) {
	        var totalBtw = 0;
	        var total = $scope.total();
	        angular.forEach($localStorage.items, function(items) {
	            totalBtw = total / 106 * 6;
	        })
	        return totalBtw;
	};

	$scope.totalWithBtw = function(index) {
	        var totalWithBtw = 0;
	        angular.forEach($localStorage.items, function(items) {
	            totalWithBtw += (items.quantity * items.price) + (items.quantity * items.price  / 100 * 6);
	        })
	        return totalWithBtw;
	};
	$scope.totalWithoutBtw = function(index) {
	        var total = $scope.total();
	        var totalBtw = $scope.totalBtw();
	        var totalWithoutBtw = 0;
	        angular.forEach($localStorage.items, function(items) {
	            totalWithoutBtw = total - totalBtw;
	        })
	        return totalWithoutBtw;
	};

	$scope.orderTotal = function(index) {
	        var orderTotal = 0;
	        angular.forEach($localStorage.items, function(items) {
	            orderTotal += items.quantity;
	        })
	        return orderTotal;
	};

	$scope.orderDelete = function(index) {
	    delete $localStorage.items;
	    $localStorage.items = [];
	    $('html, body').animate({scrollTop: 0}, 2500);
	};

    }]);