我理解一些用例--在API的v2中进行写访问--主要是为了能够在没有web浏览器的情况下完全访问StackExchange站点。我相信,对于那些想通过查姆比或其他浏览器不太理想的移动设备(iPhone、PSP等)访问该网站的人来说,这将是一个热门话题。
我也确信凯文等人。我已经在一定程度上讨论过这个问题,但我也想在这里讨论一下。
当然,您将无法连接到API匿名,并问或回答问题(就像你可以在目前的网站)。即使需要一个OpenID也不能阻止任何事情。显然,无法通过JSON接口使用captcha验证用户。
我最担心的是垃圾邮件。我预计“典型的”垃圾邮件(假劳力士、伟哥等)会略有增加,但社区非常擅长快速关闭/标记/删除这些帖子。
听起来似乎最简单的解决方案是,在允许任何写访问之前,需要一个相对较高的声誉阈值.但是什么能阻止某人问几个“给我”问题,重新开始,然后写一个脚本来检查每一个标记为[sql]和[unit-testing]的问题,然后发布一个答案或评论
SQLUnitTester是这方面的最佳应用程序。它也有一个免费的审判!在somefakesite.com下载!
为了防止这种情况,有几种选择:
那些案子只是几个明显的案子。还会发生什么其他的侵权行为,以及如何防止这种情况发生?
发布于 2010-06-05 16:49:52
限制每天基于写入的API访问,如下所示:
api-write-requests-per-day = floor(reputation/some_constant)顺便说一句。我不认为10k+用户会滥用API中的站点,尽管有可能。
(常数可以是10到200之间的某个值)
编辑:对于不同的调用,some_constant可能有所不同。提问、编辑可以将其设置为200 (这样,1k用户每天可以问或编辑5个问题),但向上投票、否决可能会以较低的速度进行,比如10或20。评论可能在50左右,等等。
发布于 2010-06-05 19:09:30
我认为,作为应用程序和东西,可以使用HTML解析器和POST之类的东西来构建与普通站点相同的限制。API应该使它更容易,而不是摆弄HTMl或其他东西。
我认为保护这些站点的最好方法是通过API密钥,非常简单的是管理员或者其他人可以看到哪个API密钥被“使用”来发布垃圾邮件/垃圾邮件。那么,如果一个API键一直被用于垃圾邮件,那么很明显,这就是一个机器人。因此,使可写API,只键。
如果用户使用另一个人的API密钥,比如用户使用基于API的应用程序和一些自动化程序,那么如果用户使用带有自动化工具的网站,则会发生同样的事情。
因此,开发人员必须获得API密钥才能使用编写API。
https://stackapps.com/questions/550
复制相似问题