我目前正在重新设计我的网站 - 这是一个拥有超过 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/