在设置cookie时始终打破JavaScript执行

时间:2016-12-20 15:30:44

标签: javascript cookies firebug web-developer-toolbar

在设置cookie时是否有可能在FireBug(或其他一些Web开发人员工具)中破坏javascript执行(没有明确设置JS断点)?

document.cookie = '...';

哈里·

4 个答案:

答案 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的来源,那么这是个好方法。