在爬虫快手主播信息的时候,发现只要我改动一下参数,比如第一页 page=1的时候,需要爬下一页,把page改为2发现提示sign验证失败了 也就是说,快手在开发的时候考虑了有人抓包到接口后,通过修改参数的方式继续获取下一页(或者是其他操作,总结就是防止用户截断请求修改数据包后提交的做法) 我估计做法大概是在调用接口前,先对所有参数进行一个md5,当用户改一下值后,md5 出来的值就不对了 然后具体它md5了哪些值,没法得知,所以,尼玛靠接口采集有点悬.... 但是后来发现,每次我发送同一个参数过…
判定 app 是否需要加密:通过 app 表中的 status 字段来判定,加密的字符串为 app 表中的 key 字段. 在获取的客户端和服务器端(数据库表中相应字段)的版本号不一致时,返回 data['is_upload'] = 1 提示是否升级:一致时返回 data['is_upload'] = 0 不提示升级. common.php 中 getApp 方法可以添加缓存(静态/Redis等)缓存. common.php 处理接口公共业务 <?php /** * 处理接口公共业务 */ re…
APP 版本升级以及 APP 演示 ① 版本升级分析以及数据表设计 ② 版本升级接口开发以及 APP 演示 /** * version_upgrade 版本升级信息表 */ CREATE TABLE `version_upgrade` ( `id` ) unsigned NOT NULL AUTO_INCREMENT, `app_id` ) unsigned ' COMMENT '客户端设备id 1安卓pad 2安卓手机 3ios手机 4iospad', `version_id` ) unsig…
APP 上线以后可能遇到的问题: ① APP 强退 ② 数据加载失败 ③ APP 潜在问题 错误日志需要记录的内容 数据表 error_log 字段: id app_id:app 类别 id did:客户端设备号 version_id:版本号 version_mini:小版本号 error_log:错误信息(由 APP 返回,客户端开发工程师开发) error.php 处理 app 错误日志 <?php require_once('./common.php'); class ErrorLog e…
微信开发或者高德地图,百度地图什么的api要使用,使用之前都需要注册一个账号,然后系统会给你一个key,然后调用api的时候把key传给服务器. 平常公司内部开发项目时,直接用mvc为app客户端提供接口,没有做过验证. 本次为了安全,所以需要考虑解决下安全问题.咨询了同学,有人提出,自己定义一个加密字符串+实时的一个时间戳,对称加密.app每次请求接口,把加密字符串传过来,服务器端解密对比下,然后来验证是否是客户端提交过来的合法请求. 正在尝试开发,不知道是否合理有用.…
以静态缓存为例. 修改 file.php line:11 去掉 path 参数(方便),加上缓存时间参数: public function cacheData($k,$v = '',$cacheTime = 0){ //文件名 $filename = $this->_dir.$k.'.'.self::EXT; ..... line:25 把缓存时间设置为 11 位的数字,如果不满 11 位,则在时间前面补 0.再把缓存时间和缓存内容进行拼接: $cacheTime = sprintf('%011…
用于 linux 执行 crontab 命令生成缓存的文件 crop.php <?php //让crontab 定时执行的脚本程序 require_once 'db.php'; require_once 'file.php'; $sql = 'select * from review where is_enabled = 1 order by creation_time desc limit 6'; try{ $connect = DB::getInstance()->connect(); }…
方案一:读取数据库方式 从数据库读取信息→封装→生成接口数据 应用场景: 数据时效性比较高的系统 方案二:读取缓存方式 从数据库获取信息(第一次设置缓存或缓存失效时)→封装(第一次设置缓存或缓存失效时)→返回数据 ↓                                              ↑ 缓存(缓存生效时)     →   →    →    → 方案三:定时读取缓存方式(crontab 定时任务) 封装并返回数据 ↑ 数据库→crontab→缓存 ↑ http 请求 ==…
单例模式 单例模式三大原则: ① 构造函数需要标记为非 public (防止外部使用 new 操作符创建对象),单例类不能在其他类中实例化,只能被自身实例化: ② 拥有一个保存类的实例的静态成员变量 $_instance ③ 拥有一个访问这个实例的公共的静态方法 单例模式(参见 PHP 单例模式代码片段): <?php /* * 单例模式 */ class DB{ static private $_instance; private function __construct(){ } stati…
package ln; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 用于模拟HTTP请求中GET/POST方式 * @author landa *…
package com.vcgeek.hephaestus.utils; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 功能描述 * * @autho…
PHP开发APP接口 [TOC] 课程地址 imooc PHP开发APP接口 学习要点 APP接口简介 封装通信接口方法 核心技术 APP接口实例 服务器端 -> 数据库|缓存 -> 调用接口 -> 客户端 APP接口简介 APP接口介绍 APP如何进行通信 通信格式区别 APP接口做的哪些事儿 APP接口介绍 概念 PHP面向对象的接口(interface)与APP中的接口(API)概念区别: interface是一种特殊的抽象类,只定义一系列抽象方法. // 定义一个接口 inter…
Fiddler抓包测试App接口 使用Fiddler对手机App应用进行抓包,可以对App接口进行测试,也可以了解App传输中流量使用及请求响应情况,从而测试数据传输过程中流量使用的是否合理. 抓包过程: 1.Fiddler设置 1)启动Fiddler->Tools->Fiddler Options…
第1章 APP接口简介 - 课程简介 (:) - APP接口介绍 (:) - 客户端APP通信 (:) 最近学习 - 客户端APP通信格式区别 (:) - APP接口做的哪些事儿 (:) 第2章 封装通信接口方法 - JSON方式封装通信接口 (:) - PHP生成XML数据 (:) - XML方式封装通信接口 (:) - 综合方式封装通信数据方法 (:) 第3章 核心技术 - 静态缓存 (:) - Memcache和Redis缓存技术 (:) - 定时任务 (:) 第4章 APP接口实例 -…
已同步更新至个人blog:http://dxjia.cn/2015/08/android-5-default-sms-app/ 题外话:博友们有没有好用的写博客客户端推荐啊,cnblogs推荐的windows live writer和word都试过,都不是很好用啊,本地看着还可以,但发布出来排版就不是那么好看了. 正题: Android中短信的接收是这样的一个过程: 底层先将短信报给FW,FW处理过后,会将短信通过intent广播的形式广播出来,而注册了接收短信广播的APP们,就能收到并处理短信…
PHP做APP接口时,如何保证接口的安全性? 1.当用户登录APP时,使用https协议调用后台相关接口,服务器端根据用户名和密码时生成一个access_key,并将access_key保存在session中,将生成的access_key和session_id返回给APP端. 2.APP端将接收到的access_key和session_id保存起来 3.当APP端调用接口传输数据时,将所传数据和access_key使用加密算法生成签名signature,并将signature和session_i…
在探讨这个问题之前,先要确认一点的是,作为一名互联网Coder,无论你是前端或者后端你都要对http请求要有一定的了解,知道http特性,要清楚的了解http里面的Request与Response是什么,知道为什么网站会存在cookie,session,验证码的意义和必要性.因为探讨APP接口的安全性就是在探讨HTTP请求的安全性: 我一般把APP接口分为三类,普通接口,表单接口,会员接口:本文重点讨论会员接口 普通接口 一般为GET请求,比如获取新闻列表 GET http://Example.…
这篇文章主要介绍了基于laravel制作APP接口(API)的相关资料,需要的朋友可以参考下 前期准备 前言,为什么做以及要做个啥本人姓小名白,不折不扣编程届小白一名,但是自从大一那会儿接触到编程这件奇妙的事情,就完完全全的陷入的程序的世界. 这不,最近又开始折腾APP了,话说现在开发一款APP真是容易,只用JavaScript和一点点HTML+css技术就可以完成.但是做APP的后台就不一样了.开发了APP,想让读点数据进去,那我们就要去开发个后台了. laravel框架,是我最喜欢的PHP框…
人生就如一列永不停止的列车,no one knows when or where to stop.总有那些美好,值得永远怀念.也总有那些希望,值得你无怨无悔的付出,追逐.去年年底带着女儿一起坐火车会湖北老家,她在火车上,三岁的样子,活泼,调皮,可爱的样子,永远停在那儿,不会有一样的了吧.cherish this memory forever. 现在app这么火,作为一个phper,应该知道如何写app的接口,下面做一个讲解. Index: 第1章 APP接口简介-第2章 封装通信接口方法 2-1…
Java版本APP接口安全设计 安全设计分为两种: 1.传输安全. 2. 会话安全. 1.传输安全 怎么保证接口经过网络传输不被抓包获取? 1.如果只是使用对称性算法,破解APP拿到加密密钥就可以解密出截获的传输数据.2.如果只使用非对称性算法,加密数据长度有限制.3.解决方案:对称性算法+非对称性算法. 会话相关 1.每次登登录,都产生一个唯一加密KEY,给加密KEY设置有效时间.这样用户嗅探后,也无法伪造会话.2.传递的参数,除了经过RSA加密过的KEY,其他多参数都统一封装到一个参数中pa…
1.JSON方式封装通信接口: 封装: response.php <?php // JSON方式封装通信接口 // 定义 response类 class Response { // 定义一个静态方法,作用:按json方式产生数据 // 规范通信数据:参数一:状态码,参数二:消息提示(初始值为空),参数三:组装后的数据(初始值为空数组) // 注释码: /** * 按json方式输出通信数据 * @param integer(数字类型) $code 状态码 * @param string(字符串类…
移动APP接口是怎么保证安全性的,可以采用https,或者是非对称加密. 接口加密的目的是防止被别人用抓包工具,抓包后篡改数据. 关于加密算法常见的有对称加密(DES)和非对称加密(RSA) 对称加密(DES):加密和解密用的是同一个密钥 import java.security.SecureRandom; import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.SecretKeyFactory…
最近研究了下swagger多版本的维护,网上的文章千篇一律,无法满足我的需求,分享下我的使用场景以及实现 演示环境:Visual Studio 2019.Asp.NET WebAPI.NET Framework 4.5.2.Swashbuckle.Core 5.6.0 本文地址:https://www.cnblogs.com/oppoic/p/14380233.html 一.背景 BS应用没有接口版本的概念,因为网站一上线,接口和页面都是新的,服务端不需要维护老接口 但是对于手机APP,服务端就…
引言 接口是APP的重要组成部分,数据是APP的核心,接口是连接APP和数据的纽带. 一般情况下,APP中会有大量的接口,再加上版本的变化,接口的升级,一个接口 可能会衍生出很多个稍有差异的接口,这个时候接口如果维护的不好,后边会乱为 一锅粥,客户端不同版本使用不同的接口名(xxxv1,xxxv2,xxxv3.....) 这个对客户端来说貌似是很蛋疼的事情,如果能把版本控制完全放到服务端是不是 更友善点,也会比客户端灵活很多,发版出去之后也可以很优雅的修改. 设计 这个并非我凭空想出来的,是在公…
前言 好久不曾写点啥,去年换到新公司组测试团队与培养建设花费大量时间与精力,终于架构成型与稳定有时间可以打打酱油了.很久没有总结点啥,提笔想写的内容太多,先放APP接口自动化的内容吧,这个估计大家比较有兴趣. 目录 一.框架环境准备 1.1 需要的LIB包 1.2 相关配置安装      1.2.1 eclipse安装testng插件      1.2.2 美化测试报告插件Reportng配置      1.2.3 其他Lib包引入 1.1 需要的LIB包 └─lib       httpcli…
最近一段时间一直在做APP接口,总结一下APP接口开发过程中的注意事项: 1.效率:接口访问速度 APP有别于WEB服务,对服务器端要求是比较严格的,在移动端有限的带宽条件下,要求接口响应速度要快,所有在开发过程中尽量选择效率高的框架,PHP建议使用YAF框架. 2.数据格式 最好使用JSON格式数据,因为JSON有较好的跨平台性.对于 3.数据量 按需分配,APP客户端需要什么数据就返回什么数据,过多的数据量影响处理速度,最重要的是影响传输效率. 4.接口.参数命名准确 无论是接口还是参数,命…
<?php /** * Description: App 接口 * Create date:2015-10-19 13:36 * Author: zhaoyingnan **/ class Response { /** * 综合方式 * @author zhaoyingnan 2015-10-19 11:24 * @param int $iCode 状态码 * @param string $sMsg 提示信息 * @param mix $mixData data * @param string…
最近一段时间一直在做APP接口,总结一下APP接口开发过程中的注意事项: 1.效率:接口访问速度 APP有别于WEB服务,对服务器端要求是比较严格的,在移动端有限的带宽条件下,要求接口响应速度要快,所有在开发过程中尽量选择效率高的框架,PHP建议使用YAF框架. 2.数据格式 最好使用JSON格式数据,因为JSON有较好的跨平台性.对于 3.数据量 按需分配,APP客户端需要什么数据就返回什么数据,过多的数据量影响处理速度,最重要的是影响传输效率. 4.接口.参数命名准确 无论是接口还是参数,命…
关于APP接口设计 http://blog.csdn.net/gebitan505/article/details/37924711/…
现在基本每个公司都做APP,所以大家都面临 APP接口版本兼容的问题. iOS和android 要不断开发新版本,很多服务端开发都是在以前接口的逻辑上进行修改.新的APP和接口开发后,接口如何兼容老的APP? 有的公司 每次发布完APP,就强制用户更新到最新版本.不推荐这样,因为用户体验太差. 就算是用 强制更新,在苹果审核期间,新的APP接口和 老的接口 也必须能同时使用. 下面我们说下如何做,大家有不同意见可以 留言讨论. 一.客户端 做兼容,接口不用做兼容 1.APP强制更新(不建议) 接…