在设置cookie时是否有可能在FireBug(或其他一些Web开发人员工具)中破坏javascript执行(没有明确设置JS断点)?
document.cookie = '...';
哈里·
答案 0 :(得分:3)
这应该有效(在控制台中运行):
origDescriptor = Object.getOwnPropertyDescriptor(HTMLDocument.prototype, 'cookie');
Object.defineProperty(document, 'cookie', {
get() {
return origDescriptor.get.call(this);
},
set(value) {
debugger;
return origDescriptor.set.call(this, value);
},
enumerable: true,
configurable: true
});
答案 1 :(得分:3)
https://stackoverflow.com/a/41247745/2158271似乎无法在Chrome中使用。在html→head块的开头添加此代码段可以正常工作:
<script type="text/javascript">
function debugAccess(obj, prop, debugGet){
var origValue = obj[prop];
Object.defineProperty(obj, prop, {
get: function () {
if ( debugGet )
debugger;
return origValue;
},
set: function(val) {
debugger;
return origValue = val;
}
});
};
debugAccess(document, 'cookie');
</script>
有关详细信息,请参阅this Angular University page。
答案 2 :(得分:0)
尝试在If语句中设置它。
if(document.cookie.indexOf('...') >= 0){
debugger;
}
注意:使用firefox时,您的控制台必须打开。在chrome中,情况并非如此。
答案 3 :(得分:0)
在Chrome开发工具中,您可以右键单击应用程序cookie中的cookie,然后选择“使用此cookie显示请求”
所以这不是拦截,但是如果您的目标是识别cookie的来源,那么这是个好方法。