# 安全
本章介绍如何使用CmlPHP
提供的工具去编写更安全的代码。
# 防注入
CmlPHP在db层防注入,对数据库的操作框架都已经做了防注入处理
# 用户数据输入
使用\Cml\Http\Input类
进行处理,点击查看详细
# csrf
框架默认开启对非本站域名post数据的检查,只要是非本站域post名过来的数据都返回403,可在配置中修改过滤选项
'CHECK_CSRF' => 1,
//检查csrf跨站攻击 0、不检查,1、只检查post数据提交方式,2、get/post都检查 默认只检查post
当然这只是最基本过滤,最好是使用表单令牌或者验证码来防止csrf,表单令牌的使用很简单 配置文件中设置
'FORM_TOKEN'=> 1, //表单令牌 0不开启,1开启 默认不开启
然后在模板的中设置标签,框架会自动在其位置生成名称为
CML_TOKEN
的Input
<input type="hidden" name="CML_TOKEN" value="xxxxx" />
如:
<form method="post" action="">
{{token}}
</form>
在控制器中使用\Cml\Secure::checkToken();
检查令牌,通过返回true,不通过返回false
上面介绍了常见的安全过滤,更多的过滤方法参看\Cml\Secure
类
# 加密解密
框架中提供了\Cml\Encry
加密解密类
# 加密接口
\Cml\Encry::encrypt($data, $key = null)
# 解密接口
\Cml\Encry::decrypt($data, $key = null)
WARNING
这边的key可以单独配置,如果没配置框架默认读取配置文件中auth_key
配置的key。
使用\Cml\Http\Cookie
处理cookie的时候默认加密key就是使用auth_key
配置的key。所以如果有使用到\Cml\Encry
或者\Cml\Http\Cookie
都请修改auth_key
配置的key