我对jQuery AJAX的安全信息感到困惑。我正在为CMS开发ADD-ON。 PHP文件EXECUTE.PHP
有jQuery AJAX调用。
现在我想卖掉我的ADD-ON,这里有一些问题:
A)John (nice guy), B)Bruce (the hacker)
。他们都知道我的koding结构,文件位置,文件内容 - 一切。如果Bruce将AJAX调用更改为John服务器的EXECUTE.PHP
文件,该怎么办? Bruce知道CMS已经安装在WWW.DOMAIN-NAME.COM/CMS
上,因此他可以怀疑EXECUTE.PHP
在John服务器上的位置。是否有可能做到这一点? EXECUTE.PHP
文件可以删除数据库中的条目 - 因此Bruce能够删除所有带有"DELETE FROM ... WHERE ID = [1, 2, 3 ..]"
的循环的数据库条目吗?是否有可能进行跨域访问(John拥有自己的域名,而Bruce拥有自己的不同域名)?我能做些什么来阻止它?还有其他风险吗?EXECUTE.PHP
并且EXECUTE.PHP
文件通过$_SERVER['REQUEST_URI']
返回地址时 - 它将返回什么地址。这将是约翰的布鲁斯地址或地址有AJAX电话吗? 非常感谢您的所有答案和帮助。
答案 0 :(得分:0)
首先要记住的是,JQuery是客户端。我们无法保护它,因为任何人都可以访问它。可以访问所有逻辑,方法,编码。
对于跨域方法,有两种方法可以解决这个问题。 1. JSONP 2. CORS
尝试看看这个,并使用适当的,而不是公开。
答案 1 :(得分:0)
首先,您的execute.php
文件应检查是否有来自当前所在域的任何访问。然后它应该检查并查看访问是否来自具有admin-rights的登录用户(我假设需要修改数据库,或者至少应该需要),并且正在使用的用户名是登录的用户名(并且用户实际登录的用户名)。这可以防止你提到的大部分问题。
可以操纵任何类型的数据操作,最好的解决方案是尽可能使其安全,也许允许在插件的管理界面中选择具有访问权限的用户登录。这样,您就可以确定哪个用户应该有权进行更改。
REQUEST_URI可以伪造,但作为标准,它会显示hacker
的IP /域。