php - 保护脚本免受机器人和不需要的请求发布数据

标签 php android token

我正在修改一个通过 WebView 使用网络应用程序的 Android 应用程序。目前,webapp 的代码库是用 ColdFusion 编写的——所以所有的 session 管理都是在 CF 中完成的。 Web 应用程序中有某些钩子(Hook)会强制 Android 应用程序执行 native 功能,有时还会调用 PHP 中的外部脚本。

这些 php 脚本获取发布给它们的数据(userid、friendid 等)——目前 php 脚本只是确保发布的数据有效,然后在数据存在且有效时处理请求。

我正在寻找提高这些 php 脚本安全性的方法,以防止机器人/恶意用户向这些页面发布虚假数据——目前没有什么能阻止任何人发送正确的用户 ID/ friend ID 并让脚本执行。

session 管理将是第一道防线,但由于 webapp 使用不同的语言,我无法使用它 - 有时 php 脚本完全位于不同的域(尽管是同一台服务器)。

我考虑的另一种方法是在注册时创建一个用户 token 以与用户关联,并将其保存在 Android 端 - 然后在请求这些 php 脚本时发送用户 ID 和 token 。并验证该用户的 token 在远程数据库中是否匹配——这将使猜测恶意用户的发布凭据变得更加困难。显然不是最好的,因为 token 存储在本地并通过网络传输,但我离题了。

问题是否有更好的方法来保护这些单独的 php 脚本不被执行,而不使用 session 管理?我的代币想法有意义吗?

注意:我可以对任何/所有请求使用 SSL。

最佳答案

如果您能胜任这项任务,我确切地知道您需要什么。您的 API 需要实现 OAuth2.0。

OAuth 可以为您提供一种将信息传入和传出您的服务的安全方式,同时确保所有 secret 信息都保密并且只有正确的人才能访问该信息。它为每个用户提供了一个独特的签名。

Facebook、Google、Twitter 等使用 OAuth 为开发人员提供一种安全的方式来访问信息,同时防止每个人做他们不应该做的事情。

OAuth 支持 ColdFusion、Java、PHP、C#、dotNet、VB.net、LIST、Javascript、Perl、Python、Ruby 等。

http://oauth.net/

关于php - 保护脚本免受机器人和不需要的请求发布数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9510121/

相关文章:

php - 无法连接到远程 MySQL 服务器(使用默认服务器代替)

android - 如何处理后退按钮转到特定 fragment ?

oauth - 授权服务器不支持使用此方法获取token

ios - Swift 3.0 token过期如何自动调用token?

php - 是否可以将完整的 json 数组插入到单个 mysql 记录中

php - 对于在 APACHE 上运行的 PHP,如何保护 LAN 中的 Windows 机器?

php - Kotlin(Android) MD5 检查与 PHP 签名

android - EditText缩小

java - 在 Android Studio 中使用 java 库有困难,在 IDEA 中工作正常

ruby-on-rails - Rails-api HTTP token 认证