首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >防止web应用程序脚本滥用的最简单方法?

防止web应用程序脚本滥用的最简单方法?
EN

Stack Overflow用户
提问于 2012-10-10 01:59:32
回答 3查看 895关注 0票数 4

我正在运行flask/memcached,正在寻找一种精简/高效的方法来防止自动化脚本用请求和/或提交新帖子太快地猛烈抨击我。

我曾想过在会话cookie中包含一个“last_action”时间,并根据每个请求检查它,但无论我设置什么时间,脚本都可以设置为延迟这么长时间。

我也想过抓取IP,如果在x个时间内有太多的请求来自它,那么拒绝这么长时间,但这将需要像redis这样的东西高效运行,我希望避免不得不支付费用。

我更喜欢基于cookie的解决方案,除非像redis这样的东西能证明它的价值。

处理这类情况的“行业标准”是什么?成本/性能权衡最少的方法是什么?

EN

回答 3

Stack Overflow用户

发布于 2012-10-10 02:26:20

没有办法通过cookie实现这一点,因为恶意脚本可以悄悄地丢弃您的cookie。由于您必须支持用户首次访问的情况(即未设置任何cookie),因此无法通过仅考虑客户端上存储的状态来区分真正的新用户和恶意脚本。

您将需要在服务器端跟踪您的用户以实现您的目标。这可以像基于IP的过滤器一样简单,它可以防止同一IP的快速发布。

票数 4
EN

Stack Overflow用户

发布于 2012-10-10 02:45:42

你应该坐下来决定在你的应用场景中你的“核心”问题到底是什么,以及谁将是你的潜在用户。这将帮助您指导正确的解决方案。

根据我的经验,在这个主题中有很多不同的问题和解决方案-没有一个是“一刀切”的

  • 如果您对匿名用户有问题,您可以尝试将尽可能多的功能迁移到“帐户墙”后面。
  • 如果你不能使用帐户墙,那么你最好使用一些基于IP的跟踪,以及其他一些标题/javascript内容。由于公司代理、家庭路由器等原因,单独使用IP可能是一场灾难。您将面临太多误报的风险。如果你添加了浏览器信息,不良用户仍然可以伪造它--但你会惩罚更少的真实用户。
  • 你可能想要一个帐户墙只作为一种强制cookie的方式,或者它可能会插入一个网站标识的想法,其中经验赚取特权
  • 你可能想要一个帐户可以映射到另一个受信任的网站的帐户。例如,我通常信任与Facebook绑定的第三方帐户--他们在处理虚假帐户方面相当得体。
  • 你可能只需要网站“注册”就可以解决验证码问题,或者其他一些不太方便的事情来排除最令人不快的访问。然而,如果对不良行为的奖励足够高,你什么都解决不了。--

我可以聊上一整天。在我看来,你必须首先解决业务逻辑和ux概念-然后技术解决方案要容易得多。

票数 2
EN

Stack Overflow用户

发布于 2012-12-22 22:14:10

我以前使用过的一个非常简单的方法是在注册表单中添加一个使用CSS隐藏的输入(即显示:无)。大多数表单机器人会填写这个字段,而人类不会(因为它是不可见的)。在您的服务器端代码中,您可以拒绝任何填充了输入的POST。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12805732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档