javascript - AJAX - 如何保护我的 ajax/php 函数免遭垃圾邮件?

标签 javascript php jquery mysql ajax

我目前正在重新设计我的网站 - 这是一个拥有超过 2,000 款 Flash 游戏的游戏厅。几年前,我已经为我设计/创建了该网站,并且我自己承担了对其进行现代化改造的责任。 我遇到了一个我特别关心的问题,过去该站点曾受到黑客攻击,并且一度容易受到 mysql 注入(inject)的攻击,但此后已得到修复。 问题是——当前站点使用了过多的 PHP。我不喜欢这样,所以我想我会尝试通过在必要时使用 javascript 来减少很多服务器压力。例如,它经常需要从数据库中检索游戏列表。 我正在使用 Jquery 的 post() 函数将一组 id 传递给名为“get-games.php”的 php 有点像这样:

$.post( "ajax/get-games.php", { ids:ids } , function( data ) {
  //create games list with response data
});

如何阻止有人恶意重复使用 500 个 ID 调用此函数?答案很明显 - 在 get-games.php 中添加如下内容:

if (ids.length > 100) throw an error

但有时我可能想要检索超过 100 个游戏的列表,也许在管理面板上。它似乎有点局限,我想知道是否有更好的方法来处理这种可发送垃圾邮件的功能。

最佳答案

遗憾的是,没有 Elixir ,您可能必须实现一系列措施,强制执行服务器端:

  • 各种速率限制(例如,每个 IP)(取决于您网站的使用模式)

  • 只允许来自已知管理 session 的小请求

  • 可能锁定允许管理员 session 的 IP

  • 如果站点的 UI 仅允许在操作 Y 之后执行操作 X,如果相关 session 之前未在相关时间内执行操作 Y,服务器端将拒绝操作 X

……等等。 Stack Exchange 系统多年来一直在用这些东西打地鼠(相当成功),所以它可以做到,但你必须保持警惕并观察网站上的滥用模式,然后采取新措施来减少这些滥用行为......

关于javascript - AJAX - 如何保护我的 ajax/php 函数免遭垃圾邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27469091/

相关文章:

javascript - jQuery "Meet the team"效果

php - 如何将通知 url 添加到 REST API paypal?

javascript - 暂停视频时停止setInterval(Youtube播放器)

javascript - Phonegap HTML5 Canvas 层未清除(仅在设备上)

javascript - 如何动态确保对象中的函数仅使用它接受的参数调用?

php - 来自 mac os x 的 Tsung 负载测试

javascript - 从表中删除行

javascript - 在 animate settimeout 之后执行函数

javascript - 使用ajax加载JSON在本地浏览器中工作,但不在PhoneGap应用程序中

php - 无法在 Symfony 中创建索引列