【问题标题】:Changing javascript variables client side in firebug or chrome developer在 firebug 或 chrome 开发人员中更改 javascript 变量客户端
【发布时间】:2013-04-09 14:46:46
【问题描述】:

我正在尝试验证我编写的一些代码是否安全,并且我想确保我为防止“黑客攻击”(更改 JS 变量)而采取的步骤是否有效。我听说从客户端更改 javascript 变量是可能的,但我从来没有学会如何去做。

我使用的是 knockout.js 表。可以从我的数据库中添加项目。当用户提交表单时,我将数据发送到 PHP 页面,该页面然后检查所有输入以确保它们有效并且与存储在我的数据库中的常量相比没有变化。如果它们没有被更改,则将数据提交到数据库中。

我只是想亲自尝试一下。如何使用 chrome developer 或 firefox 尝试更改 javascript 变量?

【问题讨论】:

    标签: php javascript knockout.js firebug google-chrome-devtools


    【解决方案1】:

    使用 F12 打开开发者工具。单击控制台选项卡。从那里您可以访问全局(窗口)范围内的所有内容。 Chrome 将为您提供代码完成功能,以便您可以探索对象。只需键入 JS 代码,即可设置范围内任何内容的属性值和调用方法。

    例如,在此页面上打开控制台并输入StackExchange.,Chrome 会向您显示该 JS 对象及其所有属性和方法。

    基本上,要破解您的应用程序,有人会观察您的应用程序发送到服务器的 HTTP 请求,然后用自己的值重建它们。他们可能可以使用 JS 控制台来执行此操作,或者他们可以使用 curl 或 Fiddler 等其他工具。

    【讨论】:

    • 我在 stackoverflow 上尝试过,并且能够访问 StackExchange,但我似乎无法从我的页面访问任何变量。 knockout.js 会以某种方式更改名称,还是我必须通过其他方式访问它们?我在控制台中输入了几个字母并在自动完成列表中搜索,我的变量都没有。
    • 可能是因为它们处于闭包中,无法通过全局范围访问。可以发一些代码或者放到jsFiddle里面吗?
    • 我找到了this 关闭的帖子。如果它们在闭包中,甚至可以修改它们吗?
    • 这是在离开声明函数的代码范围后访问函数内变量的一种方式。 stackoverflow.com/questions/111102/…
    • 在构造函数中设置断点是可能的。那时,这些变量在控制台中可用。然后,您可以使用控制台在全局范围内保存对变量的引用。
    猜你喜欢
    • 2015-01-07
    • 1970-01-01
    • 2011-08-08
    • 2012-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-16
    相关资源
    最近更新 更多