「这是我参与11月更文挑战的第22天,活动详情查看:2021最后一次更文挑战」
安全问题和性能优化是开发过程中必须注意的问题
这篇文章整理汇总 Laravel 开发过程中的安全问题和程序优化问题
安全问题
SQL 注入
SQL注入 是服务端开发很常见的问题,Laravel 的 Eloquent 是基于PHP的PDO的,PDO 使用 prepared 来准备查询语句,保障了安全性。
注意也不是绝对安全的,我们使用 raw() 时要注意:必须使用数据绑定。
错误的做法:
Route::get('xxxx', function() {
$name = "xxxx"; // 假设用户提交
$password = "xx' OR 1='1"; // // 假设用户提交
$result = DB::select(DB::raw("SELECT * FROM users WHERE name ='$name' and password = '$password'"));
dd($result);
});
正确的做法,一定要使用数据绑定,不要直接拼接sql参数:
Route::get('xxxx', function() {
$name = "xxxx"; // 假设用户提交
$password = "xx' OR 1='1"; // // 假设用户提交
$result = DB::select(
DB::raw("SELECT * FROM users WHERE name =:name and password = :password"),
[
'name' => $name,
'password' => $password,
]
);
dd($result);
});
生产环境关闭debug
在 .env配置文件中可以设置APP_DEBUG,本地开发和测试环境我们打开debug模式方便定位问题。
注意生产环境一定要关闭debug模式,避免暴露给黑客服务端信息
APP_DEBUG=false
XSS 跨站脚本攻击
XSS 的英文全称是:cross-site scripting 。翻译过来就是 跨站脚本攻击
如果被攻击的话,黑客能控制我们的页面,黑客能使用js盗用cookie等。
如何避免 XSS 攻击呢?
我们在无法保证用户提交内容是 100% 安全的情况下,必须 使用 Blade 模板引擎的 {{ $content }} 语法会对用户内容进行转义。
总结
安全问题无小事,一定要有安全开发的意识,养成良好的编程习惯。
避免SQL注入、XSS攻击等安全问题。
进一步思考
还有哪些需要注意的安全问题,小伙伴们可以在评论区讨论哦~
程序优化相关阅读推荐
最后
👍🏻:觉得有收获请点个赞鼓励一下!
🌟:收藏文章,方便回看哦!
💬:评论交流,互相进步!