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

主机 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 是散列密码的绝佳选择,因为其“工作因子”是可调整的,这意味着随着硬件功能的提升,生成哈希所花费的时间也会增加…

[ Laravel 5.3 文档 ] 安全 —— 加密

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

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

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

最佳实践系列(六):PHP 开发者如何做好密码保护 & Laravel 底层密码存储和验证实现

随着在线攻击的增多,密码安全越来越重要。作为开发者我们要担负起安全管理、计算哈希和存储用户密码的责任,不管应用是简单的游戏还是绝密商业文件的仓库,都要做到这一点。PHP内置了一些工具,让保护密码变得更加容易,本节我们就来讨论如何根据现代的安全措施来使用这些工具。 1、密码保护三原则 绝对不能知道用户的密码 我们绝对不能知道用户的密码,也不能有获取用户密码的方式,如果应用的数据库被黑,你肯…

12