我有一个javascript,其中我使用$ .post()命令将变量发布到php文件,我在相同的.js文件中硬编码了php文件的URL。
我只是想知道某人是否有可能从地址栏中注入$ .post()命令并将无效数据发送到PHP文件?
如果是,如何防止或如何检测这些无效数据?
答案 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请求的工具。