Laravel 学院文本编辑器及 XSS 攻击防范 —— Markdown 编辑器篇

作为程序员群体,可能更偏爱使用 Markdown 来编辑文本,学院君也是其中的一员,我平时写文章、周报、技术方案和文档基本都是在 MWeb (Mac系统下一款值得推荐的 Markdown 编辑器)中完成,所以学院里自然也不能少了对 Markdown 编辑器的支持,目前学院发布主题支持富文本编辑器和 Markdown 编辑器二选一,发布评论为了简单起见,只支持 Markdown: 和富...

关于 jwt 的一些分享

什么是 jwt ? JWT 全称叫 JSON Web Token, 是一个非常轻巧的规范。这个规范允许我们使用 JWT 在用户和服务器之间传递安全可靠的信息。 jwt 使用场景 jwt 用图广泛,例如授权、鉴权等。具体一点的话,假如我们有一个 A 用户想要邀请某用户进入自己的群组,此时 A 用户需要生成一条邀请链接,链接内容大致如下: https://host/group/{group...

[ Laravel 5.6 文档 ] 安全系列 —— 重置密码

简介 想要快速实现该功能?只需要在新安装的 Laravel 应用下运行 php artisan make:auth(如果你已经执行过此命令,可忽略),然后在浏览器中访问 http://your-app.test/register 或者其他分配给应用的 URL,该命令会生成用户登录注册所需要的所有东西,包括密码重置! 大多数 Web 应用都提供了为用户重置密码的功能,Laravel 也...

[ Laravel 5.6 文档 ] 安全系列 —— 哈希

简介 Laravel 的 Hash 门面为存储用户密码提供了安全的 Bcrypt 和 Argon2 哈希算法。如果你正在使用 Laravel 应用自带的 LoginController 和 RegisterController 控制器,它们将会自动在注册和认证时使用默认的 Bcrypt 算法。 注:Bcrypt 是散列密码的绝佳选择,因为其「工作因子」是可调整的,这意味着随着硬件功能...

[ Laravel 5.6 文档 ] 安全系列 —— 加密

简介 Laravel 的加密器使用 OpenSSL 来提供 AES-256 和 AES-128 加密。强烈建议使用 Laravel 自带的加密设置,不要尝试推出自己“土生土长”的加密算法。所有 Laravel 加密过的值都使用消息授权码(MAC)进行签名以便底层值一经加密就不能修改。 配置 在使用 Laravel 的加密器之前,必须在配置文件 config/app.php 中设置 ...

[ Laravel 5.6 文档 ] 安全系列 —— 授权

简介 除了提供开箱即用的认证服务之外,Laravel 还提供了一个简单的方式来管理授权逻辑以便控制对资源的访问权限。和认证一样,在 Laravel 中实现授权很简单,主要有两种方式:Gate 和 Policy。 可以将 Gate 和 Policy 分别看作路由和控制器,Gate 提供了简单的基于闭包的方式进行授权,而 Policy 和控制器一样,对特定模型或资源上的复杂授权逻辑进行分组...

[ Laravel 5.6 文档 ] 安全系列 —— API 认证

简介 Laravel 通过传统的登录表单已经让用户认证变得很简单,但是 API 认证怎么实现?API 通常使用令牌(token)进行认证并且在请求之间不维护会话(Session)状态。Laravel 官方扩展包 Laravel Passport 让 API 认证变得轻而易举,Passport 基于 Alex Bilbie 维护的 League OAuth2 server,可以在数分钟内...

[ Laravel 5.6 文档 ] 基础组件 —— CSRF 保护

简介 跨站请求伪造(CSRF)是一种通过伪装授权用户的请求来攻击授信网站的恶意漏洞。 Laravel 通过自带的 CSRF 保护中间件让避免应用遭到跨站请求伪造攻击变得简单:Laravel 会自动为每一个被应用管理的有效用户会话生成一个 CSRF “令牌”,然后将该令牌存放在 Session 中,该令牌用于验证授权用户和发起请求者是否是同一个人。 任何时候在 Larav...

使用 laravel-google-authenticator 扩展包为你的网站打造一个动态手机令牌

Google 身份验证器与两步验证功能配合,可在您登录 Google 帐户时为您平添一重安全保障。启用两步验证之后,当您登录帐户时,需要提供密码和此应用生成的验证码。配置完成后,无需网络连接或蜂窝连接即可获得验证码。 为什么使用两步认证 相对于验证码,安全很多;几乎是不会存在破解的方法 验证码有时候无法识别,不方便操作 一机一码,不会存在账号盗用的问题 ...

基于高性能算法实现的优雅 ID 混淆扩展包 —— Laravel Hashid

Laravel Hashid 整合了 Base62、Base64、Hashids、Hex、Optimus 等高性能编码算法,并提供了统一的、优雅的、简单易用的调用接口,将「敏感数据」混淆(编码)成可还原的、非连续的、URL 安全的标识符 (ID) 。 应用场景示例 不希望对外暴露有规则的数据索引,比如用户 ID 、媒体资源 ID 、商品 ID 、订单号、注册码、优惠码...