用PHP做服务器接口客户端用http协议POST访问安全性一般怎么做
2017-05-02 14:26
351 查看
用PHP做服务器接口客户端用http协议POST访问安全性一般怎么做
我的问题是,如果不做安全相关处理的话,一些可能改变数据库的操作可能会遭遇垃圾数据提交什么的,毕竟要找到这些信息只要找个http包就可以了系统无用户登录
新手问题(从来没做过服务端开发),如果可以,给几个主流方法的链接,多谢
直观总结方法二:
1.请求头里带用户username和password,到服务器端做验证,通过才继续下边业务逻辑。
有点:防止了服务器端api被随意调用。
缺点:每次都交互用户名和密码,交互量大,且密码明文传输不安全。
2.第一次请求,要求username和password,验证通过,种cookie到客户端,app保存cookie值。
每次请求带上cookie。
点评:和pc上浏览器认证的原理一样了。
以上两点,只有注册用户,才能有权访问业务逻辑,而app有大量的不需要注册数据api
3.制定一个token生成规则,按某些服务器端和客户端都拥有的共同属性生成一个随机串,客户端生成这个串,服务器收到请求也校验这个串。
缺点:随机串生成规则要保密。
比如:一个使用php框架的工程,框架每次交互都会有 module和action两个参数做路由,这样的话,我就可以用下边这个规则来生成token
app要请求用户列表,api是“index.php?module=user&action=list”
app生成token = md5sum ('user'.'2012-11-28'.'#$@%!'.list) = 880fed4ca2aabd20ae9a5dd774711de2;
实际发起请求为 “index.php?module=user&action=list&token=880fed4ca2aabd20ae9a5dd774711de2”
服务器端接到请求用同样方法计算token,
[php] view plain copy
<span class="preprocessor" style="color:rgb(153,153,153); font-weight:bold"><?php</span>
<span class="variable" style="color:teal">$module</span> = <span class="variable" style="color:teal">$_GET</span>[<span class="string" style="color:rgb(221,17,68)">'module'</span>];
<span class="variable" style="color:teal">$action</span> = <span class="variable" style="color:teal">$_GET</span>[<span class="string" style="color:rgb(221,17,68)">'action'</span>];
<span class="variable" style="color:teal">$token</span> = md5sum(<span class="variable" style="color:teal">$module</span>.date(<span class="string" style="color:rgb(221,17,68)">'Y-m-d'</span>,time()).<span class="string" style="color:rgb(221,17,68)">'#$@%!*'</span>.<span class="variable" style="color:teal">$action</span>);
<span class="keyword" style="font-weight:bold">if</span>(<span class="variable" style="color:teal">$token</span> != <span class="variable" style="color:teal">$_GET</span>[<span class="string" style="color:rgb(221,17,68)">'token'</span>]){
alarm(<span class="string" style="color:rgb(221,17,68)">'access deny'</span>);
<span class="keyword" style="font-weight:bold">exit</span>();
}
<span class="preprocessor" style="color:rgb(153,153,153); font-weight:bold">?></span>
先提这三个,都在项目中用过。
相关文章推荐
- 用PHP做服务器接口客户端用http协议POST访问安全性一般怎么做
- 用PHP做服务器接口客户端用http协议POST访问安全性一般怎么做
- 用PHP做服务器接口客户端用http协议POST访问安全性一般怎么做
- PHP服务器接口访问安全性处理
- sql server 2008链接服务器的访问接口缺少 "Microsoft.Ace.OleDb.12.0" 接口 怎么办?
- 怎么把数组从android客户端传递到php服务器
- php服务器开发之 app客户端首页接口开发(一) 概述及方案一:读取数据库方式开发首页接口
- 【转】一个域名是用哪里的DNS来解析的,电脑怎么知道找哪一个DNS呢? 我注册域名的时候会在服务商那里配置DNS解析,一般需要24小时后才能访问,我想知道,解析后的这个数据是不是会同步到世界上所有的DNS服务器呢!如果不是,当我访问我的这个域名的时候,电脑怎么知道去找到我注册的这一家的DNS服务器呢,谁告诉他的呢?
- 新服务器上装java PHP环境有什么一键安装的方便的方法?一般都是怎么安装环境的?
- http接口加密《一》:移动应用中,通过在客户端对访问的url进行加密处理来保护服务器上的数据
- Android网络客户端编程,HttpGet类和HttpPost类使用详解,连接php-mysql服务器
- 安卓app客户端访问php服务器数据交互
- 第一行代码总结:10网络:10.2使用HTTP协议访问网络10.2.1 使用HttpURLConnection10.2使用HTTP协议访问网络 工作原理: 客户端向服务器发出一条HTTP请求,服务器收
- 接口加密《一》:移动应用中,通过在客户端对访问的url进行加密处理来保护服务器上的数据
- php 访问一个网站地址,发送post数据和设置cookie,取得服务器返回的数据(html,setcookie命令设置的cookie);
- 在PHP中怎么接收post过来的JSON数据(可以是接口推送过来的数据)
- Android开发进阶(七)-- Android客户端访问PHP服务器的详细过程
- php怎么将数据库封装,然后提供数据接口让其他API什么的访问
- PHP客户端访问WebService接口
- Android开发进阶(七)-- Android客户端访问PHP服务器的详细过程