php代码审计系列教程,Virink主讲的PHP代码审计实战视频课程

1.1、检查数据是否可用接口开发

检查数据是否可用作为注册功能的辅助。

1.1.1、功能分析

请求的url:/user/check/{param}/{type}

参数:从url中取参数

响应的数据:json数据。TaotaoResult,封装的数据校验的结果为true:表示成功,数据可用,false:失败,数据不可用。

业务逻辑:

1.1.2、Dao

1.1.3、Service

先在taotao-sso-interface中定义接口UserRegisterService,

再在taotao-sso-service中写实现类。

参数:

返回值:TaotaoResult

在taotao-sso-interface创建接口

在taotao-sso-service创建实现类

1.1.4、发布服务

先在taotao-sso-service工程中的pom.xml文件中配置对taotao-sso-interface的依赖,因为服务层发布服务要通过该接口,

再在taotao-sso-service工程中的applicationContext-service.xml文件中发布服务:

1.1.5、引用服务

需要在taotao-sso-web中实现。

先在taotao-sso-web工程中的pom.xml文件中配置对taotao-sso-interface的依赖,表现层调用服务要通过该接口,

在taotao-sso-web工程中的springmvc.xml文件中引用服务:

1.1.6、Controller

请求的url:/user/check/{param}/{type}

参数:从url中取参数

请求的方法:get。

响应的数据:json数据。TaotaoResult,封装的数据校验的结果,true:成功;false:失败。

1.1.7、测试

get请求好测试,直接在浏览器中输入URL即可。

访问地址:http://localhost:8088/user/check/zhangsan/1

浏览器报404错误,原因是:我们web.xml中配置的是拦截以“.html”为后缀的请求。

我们修改访问地址:http://localhost:8088/user/check/zhangsan/1.html

此时浏览器报406错误。原因如下图:

而且如果我们在请求后面加上“.html”的话,等于我们修改了接口开发文档,这是不行的。

正确的做法是要拦截不带后缀的请求,我们使用“/”即拦截所有请求,如下图所示:

下面我们详解406错误的形成原因?

答:当我们浏览器出现406错误时,90%的原因是因为没有导入jackson-core-2.4.2.jar这个包。10%的原因是我们请求的URL后缀是“.html”。为什么呢?

原因是:在springMVC中使用注解@ResponseBody,springMVC认为对于后缀是“.html”的URL请求,服务端返回的应该也是一个html页面。但是如果服务端返回的是一个java对象的话,那么浏览器不能将一个java对象转换成一个html对象,即就会报406错误。(这是一个大坑!)

1.2、用户注册接口开发

1.2.1、功能分析

请求的url:/user/register

参数:表单的数据:username、password、phone、email

返回值:json数据。TaotaoResult。

接收参数:使用TbUser对象接收。

请求的方法:post

你可能感兴趣的:(php代码审计系列教程)