0

我有一个 javascript,在其中我使用 $.post() 命令将变量发布到 php 文件,我将 php 文件的 URL 硬编码在同一个 .js 文件中。

我只想知道是否有人可以从地址栏中注入 $.post() 命令并将无效数据发送到 PHP 文件?

如果是,如何防止或如何检测这些无效数据?

4

3 回答 3

5

是的,任何知道如何用 JavaScript 编码的人都可以向您的 PHP 文件发送 AJAX POST 请求。

至于如何检测无效数据,这完全取决于使数据无效的原因。您只需根据您期望有效数据满足的任何标准检查 POST 值,然后忽略任何不符合这些标准的请求。

于 2012-12-20T13:17:29.877 回答
1

是的,这很简单。攻击者可以修改、添加或删除浏览器中运行的任何 JavaScript,修改 DOM 等。Firebug 等工具允许任何人从控制台调用任意 JavaScript。此外,您可以简单地使用它curl来运行您的服务器并发送任意数据。

如果是,如何防止或如何检测这些无效数据?

您必须确保服务器端的数据有效性和完整性。此外,您可能希望在服务器端添加一些安全性,而不是依赖于“隐藏”的某些 JavaScript 函数。

于 2012-12-20T13:18:31.317 回答
1

当然,通过在脚本前面加上javascript:方案,您几乎可以对站点执行任何操作:

javascript:$.post(/* stuff here */)

您应该始终在服务器端验证您的传入数据,因为不仅有人可能使用您网站上的 javascript 来执行此操作,而且他们可能使用其他工具,例如 curl 或其他任何可以让您发出 http 请求的工具。

于 2012-12-20T13:21:13.257 回答