jquery ajax数据发布的安全建议?

我正在使用jquery ajax将更新发布回我的服务器。 我担心确保我已经采取适当的措施,以便只有我的AJAX调用才能发布数据。

我的堆栈是针对MySQL后端的Apache上的PHP。

建议非常感谢!

AJAX在您的页面中调用的任何请求也可以由应用程序之外的人员进行。 如果操作正确,您将无法判断它们是否是通过您的webapp或手动/其他方式进行的AJAX调用的一部分。

当你说你想确保只有你的AJAX调用可以发布数据时,我可以想到你可以想到的两种情况:要么你不希望恶意用户能够发布干扰另一个的数据用户的数据或您实际上想要将post限制在多请求操作的“流程”中。

如果您担心第一种情况(某人将恶意数据发布到/作为另一个用户),无论您是否使用AJAX,解决方案都是相同的 – 您只需通过任何必要的方式对用户进行身份validation – 通常是通过会话曲奇饼。

如果你关心第二种情况,那么你将不得不做一些事情,比如在流程的每一步发出一个唯一的令牌,并将预期的令牌存储在服务器端。 然后,当发出请求时,检查服务器端是否有相应的条目用于正在执行的操作以及预期的令牌是否匹配以及该令牌尚未使用。 如果没有,则拒绝该请求(如果有),然后将该标记标记为已使用并处理该请求。

如果您关注的是除了这两种情况之一之外的其他情况,那么答案将取决于您提供的更具体的细节。

使用会话确保任何Ajaxpost都在经过身份validation的上下文中完成。 将您的Ajax代码视为服务器的另一个客户端,以这种方式解决身份validation问题变得更加容易。