【问题标题】:How to use ajax functions right如何正确使用ajax函数
【发布时间】:2011-12-22 05:02:52
【问题描述】:
我已在 Internet 上搜索过,但找不到我要查找的信息。因此,如果这是一个简单的问题或问了 miljon 次,我很抱歉。
我正在开发一个具有(可能)很多 Ajax 功能的网站。现在我想知道 Facebook 是如何做到这一点的,例如“喜欢”按钮。如果我对页面 addLike.php?post_id=1 使用 ajax 调用,那么访问者(怀有恶意)可以通过向 post_id 添加随机值来使用此 url 来操纵我的数据库。
如何防止这种情况发生?或者最好的方法是什么?
【问题讨论】:
标签:
ajax
jquery
code-injection
【解决方案1】:
首先,对数据条目(存储在数据库、文件等中的内容)进行更改的调用永远不应从“GET”HTTP 请求中访问,例如删除论坛中的帖子。也就是说,如果你在帖子中添加like,你应该使用$.post来执行ajax请求(假设你使用的是jQuery)。
此外,在响应每个请求之前都应该进行身份验证和授权。这意味着,如果用户想在帖子中添加喜欢,他/她应该已经过身份验证并且还允许执行特定操作。流行的 Web 框架将帮助您自动实现这一点(通过配置)。
此外,您还应该通过数据清理来防止 XSS 攻击。详情可以google一下。