目录权限,open_basedir
远程访问控制,allow_url_fopen 可以访问ftp http
禁止远程包含你allow_url_include
cookie 配置 1http php.ini session.cookie_httponly =1 禁止前台显示cookie https session.cookie_secure =1;
cookie设置超时和使用范围
php的新变化:移出了一些不安全的行数,特别是对mysql函数的支持,;移出了对ereg函数的支持
declare(strict_types=1); 增加类型限制
随机数生成器
public function testString() { $a='pay'; $b=0; dd($a==$b);//true }
public function testString() { $a='12pay'; $b=12; dd($a==$b);//true }
$str = 'string'; var_dump($str['1']);//t // var_dump(in_array(0, array('s')));//true
弱数据类型的问题
整型超过php_int_max(用户提交数据长度限制)
$a=92233720368547758074444492233720368547758074222449223372036854775807422244; $b=92233720368547758074444492233720368547758074222449223372036854775807422241; dd($a===$b);
数组函数的严格模式
public function testarray()
{
$a=['ab','cd'];
var_dump(in_array(0,$a));//true
}
eval函数
$str='mkdir("hhhh");'; $str=eval($str);
assert
变量符号的定义
$a='b';
$b='c';
$c=123;
var_dump($$$a);//123
$a=[
'name'=>'zs',
'name1'=>'zs1',
];
extract($a);
dd($name);//zs
"x HTTP/1.1\r\n\r\nDELETE /private-api HTTP/1.1\r\n"
在发出请求时,服务器可能会直接将其写入路径,如下:
GET /private-api?q=x HTTP/1.1
DELETE /private-api
Authorization: server-secret-key
单一入口
规范的目录结构
注意可写目录数量 php可执行权限和目录
通过nginx指定哪些目录可以执行php文件
http 明文传输的风险
盗链,盗用网站资源 refer,通过nginx实现白名单,制定那些网站可以
内容安全,过滤敏感词
越权访问,水平越权和垂直越权 ,对当前登录用户身份判断,rbac权限控制role base access control who what how
资源泄漏,错误信息暴露,json劫持 代码泄漏
人机识别,行为验证码 图片验证码,语音,短信,好友确认等
注册安全,被恶意注册或者遍历 查找手机号和用户名
注意错误信息提示,比如,手机号不存在,用户名不存在,密码错误,容易被遍历用户
找回密码 ,短信,邮件验证,时效性检测,加密token
修改密码 提交用户名+密码 +验证码+合法性校验
支付安全
支付金额篡改 数量限制
最小权限
ip限制
目录控制
错误信息页面显示
密码加密安全 帐号 ip限制
sql 用户权限控制
数据备份 热备份 冷备份 增量备份 完整备份