【问题标题】:Securing AJAX API保护 AJAX API
【发布时间】:2012-05-28 08:54:15
【问题描述】:

我有一个 API (1),我在其上构建了一个带有自己的 AJAX API (2) 的 Web 应用程序。这样做的原因是不公开源 API。 但是,Web 应用程序使用 AJAX(通过 JQuery)从其 AJAX API 获取新数据,检索到的数据当前是 XML。 最近,我使用授权算法保护了主要 API (1)。但是,我也想保护 Web 应用程序,使其无法被解析。目前正在对其进行解析以获取用于调用 AJAX API 的哈希,该 API 返回 XML。

我的问题:如何提高安全性并降低其他人能够解析我的 Web 应用程序的可能性。 我唯一的想法是:停止发送 XML,而是发送 HTML。使用闪光灯(但是,这不是一个选项)。

我了解,由于该站点是公开的,并且无法实现登录,因此很难拒绝机器人(非合法用户)的访问。此外,Flash 不是一种选择……它永远不会;)

编辑
我指的Web应用程序:https://bikemap.appified.net/

【问题讨论】:

  • “我也想保护 Web 应用程序,因此它无法被解析”——这是不可能的。如果浏览器可以显示某些东西 - 它可以以非常相似的方式解析浏览器的工作方式
  • 另外提一下:AJAX API 与通用页面没有什么不同,应该以完全相同的方式保护
  • 我都知道。第一个,写“我有一个 API 和一个 API……”只会让阅读变得混乱。其次,我写道:“我知道,由于该站点是公开的,并且无法实现登录,因此很难拒绝访问机器人”,所以是的,我理解您的两点。
  • 请再次阅读问题。我写道:“我怎样才能提高安全性并减少其他人能够解析我的 Web 应用程序的可能性。”。
  • 什么好?我们不知道您目前拥有什么。顺便说一句,防止任何抓取的 100% 方法是关闭服务器

标签: javascript jquery security api


【解决方案1】:

这有点奇怪。您希望锁定您自己的 Web 应用程序所依赖的系统来工作。这几乎总是灾难的根源。

Web 应用程序应该总是被边缘化,所以真正的安全必须来自服务器;缓送、会话令牌、限制等。

如果这已经到位,我看不出有什么理由应该在您自己的 Web 应用程序中跳出圈子来给机器人一个更艰难的时间……除非您真的想将人类与机器人分开 ;-)

减轻重构痛苦的一种方法是将$.ajax 函数包装在一段代码中,该代码可以签署传出请求(或以某种方式向其中添加字段)......然后缩小/模糊该代码并希望它不会被这么快解码。

【讨论】:

  • 我有,而且已经到位。主要 API 用于 iOS 和 Android 应用程序。 Web 应用程序在此之上创建了自己的层。
  • @PaulPeelen 那为什么不在 Web 应用程序中添加授权呢?
  • 因为用户是普通的日常消费者。这不是私人服务,只是机器人的私人服务,法律声明无济于事。
  • @PaulPeelen Aha,所以我们正在着手进行“合理怀疑”机器人检测:)
  • @PaulPeelen 用我将如何解决它来更新我的答案,但这仍然很困难......有很多指标需要考虑 =/
猜你喜欢
  • 1970-01-01
  • 2012-05-05
  • 2011-02-11
  • 2015-05-12
  • 2012-02-03
  • 1970-01-01
  • 1970-01-01
  • 2014-08-27
  • 2018-04-28
相关资源
最近更新 更多