是否可以在地址栏中使用注入$ .post()?

时间:2012-12-20 13:15:00

标签: javascript post code-injection address-bar

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

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

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

3 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:1)

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

  

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

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

答案 2 :(得分:1)

当然,通过在脚本前加上javascript:方案,你可以为网站做任何你想做的事情:

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

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