Web安全之SQL注入攻击技巧与预防

目录:

Web安全简史

在Web1.0一时,人们更多是关爱服务器端动态脚本语言的安全问题,比如将一个可进行脚本(俗称Webshell)通过脚本语言的尾巴上传到服务器上,从而得到服务器权限。在Web发展初期,随着动态脚本语言的上扬和推广,以及早期工程师对平安问题认知不足导致众多”安全血案”的发出,至今如故遗留下许多历史问题,比如PHP语言至今依然不可能从语言本身杜绝「文件包含漏洞」(参见这里),只好依靠工程师可以的代码规范和安全意识。

陪同着Web2.0、社交网络、博客园等一多级新型互联网产品的兴起,基于Web环境的互联网应用更加普遍,Web攻击的伎俩也更为多样,Web安全史上的一个紧要里程碑是大概1999年发现的SQL注入攻击,之后的XSS,CSRF等攻击手段更为强大,Web攻击的笔触也从服务端转向了客户端,转向了浏览器和用户。

在随州领域,一般用帽子的水彩来比喻黑客的善与恶,白帽子是指那么些工作在反黑客领域的技术专家,这个群体是”善”的的表示;而黑帽子则是指那一个使用黑客技术造成损坏甚至谋取私利造成违法的部落,他们是”恶”的意味。

“白帽子”和”黑帽子”是七个完全周旋的部落。对于黑帽子而言,他们只要找到系统的一个切入点就能够达到入侵破坏的目的,而白帽子必须将团结系统所有可能被突破的地点都设防,以保证系统的定西运行。

这看起来好像是不公道的,但是安全世界里的条条框框就是这般,可能我们的网站1000处都布防的很好,考虑的很周到,但是即便有一个地方疏忽了,攻击者就会选用这多少个点展开突破,让我们其余的1000处努力白费。

一. 概况

广泛攻击格局

无独有偶,在Web安全领域,常见的攻击形式大概有以下三种:
1、SQL注入攻击
2、跨站脚本攻击 – XSS
3、跨站伪造请求攻击 – CSRF
4、文件上传漏洞攻击
5、分布式拒绝服务攻击 – DDOS

说个题外话,本来这篇小说一先导的题目叫做
「Web安全之常见攻击模式与预防」,我本来想把下边的这5种办法都全体写在一篇随笔里,不过刚写完第一个SQL注入攻击的时候,就意识小说篇幅已经不短了,又很难再举行大幅度的简短,所以索性把Web安全分成一个多元,分多篇文章来显现给我们,下边你看来的就是首先篇「Web安全之SQL注入攻击的技艺与预防」。

告诉背景

SQL注入常见攻击技巧

SQL注入攻击是Web安全史上的一个重要里程碑,它从1999年首次跻身人们的视线,至今已经有十几年的历史了,尽管我们前几日曾经有了很圆满的严防对策,可是它的威力仍然拒绝小视,SQL注入攻击至今依旧是Web安全领域中的一个重点组成部分。

以PHP+MySQL为例,让大家以一个Web网站中最中央的用户系统来做实例演示,看看SQL注入究竟是怎么爆发的。

1、成立一个名为demo的数据库:
<pre>
CREATE DATABASE demo DEFAULT CHARACTER SET utf8 COLLATE
utf8_general_ci;
</pre>

2、创造一个名为user的数据表,并插入1条演示数据:
<pre>
CREATE TABLE demo.user (
uid INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT
‘用户uid’,
username VARCHAR( 20 ) NOT NULL COMMENT ‘用户名’,
password VARCHAR( 32 ) NOT NULL COMMENT ‘用户密码’
) ENGINE = INNODB;
INSERT INTO demo.user (uid, username, password) VALUES (‘1’,
‘plhwin’, MD5(‘123456’));
</pre>

体验产品

实例一

透过传播username参数,在页面打印出这么些会员的详细新闻,编写
userinfo.php 程序代码:

<pre>
<?php
header(‘Content-type:text/html; charset=UTF-8’);
$username = isset($_GET[‘username’]) ? $_GET[‘username’] : ”;
$userinfo = array();
if($username){
//使用mysqli驱动连接demo数据库
$mysqli = new mysqli(“localhost”, “root”, “root”, ‘demo’);
$sql = “SELECT uid,username FROM user WHERE username='{$username}'”;
//mysqli multi_query 协理实施多条MySQL语句
$query = $mysqli->multi_query($sql);
if($query){
do {
$result = $mysqli->store_result();
while($row = $result->fetch_assoc()){
$userinfo[] = $row;
}
if(!$mysqli->more_results()){
break;
}
} while ($mysqli->next_result());
}
}
echo ‘<pre>’,print_r($userinfo, 1),'</pre>’;
</pre>

地点这么些顺序要实现的成效是依照浏览器传入的用户名参数,在页面上打印出那些用户的详细音讯,程序写的这样复杂是因为自身利用了mysqli的驱动,以便能应用到
multi_query
方法来帮助同时实施多条SQL语句,这样能更好的验证SQL注入攻击的危害性。

倘若我们可以通过 http://localhost/test/userinfo.php?username=plhwin
这么些URL来拜会到具体某个会员的详情,正常意况下,假若浏览器里传到的username是法定的,那么SQL语句会履行:

<pre>
SELECT uid,username FROM user WHERE username=’plhwin’
</pre>

不过,如若用户在浏览器里把传播的username参数变为
plhwin';SHOW TABLES-- hack,也就是当URL变为
http://localhost/test/userinfo.php?username=plhwin';SHOW TABLES-- hack
的时候,此时我们先后实际履行的SQL语句变成了:

<pre>
SELECT uid,username FROM user WHERE username=’plhwin’;SHOW TABLES–
hack’
</pre>

只顾:在MySQL中,最终连续的六个减号表示忽略此SQL减号后边的言辞,我本机的MySQL版本号为5.6.12,近日几乎所有SQL注入实例都是直接选取七个减号结尾,不过实际测试,这么些本子号的MySQL要求多少个减号前面总得要有空格才能健康注入,而浏览器是会自行删除掉URL尾部空格的,所以大家的流入会在三个减号前面统一添加任意一个字符或单词,本篇小说的SQL注入实例统一以
-- hack 结尾。

经过地点的SQL注入后,原本想要执行查询会员详情的SQL语句,此时还附加执行了
SHOW TABLES;
语句,这分明不是开发者的原意,此时得以在浏览器里观望页面的输出:

<pre>
Array
(
[0] => Array
(
[uid] => 1
[username] => plhwin
)

[1] => Array
    (
        [Tables_in_demo] => user
    )

)
</pre>

你能清晰的看看,除了会员的消息,数据库表的名字user也被打印在了页面上,假使滋事的黑客此时将参数换成
plhwin';DROP TABLE user-- hack,这将生出灾难性的不得了结果,当您在浏览器中举行
http://localhost/test/userinfo.php?username=plhwin';DROP TABLE user-- hack
这些URL后,你会意识所有 user 数据表都消失不见了。

透过地点的事例,大家早就认识到SQL注入攻击的危害性,不过依然会有人心存疑问,MySQL默认驱动的mysql_query办法现在已经不匡助多条语句同时执行了,大部分开发者怎么可能像下面的言传身教程序这样又麻烦又不安全。

不错,在PHP程序中,MySQL是不容许在一个mysql_query中使用分号执行多SQL语句的,这使得众多开发者都以为MySQL本身就不允许多语句执行了,但实在MySQL早在4.1本子就同意多语句执行,通过PHP的源代码,大家发现其实只是PHP语言自身限制了这种用法,具体意况我们可以看看这篇小说「PHP+MySQL多语句执行」。

经验条件

实例二

假使系统不同意同时执行多条SQL语句,那么SQL注入攻击是不是就不再这样可怕吗?答案是否定的,我们照样以地点的user数据表,用Web网站中常用的会员登录系统来做此外一个现象实例,编写程序login.php,代码如下:

<?php
if($_POST){
$link = mysql_connect(“localhost”, “root”, “root”);
mysql_select_db(‘demo’, $link);
$username = empty($_POST[‘username’]) ? ” :
$_POST[‘username’];
$password = empty($_POST[‘password’]) ? ” :
$_POST[‘password’];
$md5password = md5($password);
$sql = “SELECT uid,username FROM user WHERE username='{$username}’ AND
password='{$md5password}'”;
$query = mysql_query($sql, $link);
$userinfo = mysql_fetch_array($query, MYSQL_ASSOC);
if(!empty($userinfo)){
//登录成功,打印出会员消息
echo ‘<pre>’,print_r($userinfo, 1),'</pre>’;
} else {
echo “用户名不设有或密码错误!”;
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset=”utf-8″>
<title>Web登录系统SQL注入实例</title>
</head>
<body>
<form name=”LOGIN_FORM” method=”post” action=””>
登录帐号: <input type=”text” name=”username” value=”” size=30
/><br /><br />
签到密码: <input type=”text” name=”password” value=”” size=30
/><br /><br />
<input type=”submit” value=”登录” />
</form>
</body>
</html>

这时候如果输入正确的用户名 plhwin 和密码 123456,执行的SQL语句为:

<pre>
SELECT uid,username FROM user WHERE username=’plhwin’ AND
password=’e10adc3949ba59abbe56e057f20f883e’
</pre>

上边语句没有其他问题,可以见见页面打印出了登录成功后的会员新闻,但万一有捣蛋鬼输入的用户名为
plhwin' AND 1=1-- hack,密码任意输入,比如aaaaaa,那么拼接之后的SQL查询语句就变成了之类内容:
<pre>
SELECT uid,username FROM user WHERE username=’plhwin’ AND 1=1– hack’
AND password=’0b4e7a0e5fe84ad35fb5f95b9ceeac79′
</pre>

实践上边的SQL语句,因为1=1是永久创制的准绳,这代表黑客只需要领悟旁人的会员名,无需领会密码就能顺畅登录到系统。

二. 市场现状

怎样规定SQL注入漏洞

通过以上的实例,我们仍然还会有疑难:黑客并不知道我们程序代码的逻辑和SQL语句的写法,他是怎么确定一个网站是否留存SQL注入漏洞呢?一般说来有以下2种途径:

行业市场

1、错误指示

一旦目标Web网站开启了错误展现,攻击者就足以由此反复调整发送的参数、查看页面打印的错误信息,臆想出Web网站使用的数据库和支付语言等根本音信。

急需痛点

2、盲注

除非运维人员大意,否则大部分的Web运营网站应当都关门了不当提醒新闻,此时攻击者一般会拔取盲注的技巧来拓展多次的尝试判断。
依旧以地点的数目表user为例,我们事先的查阅会员详情页面的url地址为userinfo.php?username=plhwin,此时黑客分别走访userinfo.php?username=plhwin' AND 1=1-- hackuserinfo.php?username=plhwin' AND 1=2-- hack,假使前者访问能回去正常的音信而后者不可能,就大旨得以判明此网站存在SQL注入漏洞,因为后者的1=2本条表达式永远不创造,所以就是username传入了不错的参数也无力回天透过,因而可以预计这些页面存在SQL注入漏洞,并且可以由此username参数举行注入。

三. 产品分析

什么守护SQL注入

对于服务器配置范围的严防,应该保证生产条件的Webserver是关门错误音讯的,比如PHP在生养条件的配置文件php.ini中的display_errors应该安装为Off,这样就关闭了错误提醒,上边我们更多的从编码的角度来看看如何防范SQL注入。

上边用五个实例分析了SQL注入攻击的技能,能够见到,但凡有SQL注入漏洞的程序,都是因为程序要经受来自客户端用户输入的变量或URL传递的参数,并且这个变量或参数是构成SQL语句的一有些,对于用户输入的内容或传递的参数,大家相应要天天保持警惕,这是平安世界里的「外部数据不可相信」的条件,纵观Web安全世界的各个攻击格局,大多数都是因为开发者违反了这一个规则而致使的,所以自然能体悟的,就是从变量的检测、过滤、验证出手,确保变量是开发者所预期的。

要求分析

1、检查变量数据类型和格式

只要您的SQL语句是相仿where id={$id}那种形式,数据库里装有的id都是数字,那么就应有在SQL被实践前,检查确保变量id是int类型;尽管是接受邮箱,这就应当检查并严格保证变量一定是邮箱的格式,其他的档次比如日期、时间等也是一个道理。总括起来:万一是有固定格式的变量,在SQL语句执行前,应该严酷按照固定格式去检查,确保变量是我们预料的格式,这样很大程度上可以避免SQL注入攻击。

譬如,大家面前接受username参数例子中,我们的产品设计应该是在用户注册的一起来,就有一个用户名的规则,比如5-20个字符,只能由大小写字母、数字以及一些安全的符号组成,不包含特殊字符。此时大家应有有一个check_username的函数来展开联合的自我批评。可是,依旧有成千上万例外处境并无法拔取到这一准则,比如著作发布系列,评论系统等必须要允许用户提交任意字符串的面貌,这就需要运用过滤等此外方案了。

盈利情势

2、过滤特殊符号

对于无法确定固定格式的变量,一定要举行特殊符号过滤或转义处理。以PHP为例,日常是利用addslashes函数,它会在指定的预定义字符前添加反斜杠转义,那一个预定义的字符是:单引号 (') 双引号 (") 反斜杠 (\) NULL

来看2条SQL语句:
<pre>
$uid = isset($_GET[‘uid’]) ? $_GET[‘uid’] : 0;
$uid = addslashes(uid);
$sql = “SELECT uid,username FROM user WHERE uid='{$uid}'”;
</pre>
以及
<pre>
$uid = isset($_GET[‘uid’]) ? $_GET[‘uid’] : 0;
$uid = addslashes(uid);
$sql = “SELECT uid,username FROM user WHERE uid={$uid}”;
</pre>

地点四个查询语句都通过了php的addslashes函数过滤转义,但在安全性上却大不相同,在MySQL中,对于int类型字段的规则查询,上边个语句的查询功用完全等同,由于第一句SQL的变量被单引号包含起来,SQL注入的时候,黑客面临的第一问题是必须要先闭合前边的单引号,这样才能使前边的口舌作为SQL执行,并且还要注释掉原SQL语句中的前边的单引号,这样才得以成功注入,由于代码里使用了addslashes函数,黑客的攻击会无从出手,但第二句没有用引号包含变量,这黑客也不要考虑去关掉、注释,所以即使相同运用addslashes转义,也仍然存在SQL攻击漏洞。

对于PHP程序+MySQL构架的程序,在动态的SQL语句中,使用单引号把变量包含起来异常addslashes函数是应对SQL注入攻击的灵光手法,但这做的还不够,像下面的2条SQL语句,遵照「检查数据类型」的尺度,uid都应当通过intval函数格式为int型,这样不光能有效避免第二条语句的SQL注入漏洞,仍能使得程序看起来更自然,尤其是在NoSQL(如MongoDB)中,变量类型一定要与字段类型相匹配才可以。

从地点可以阅览,第二个SQL语句是有漏洞的,然而出于接纳了addslashes函数,你会意识黑客的口诛笔伐语句也存在不可以采取特殊符号的基准限制,类似where username='plhwin'如此这般的攻击语句是可望而不可及执行的,可是黑客可以将字符串转为16进制编码数据或采纳char函数举行转账,同样能达标同等的目标,假若对这部分内容感兴趣,可以点击那里查看。而且由于SQL保留首要字,如「HAVING」、「ORDER
BY」的存在,尽管是按照黑白名单的过滤方法仍旧会有或多或少问题,那么是否还有此外办法来防御SQL注入呢?

出品结构图

3、绑定变量,使用预编译语句

MySQL的mysqli使得提供了预编译语句的辅助,不同的程序语言,都各自有应用预编译语句的艺术,我们这里如故以PHP为例,编写userinfo2.php代码:

<pre>
<?php
header(‘Content-type:text/html; charset=UTF-8’);
$username = isset($_GET[‘username’]) ? $_GET[‘username’] : ”;
$userinfo = array();
if($username){
//使用mysqli驱动连接demo数据库
$mysqli = new mysqli(“localhost”, “root”, “root”, ‘demo’);
//使用问号替代变量地点
$sql = “SELECT uid,username FROM user WHERE username=?”;
$stmt = $mysqli->prepare($sql);
//绑定变量
$stmt->bind_param(“s”, $username);
$stmt->execute();
$stmt->bind_result($uid, $username);
while ($stmt->fetch()) {
$row = array();
$row[‘uid’] = $uid;
$row[‘username’] = $username;
$userinfo[] = $row;
}
}
echo ‘<pre>’,print_r($userinfo, 1),'</pre>’;
</pre>

从地点的代码能够见到,我们先后里并不曾动用addslashes函数,不过浏览器里运行
http://localhost/test/userinfo2.php?username=plhwin' AND 1=1-- hack里得不到另外结果,表明SQL漏洞在这些顺序里并不设有。

骨子里,绑定变量使用预编译语句是提防SQL注入的特等模式,使用预编译的SQL语句语义不会生出改变,在SQL语句中,变量用问号?意味着,黑客就是本事再大,也无能为力改变SQL语句的构造,像下边例子中,username变量传递的plhwin' AND 1=1-- hack参数,也只会当作username字符串来解释查询,从根本上杜绝了SQL注入攻击的发出。

流程图

数据库音信加密安全

深信不疑我们都还对二零一一年显露的CSDN拖库事件记忆犹新,这件事情导致CSDN处在风口浪尖被世家痛骂的案由就在于他们甚至公开存储用户的密码,这引发了科技界对用户新闻安全尤为是密码安全的分明关注,我们在预防SQL注入的爆发的同时,也相应未雨绸缪,说不定下一个被拖库的就是您,何人知道吧。

在Web开发中,传统的加解密大致可以分为三种:

1、对称加密:即加密方和解密方都应用同样的加密算法和密钥,这种方案的密钥的保存异常重大,因为算法是当众的,而密钥是保密的,一旦密匙泄露,黑客还可以够轻易解密。常见的对称加密算法有:AESDES等。

2、非对称加密:即利用不同的密钥来进展加解密,密钥被分成公钥和私钥,用私钥加密的数码必须运用公钥来解密,同样用公钥加密的数额必须用相应的私钥来解密,常见的非对称加密算法有:RSA等。

3、不可逆加密:利用哈希算法使数据加密之后不能解密回原数据,这样的哈希算法常用的有:md5SHA-1等。

在我们地方登录系统的示范代码中,$md5password = md5($password);从那句代码可以见到使用了md5的不可逆加密算法来囤积密码,这也是多年来业界常用的密码加密算法,不过这如故不安全。为何吗?

这是因为md5加密有一个特性:同样的字符串经过md5哈希总计之后生成的加密字符串也是如出一辙的,由于业界接纳这种加密的办法长期,黑客们也准备了协调强大的md5彩虹表来逆向匹配加密前的字符串,这种用于逆向反推MD5加密的彩虹表在互联网上随处可见,在谷歌里使用md5 解密用作关键词搜索,一下就能找到md5在线破解网站,把大家插入用户数据时候的MD5加密字符串e10adc3949ba59abbe56e057f20f883e填入进去,弹指间就能博得加密前的密码:123456。当然也并不是每一个都能打响,但足以肯定的是,那么些彩虹表会越来越健全。

所以,我们有迫切的需要采取更好的法子对密码数据开展不可逆加密,通常的做法是为各种用户确定不同的密码加盐(salt)后,再混合用户的真正密码举行md5加密,如以下代码:

<pre>
//用户注册时候设置的password
$password = $_POST[‘password’];
//md5加密,传统做法直接将加密后的字符串存入数据库,但这不够,我们继承改进
$passwordmd5 = md5($password);
//为用户生成不同的密码盐,算法可以依据自己事务的急需而不同
$salt = substr(uniqid(rand()), -6);
//新的加密字符串包含了密码盐
$passwordmd5 = md5($passwordmd5.$salt);
</pre>

效能体验分析

小结

1、不要随意打开生产环境中Webserver的谬误展现。
2、永远不要相信来自用户端的变量输入,有固定格式的变量一定要严谨检查对应的格式,没有固定格式的变量需要对引号等特殊字符举办必要的过滤转义。
3、使用预编译绑定变量的SQL语句。
4、做好数据库帐号权限管理。
5、严谨加密处理用户的机密信息。

四. 产品分析统计及展望


以下为正文:

概况

1.报告背景

互联网出行已经撬动千亿级市场范围,依照易观数据,2016年,市场交易规模为
1,712 亿元,到 2018 年将达2, 659
亿元。而滴滴出行作为最大的外出平台,更在 2015 年完成14.3
亿订单。分析出行市场对于了然共享出行的大势有所举足轻重意义。本文选用了脚下出行市场份额最大的两家商店滴滴出行、首汽约车举办分析比较。本文将从产品的商海、产品布局体验、产品商业格局等地方对滴滴出行、首汽约车举行剖析。

2.体验产品:滴滴出行(1.2)、首汽约车(5.1.6)

3.感受条件:Iphone6s ios10.3.3

市面现状

1.行当市场

1.1
political:2015年8月,交通运输部对外发布了《关于加深改进进一步推动出租汽车行业正常向上的点拨意见》(征求意见稿)和《网络预约出租汽车经营服务管理暂行办法》
(征求意见稿)。两份文件将“专车(快车)”归类为互联网预约出租车。文件要
求“专车(快车)”经营者需符合6项经营规范;此外,车辆需拿到出租车营业许可,驾驶员需得到相应的从业资格证。

1.2
economical:2014年全年全国居民人均可控制收入20167元,城镇居民人均可决定收入28844元;全国居民人均消费开支14491元,城镇
居民人均花费支付19968元。

1.3
social:路边招手打车难出租车服务质地差;中高端群体外出需求难满足;汽车限购,无车用户出行难;汽车限号,有车用户出行难

1.4
technological:移动互联网、智能移动终端的普及;大数目技术的应用;GPS定位系统的应用;后台调度系统的利用;移动端支出的产出与推广;在线评价连串的面世与运用

2.需求痛点

2.1 专车(快车)预约服务出现此前,司机与游客配合效能低;

2.2
出租车司机愿意接送远距离游客,以赢得较高的入账,中远距离的乘客被拒载的可能高

2.3 传统出租车不可以满足商务用户出行的高端需求。

2.4
用户要求日益出现的需要多样化。用户的外出最近不但限于物理地方的运动,而是在大体位移的基础上衍生出更多的急需,如商务出行需要达成更加高档的车型,这部分用户的价钱敏感性相对来说较普通用户较低。其次还衍生出代驾等衍生市场。


产品分析

1.需求分析

1.1
滴滴出行:滴滴出行从二〇一二年上线时提供的是出租车在线叫车服务,为止二零一七年10月,滴滴出行从单一的出租车在线叫车服务提供商衍生和变化成为了集出租车、快车、专车、豪华车、公交、代驾、顺风车、小巴、租车、单车于一体的满意用户出行的所有平台型集团,分别解决了用户的平凡出行、高端出行、商务出行、通勤、代驾、低端出行、最后一公里出行等多样性的复合需求。

1.2
首汽约车:首汽约车紧要解决的是用户的高端出行需求,为追求灵魂出行的用户提供方便、舒适、出行的外出服务

  1. 盈利形式

滴滴出行:滴滴重要为平台型公司,公司目前不运营任何车辆,通过对在平台上注册的个体车用户举办管制,从个人用户的车费中开展抽成。成本构成方面紧要有为自有员工基金。(由于近期上市集团中并未像样商业形式的商号,故无类似数据供参考)

首汽约车:公司享有的车子所有为团结举行营业,与具有的司机签订劳动合同,商业格局中获益重要为交通费收入、成本首要有职工薪酬及燃油费及广告费等等。按照当下新三板上市集团中国优车的2016年报数据,职工薪酬大概占所有资金、费用的33%,自有车子燃油费占所有资产及花费的14%左右(供相比参考)。

  1. 产品结构图

滴滴出行:详见下图

首汽约车:详见下图

4.流程图

滴滴出行:详见下图

首汽约车:详见下图

  1. 效率体验分析

5.1 表现层

滴滴出行:全体风格方面,滴滴出行采取了与logo相似的粉色,白色相结合的UI风格,主界面中上局部为产品连串导航,给不同用户提供了不可磨灭的界面供采用,占主界面大部分的地图也做了优化,滴滴依据用户常用上车地方会在地图上做推荐,制止客户出于不熟识周围环境而充实与司机的关系成本。在用户叫车后,系统也会实时现实预估的的哥到达时刻,同时依照GPS对司乘人士和驾驶员对上车地方给出导航路线,进一步回落用户的上学成本,而这或多或少也是首汽约车所不享有的细节。其它,在细节方面滴滴出行做的也万分的人性化,举例表达,在驾驶员接单到抵达指定上车地方这段时日内会显得司机到达指定上车路线的预估导航图,同时在app上方会呈现一个藏匿的下拉菜单,点开菜单也会映现”司机正大力赶来,请你耐心等待,若您改变行程,可在X点X分前免费撤销”的字样,由于下拉菜单的弹出,会造成主屏幕的屏显范围降低,司机的领航路线显示不全的题材发生,这时候软件会自动调节司机导航路径屏显始终将司机路线完全的展现在屏幕内,给用户越来越直观,更利于的互相体验。

首汽约车:首汽方面拔取了与logo相似的革命和反动的主色调,其他方面则和滴滴出行的近乎。关于后退操作,相较于滴滴则无法透过右划手势而必须点击左上角的后退按钮举办战败操作,显得有些不便利。此外,在用户隐私方面,首汽约车选用了大部分互联网金融应用多应用的多任务处理时隐藏主界面的操作,符合首汽约车高端用户的定点,保证了用户隐私安全,这一个细节的用户体验相较于滴滴做的愈来愈完善。

5.2 框架层

滴滴出行:导航栏方面,滴滴出行选用了抽屉式导航栏的构造,将安装、钱包、客服、营销等帮助性二级菜单功效放在了导航中,对于用户的采取频次来说,打到车并成功、高效完成位移是客户的终点使命,由此将非大旨功能通过抽屉式导航隐藏起来,让用户能更佳专注于打车那么些大旨效率操作上;关于主界面滴滴出行直接将分开打车产品,包含上上任地方和用车时间放在了主界面,出色了打车的要旨,降低了用户的上学成本,使产品效果非凡,能让客户快捷的形成打车的指标。

首汽约车:在框架层面首汽约车与滴滴出行较为相像,也采用了抽屉式导航栏设计。与滴滴出行较为相似。

5.3 结构层

滴滴出行:详见产品结构图

首汽约车:详见产品结构图

5.4 范围层

关于限制层面的分别,详见下表*:

5.5 战略层

滴滴出行:滴滴出行是天下最大的一站式多元化出行平台。滴滴在神州400余座城市为近3亿用户提供出租车召车、专车、快车、顺风车、代驾、试驾、巴士和供销社级等系数出行服务。成为全球紧跟于Taobao的第二大在线交易平台。

店家从事于以共享经济实践响应中国互联网革新战略,与不同社群及行业伙伴合作互补,运用大数量驱动的深度学习技术,
解决中国的外出和环保挑战;
提升用户体验,创立社会价值,建设高速、可不止的移位出行新生态。因而看来滴滴出行的战略性愿景并不知足只做一个出外平台集团,更是想成为一家技术驱动、为消费者提供整机出行解决方案的复合型互联网公司。

首汽约车:首汽约车定位于中高端群体,主打中高端商务用车服务市场,与历史观的出租车有真相区隔,两者并行补充并为用户提供更加多元化的外出情势。让乘客提供方便、轻松、舒适的用车。客户
仅需要通过手机APP或约车电话便可开展预订。首汽约车目前是当做一家自己运营车辆、管理的固化于中高端用车群体的租约车集团。

综上,我们可以寓目,滴滴出行和首汽约车在战略性层面上是有很大不同的,滴滴出行是不插足车辆的运营,而是经过技能搭建平台从而对化解音信不对成的题目,进而缓解民众的外出问题;首汽约车则是通过自己控制总体供给侧,通过自营的人品来为高端用户提供高格调的出行体验。

在国际化方面,两个阳台方面的对象一致,通过与海外合作伙伴的协作,共同探究全球化的可能性。2016年11月,滴滴与Lyft完成产品跨境联通,滴滴用户可由此滴滴APP在美利哥打车,标志着“滴滴海外业务“正式上线。前年三月15日,首汽约车发布开通“深港通”业务,蒙特利尔启程七座埃尔法到香港(香岛),起步价700人民币,同时上线的还有国际接送机和租车业务,计划在8、8月分两批,先后开展130个国家,总结1500座都市。但是目前从国际事务来看,滴滴的角落事务也不自营车辆,而是通过与远方巨头Lyft打通数据方面的接口,这样可以经过滴滴在天涯呼叫Lyft的车辆;而首汽约车方面近日按照媒体音讯尚不明确海外业务的车辆运营措施。

出品分析总计及展望

“我不会开车”,2015年开办的乌镇互联网大会上滴滴出行创办者兼老板程维讲演时如是说,程维创设的滴滴出行,经过五年多的前行,已经成为华夏互联网格局里不可忽略的一股力量,而其所有的事情都围绕汽车举办。当然,倘诺更深入地问询这家铺子之后,程维不会开车又在合理。遵照她的考虑,滴滴出行的末梢可以,就是要让各种人不用经过具有一辆车就足以兑现便民出行。在颇具了集出租车、快车、专车、豪华车、公交、代驾、顺风车、小巴、租车、单车于一体的成品线后,滴滴出行CTO张博说,“大数据才是滴滴的命脉。不只是滴滴产品的中枢,仍然滴滴商业的心脏”。大家似乎能从滴滴的生意远景中能窥探一二,滴滴的靶子不是打车公司,平台型集团也不可以满意于它。数据、人工智能才是她的势头和努力的前景。在经验了地推拓展市场、补贴司机游客、本土用户教育、合同仁一视组后的滴滴,已经变的更为的国际化和充满增添的欲望,开头在硅谷招聘数据和人工智能类的丰姿。发展很快的铺面也引发了最出色的浓眉大眼参与,由此不论表现层的UI设计、产品线的丰盛程度、发展和扩展的野心来说都相较于后起之秀首汽约车略胜一筹,而优势不只是发展的周期和经验过的竞争。对于有所国企背景的首汽约车来说,无论是出身、牌照、可信度、无疑是最可靠、最安静、发展最连忙的约车平台。另辟蹊径走高端、商务会议、国家地方议会用车方案提供商来说也是相当靠谱稳健的前进路子,并且发展也是特别高效。商业形式并不曾好坏,解决特定情景下的外出需求就是对的商业格局。如今的滴滴出行和首汽约车就像Alibaba和京东同样,自营确保了劳务质料,开放确保了项目丰裕,两家的商业格局都解决了用户们不同的需要,同时也在前行中相互学习,京东也有了开放平台,Taobao超市也有了自营商品。二种商业情势永远会并存下去。2016年1十月29日,首汽约车发表开放加盟平台战略,面向全国各城市符合地点网约车实施细则的客运集团、巡游出租车公司及租赁铺面等单位开展业务融合,构建B2B网约车投入平台。也许将来的某一天首汽约车会跟滴滴出行举办正面的竞赛。


亚瑟(微信号TENSOR),普华永道TMT组员工,2年大型互联网电商咨询、审计经验,负责某大型美利哥上市电商审计及塞班司法案内控建设。交换请注解集团、职位等音讯,欢迎拍砖。