2012-05-28 79 views
0

我有一个API(1),我用它自己的AJAX API(2)构建了一个Web应用程序。原因是不公开源API。 但是,Web应用程序使用AJAX(通过JQuery)从其AJAX API获取新数据,检索的数据当前使用XML。 最近我用授权算法确保了主API(1)。但是,我想确保Web应用程序的安全,因此无法解析。目前正在分析获取用于调用返回XML的AJAX API的哈希。保护AJAX API

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

据我所知,由于该网站是公开的,并且不能登录,所以很难拒绝对机器人(非合法用户)的访问。此外,Flash是不是一种选择......它永远不会是;)

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

+2

“我想要保护Web应用程序以及它不能被解析”---这是不可能的。如果浏览器可以显示某些内容 - 可以使用与浏览器工作方式非常类似的方式进行分析 – zerkms

+2

另一个提到:AJAX API与普通页面没什么区别,应该以完全相同的方式进行保护 – zerkms

+0

我知道所有这些。第一个,写“我有一个API和一个API ......”只是让阅读困惑。其次,我写道:“我明白,由于该网站是公开的,并且不能登录,所以拒绝访问机器人很难”,所以是的,我明白你的观点。 –

回答

2

这有些奇怪的要求;您希望锁定您自己的Web应用程序依赖其工作的系统。这几乎总是一场灾难。

Web应用程序应该总是期望被排除在外,所以真正的安全性必须来自服务器; tarpitting,会话令牌,节流等等。

如果已经到位,我看不到任何理由为什么要在自己的Web应用程序中跳过这些环节,给机器人更艰难的时间......除非您真的想要将人与机器人分开;-)

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

+0

我有,那已经到位了。主要API用于iOS和Android应用程序。 Web应用程序在其上创建自己的图层。 –

+0

@PaulPeelen那么为什么不在Web应用程序中添加授权呢? –

+0

因为用户每天都是正常的消费者。这不是私人服务,只是来自机器人,而法律通知不起作用。 –