![](/img/trans.png)
[英]How To Watch a JQuery Selector Using AngularJS scope.$watch() Method
[英]How to breach Angularjs using $watch?
在angular js安全文檔中,它是使用$ watch編寫的,以觀察用戶生成的內容的值是不安全的:
可以通過多種方式來控制模板和表達式:...
在調用范圍內將由用戶提供的內容生成的表達式傳遞給以下方法:...
$ watch(userContent,...)
這里的userContent是什么意思? 如果我觀看用戶輸入字段的ngModel值,這是userContent嗎? 小提琴中的表格不安全嗎?
$watch
expression是eval
受限形式 ,其中AngularJS表達式解析器對表達式進行解析,並根據當前范圍進行評估。
盡管AngularJS表達式解析器具有針對實際eval
評估任意JS代碼的安全措施,但安全隱患可能仍然存在,並且已知的漏洞可能在較舊的框架版本中被利用。
這意味着$on.constructor('alert(1)')()
表達式無法求值,並且不會在任何最新的AngularJS版本中造成安全威脅。 但是考慮到$window
服務已暴露給范圍(這是ES6控制器的常見做法),可以評估$window.alert(1)
表達式。
這不會構成安全威脅:
$scope.$watch('myValue', function () {
console.log($scope.myValue);
});
這可能構成安全威脅:
$scope.$watch($scope.myValue, function () {
console.log($scope.myValue);
});
使用$ watch,您可以隨時關注任何ng模型。 例如,您有1張圖,而在上方有1個圖,分別是年至今,月初,季度至今。 現在說,下拉模型的名稱是dateChange現在可以在dateChange上進行監視,因此,只要dateChange中有更新,就會知道$ watch函數,然后可以相對於該表更新圖的數據選擇
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.