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

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

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

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

[ Laravel 5.5 文档 ] 处理用户请求 —— 使用中间件 VerifyCsrfToken 避免 CSRF 攻击

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

服务器部署篇(一):服务器主机选择及初始化配置 —— 新增用户及密钥对认证

主机 PHP 应用开发好了之后,还需要部署到远程主机上,才能让用户访问我们提供的服务。一般来说,目前市场上提供的主机有四种:共享服务器、虚拟私有服务器(VPS)、专用服务器和 PaaS。每种主机适用场景不同,相应的价格差距也很大。 共享服务器 这种最便宜,一般来说这种适用于非开发者部署网站,比如非程序员出生的站长,部署 WordPress、Discuz 之类的 CMS 网站,不需要懂代码…

最佳实践系列(八):PHP 数据库统一处理 API —— PDO 扩展及其在 Laravel 底层的使用

PHP 支持多种数据库,如 MySQL、PostgreSQL、SQLite 和 Oracle 等,并且这些数据库都提供了用于 PHP 和相应数据库之间通信的扩展,如 mysqli、sqlite3 等。这样造成的一个问题是如果项目中使用了多种数据库,需要安装并使用多种 PHP 数据库扩展和接口,增加了学习和维护的成本。为此,从 PHP 5.1 开始引入了一个新的扩展 —— PDO。 PDO…

[ Laravel 5.4 文档 ] 安全 —— 哈希(Hashing)

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

[ Laravel 5.4 文档 ] 安全 —— 用户授权

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

[ Laravel 5.4 文档 ] HTTP层 —— CSRF保护

1、简介 跨站请求伪造(CSRF)是一种通过伪装授权用户的请求来利用授信网站的恶意漏洞。Laravel 让应用避免遭到跨站请求伪造攻击变得简单。 Laravel 自动为每一个被应用管理的有效用户会话生成一个 CSRF “令牌”,该令牌用于验证授权用户和发起请求者是否是同一个人。 任何时候在 Laravel 应用中定义 HTML 表单,都需要在表单中引入 CSRF 令牌字段,这样 CSRF…

[ Lumen 5.3 文档 ] 更多特性 —— 加密

1、配置 在使用Lumen的加密器之前,应该在.env文件中设置APP_KEY选项为32位随机字符串。如果这个值没有被设置,所有Lumen加密过的值都是不安全的。 2、基本使用 加密 你可以使用Crypt门面对数据进行加密,所有加密值都使用OpenSSL和AES-256-CBC密码进行加密。此外,所有加密值都通过一个消息认证码(MAC)来检测对加密字符串的任何修改。 例如,我们可以使用e…

[ Laravel 5.3 文档 ] 安全 —— 哈希(Hashing)

1、简介 Laravel 的 Hash 门面为存储用户密码提供了安全的 Bcrypt 哈希算法。如果你正在使用 Laravel 应用自带的LoginController和RegisterController控制器,它们将会自动在注册和认证时使用该 Bcrypt。 注:Bcrypt 是散列密码的绝佳选择,因为其“工作因子”是可调整的,这意味着随着硬件功能的提升,生成哈希所花费的时间也会增加…

12