ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Laravel提高安全性

2020-09-17 08:32:31  阅读:284  来源: 互联网

标签:Laravel 语句 提现 name ip 提高 用户 认证 安全性


前言

最近在LaravelChina看到一篇被黑客模拟token登录的帖子,感觉非常触目惊心,原来黑客有这么多方式攻破服务器,所以记录一下这个问题下面一些比较好的评论,能够让laravel更安全的一些必要事情

 

服务器

1 关闭数据库远程链接端口,数据库链接走内网; 2 后台 ip 白名单机制 3 生成 token 时加上 ip, 若 ip 不一致则 token 失效 4 ssh 采用跳板机登陆 5 敏感操作需要谷歌 GA 验证,后台敏感操作只能是指定用户 基本上,除非服务器被攻破,就算客户账号密码被泄露,绑定了谷歌 GA. 大多数情况下也不会发生事故

 

微信验证

也有提现功能,提现只能提现微信钱包,提现必须实名认证,认证的时候微信会校验微信号,手机号,身份证是否匹配,不匹配认证不过的,认证不过不能提现,认证通过提现也要后台审核(前面的微信已经确定是本人了,后面这个其实不做也没太大关系)。

 

进一步加密

在 jwt payload 中加入自定义 key,value 为用户的 ip + 浏览器 UA 信息(只要能识别用户的唯一信息的字段都可以),然后对其进行加密保存(使用 laravel 自带 HASH 加密),使用全局中间件,获取登录用户的 payload 自定义 key,并获取用户的 IP+UA 信息 进行验签,验签不通过视为非法用户

 

避免sql注入

当你使用 Eloquent 查询时,如:

User::where('name', $input_name)->first();
Copy
Eloquent 内部使用的是 PDO 参数绑定,所以你的请求是安全的。虽然如此,在一些允许你使用原生 SQL 语句的地方,还是要特别小心,例如 whereRaw 或者 selectRaw 。如下:

User::whereRaw("name = '$input_name'")->first();
以上这段代码里是存在安全漏洞的,请尽量避免使用原生查询语句。如果你有必须使用原生语句的情况,语句里又包含用户提交内容的话,可以利用其提供的,类似于 PDO 参数绑定进行传参,以避免 SQL 注入的风险:

User::whereRaw("name = ?", [$input_name])->first();

 

标签:Laravel,语句,提现,name,ip,提高,用户,认证,安全性
来源: https://www.cnblogs.com/summer1379/p/13683190.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有