10 WEB攻击与防护技术 徐震 杨亮 《PHP语⾔程序设计》的漏洞!!! 提纲 一、背景概述 二、典型攻击 三、攻防原理 四、防护产品体系 3.1. SQL注入 16 概述 n SQL Injection q 攻击者利用WEB应用程序对用户输入验证上的疏忽, 在输入的数据中包含对某些数据库系统有特殊意义 的符号或命令,让攻击者有机会直接对后台数据库 系统下达指令,进而实现对后台数据库乃至整个应 用系统的入侵。 17 原理 n 正常连线状态 经由数据库服务器提供的操作系统支持,让黑客得以修改或控制操作 系统(例如xp_cmdshell "net stop iisadmin"可停止服务器的IIS服务) 23 防护方法 n 代码级防护 q 验证输入 q 参数化SQL q 输出检查 q 使用存储过程 n 平台级别防护 q 在运行期间防护:使用WAF、URL重写等 q 配置数据库安全策略(权限配置、关闭默认账号、审计等) 将使用者浏览器导向恶意网站,向使用者计算 机下载并安装恶意后门程序 防护方法 n 结合以下两种方法: q 验证所有输入数据 q 对所有输出数据进行适当的编码,防止任何已成功注入的脚本在浏览器端运行 n 具体如下: q 输入验证:某个数据被接受为可被显示或存储之前,使用标准输入验证机制, 验证所有输入数据的长度、类型、语法以及业务规则 q 强壮的输出编码:数据输出前,确保用户提交的数据已被正确进行entity编码0 码力 | 114 页 | 3.65 MB | 1 年前3
Laravel 6.0 中文文档本文档由学院君提供 学院君致力于提供优质 Laravel 中文学习资源:https://xueyuanjun.com 12 本地化 Lang::getFromJson 方法 队列重试限制 重发邮箱验证路由 Input 门面 预计升级时间:1 个小时 注:本文档适用于是从 Laravel 5.8 升级到 6.0,我们将 尽可能在文档中列出所有重大更新。 PHP 7.2 影响级别:中等 $keyType = 'string'; 邮箱验证 重新发送验证路由 HTTP 方法 影响级别:中等 为了免除潜在的 CSRF 攻击,使用 Laravel 内置邮箱验证功能通过 路由器注册的 email/resend 路由请求方法已经由 GET 更新 为 POST。因此,你需要更新前端发送请求到该路由的请求类型。例 如,如果你是用的是内置的邮箱验证模板代码,需要像这样调整请求 方法: {{ 通知路由,需要在通知实体中手动实 现 routeNotificationForNexmo 方法。 密码重置 密码验证 影响级别:低 PasswordBroker 不再约束或验证密码。因为密码验证逻辑已经 由 ResetPasswordController 控制器处理,导致 broker 的验证逻 辑变得冗余,并且不能被自定义,如果你在内置 的 ResetPasswordController 之外使用了0 码力 | 1442 页 | 14.66 MB | 1 年前3
CmlPHP v2.x 开发手册
常用常量 命令行运行程序 守护工作进程 队列服务 权限管理 数据验证 1.6.24 1.6.25 1.6.26 1.7 1.7.1 1.7.1.1 1.7.1.2 1.7.2 1.8 1.8.1 1.8.2 1.8.3 1.8.4 1.9 1.9.1 1.10 1.11 验证码 文件上传 数据库迁移 部署 伪静态配置 Apache Nginx 字符串处理扩展 Cml\Vendor\Tree 无限级分类 Cml\Vendor\UploadFile 文件上传处理 Cml\Vendor\Validate 数据验证类 Cml\Vendor\VerifyCode 验证码生成类 插件 本章节主要介绍了插件的使用以及系统内置的钩子 使用说明 CmlPHP中插件的实现通过钩子来实现,模板中使用 {{hook test}} 设定一 'admin_users', ]); app 特殊说明 通常情况我们会建一个共用的控制器。在共用控制器的 init 方法 或 __construct 方法里,验证用户是否登录以及是否拥有当前模块 的访问权限。这时是所有对外的方法都会被验证。但是在实际项目中 我们往往会想要跳过一些方法的权限校验,比如: 我们有个用户管理。用户管理有 add 方法用来渲染输出用户添加表单。 edit0 码力 | 245 页 | 720.67 KB | 1 年前3
CmlPHP v2.x 开发手册
1.7.1 1.7.1.1 1.7.1.2 1.7.2 1.8 1.8.1 1.8.2 1.8.3 1.8.4 1.9 1.9.1 1.10 1.11 权限管理 数据验证 验证码 文件上传 数据库迁移 部署 伪静态配置 Apache Nginx 静态资源管理 安全 防注入 用户数据输入 csrf 加密解密 常见问题 模板中不同的url_model模式下传参给后端 字符串处理扩展 Cml\Vendor\Tree 无限级分类 Cml\Vendor\UploadFile 文件上传处理 Cml\Vendor\Validate 数据验证类 Cml\Vendor\VerifyCode 验证码生成类 104 插件 本章节主要介绍了插件的使用以及系统内置的钩子 105 使用说明 CmlPHP中插件的实现通过钩子来实现,模板中使用 {{hook test}} 'admin_users', ]); app 特殊说明 通常情况我们会建一个共用的控制器。在共用控制器的 init 方法或 __construct 方法里,验证用户 是否登录以及是否拥有当前模块的访问权限。这时是所有对外的方法都会被验证。但是在实际项目中 我们往往会想要跳过一些方法的权限校验,比如: 我们有个用户管理。用户管理有 add 方法用来渲染输出用户添加表单。 edit0 码力 | 143 页 | 1.54 MB | 1 年前3
CmlPHP v2.x 开发手册
命令行运行程序 1.6.19 20. 守护工作进程 1.6.20 21. 队列服务 1.6.21 22. 权限管理 1.6.22 23. 数据验证 1.6.23 24. 验证码 1.6.24 25. 文件上传 1.6.25 26. 数据库迁移 1.6.26 7. 部署 1.7 1. 伪静态配置 1.7.1 字符串处理扩展 Cml\Vendor\Tree 无限级分类 Cml\Vendor\UploadFile 文件上传处理 Cml\Vendor\Validate 数据验证类 Cml\Vendor\VerifyCode 验证码生成类 插件 本章节主要介绍了插件的使用以及系统内置的钩子 使用说明 CmlPHP中插件的实现通过钩子来实现,模板中使用 {{hook test}} 设定一个名称为 'admin_users', ]); app 特殊说明 通常情况我们会建一个共用的控制器。在共用控制器的 init 方法或 __construct 方法 里,验证用户是否登录以及是否拥有当前模块的访问权限。这时是所有对外的方法都 会被验证。但是在实际项目中我们往往会想要跳过一些方法的权限校验,比如: 我们有个用户管理。用户管理有 add 方法用来渲染输出用户添加表单。 edit0 码力 | 251 页 | 973.37 KB | 1 年前3
Laravel 5.6 中文文档*/ protected $headers = Request::HEADER_X_FORWARDED_ALL; 更多关于 $headers 变量值的信息可以查看完整的信任代理文档。 验证 ValidatesWhenResolved 接口 为了避免和 $request->validate() 方法冲突,ValidatesWhenResolved 接口/trait 的 validate 到该目录。 Rules 目录 该目录默认不存在,但是会伴随你执行 Artisan 命令 make:rule 自动生成。Rules 目录包含应用的自定义验证规则对象,这些规则用于在单个对象 中封装复杂的验证逻辑,想要了解更多的话,请参考验证文档。 Homestead 简介 Laravel 为开发者提供了一套完善的重量级本地开发环境 —— Laravel Homestead。 配置文件的 providers 数组 中。首先,所有提供者的 register 方法被调用,然后,所有提供者被注册之后,boot 方法被调用。 服务提供者负责启动框架的所有各种各样的组件,比如数据库、队列、验证器,以及路由组件等,正是因为他们启动并配置了框架提供的所有特性, 所以服务提供者是整个 Laravel 启动过程中最重要的部分。 分发请求 一旦应用被启动并且所有的服务提供者被注册,Request0 码力 | 377 页 | 14.56 MB | 1 年前3
Laravel 5.1 中文文档框架之间共享相同的事件名称。 更多关于事件广播的内容请查看事件一节。 中间件参数 Laravel 5.1 里,中间件可以接受额外的自定义参数,例如,如果你的应用需要在执行给定 的 action 之前验证被授予指定“角色”的认证用户,可以创建一个 RoleMiddleware 来接收角 色名称作为额外参数: 验证和创建做一些代码改动: 首先,你不再需要传递 Guard 和 Register 实例到构造函数,你可以从控制器的构造器中完 全移除这些以依赖。 本文档由 Laravel 学院(LaravelAcademy Validator 和 User 在 AuthController 中是否已经被导入。 PasswordController 不再需要在构造函数中声明任何依赖,可以移除 5.0 中要求的两个依 赖。 验证 如果你重写了 Controller 类中的 formatValidationErrors 方法,需要将类型提示由 Illuminate\Validation\Validator 改为 Ill0 码力 | 307 页 | 3.46 MB | 1 年前3
Laravel 5.2 中文文档Laravel 5.2 在 5.1 基础上继续改进和优化,添加了许多新的功能特性:多认证驱动支 持、隐式模型绑定、简化 Eloquent 全局作用域、可选择的认证脚手架、中间件组、访问频 率限制、数组输入验证优化等等。 多认证驱动 在之前的 Laravel 版本中,框架只支持默认的、基于 session 的认证驱动,且在单个应 用中只能拥有一个认证模型类(对应单张表),这为我们实现某型功能,比如前后端分离 Route::get('/api/users', ['middleware' => 'throttle:60,1', function () { // }]); 数组输入验证 在 Laravel 5.2 可轻松实现表单字段的数组输入验证。例如,要验证给定数组输入字段中 的每一个 email 是唯一的,可以这么实现: $validator = Validator::make($request->all() ), [ 'person.*.email' => 'email|unique:users' ]); 同样,你可以在语言文件中使用 * 来指定验证数组字段: 'custom' => [ 'person.*.email' => [ 'unique' => 'Each person must have a unique e-mail address'0 码力 | 377 页 | 4.56 MB | 1 年前3
Laravel 5.3 中文文档......................................................................................... 155 5.8 验证 .................................................................................................. 'place-orders' => 'Place new orders', 'check-status' => 'Check order status', ]); 此外,Passport 还包含了用于验证访问令牌认证请求包含必要令牌域的中间件: Route::get('/orders/{order}/status', function (Order $order) { // Access is_null($value); }); 在 Laravel 之前版本中,$key 是第一个参数,但是由于大多数使用案例只对$value 感兴趣,所以 我们将其放到第一个。你可以在应用中进行一次全局搜索以验证是否你在应用中通过旧的方式使 用了这个函数。 Artisan make:console 命令 make:console 命令现在被重命名为 make:command。 认证 认证脚手架0 码力 | 691 页 | 9.37 MB | 1 年前3
Yii 2.0 权威指南即 ) ) ) 匲 匹 匷 輷 輮 輱 创建表单 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輲 輹 輷 輷 輮 輲 输入验证 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輳 輰 輲 輷 輮 輳 文件上传 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輴 輵 輳 輱 輴 輮 輲 控制台命令 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輴 輵 輴 輱 輴 輮 輳 核心验证器(轃 软 轲 轥 轖 轡 转 轩 轤 轡 轴 软 轲 轳 ) 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輮 輴 輶 輱 輱 輴 輮 輴 轙 轩 轩 和 轄 软 轣 轫 轥 轲 譜 譢 譡 譳 譥 譜 譍 譯 譤 譥 譬 类来实现。 轙 轩 轩 輲 輮 輰 引进了名为 譳 譣 譥 譮 譡 譲 譩 譯 譳 謨 謩 的新方法来声明支持的场景, 并指明 在哪个场景下某属性必须经过验证,可否被视为安全值等等。如: p u b l i c f u n c t i o n s c e n a r i o s ( ) { r e t u r n [ ' b a c k e n d0 码力 | 537 页 | 4.66 MB | 1 年前3
共 11 条
- 1
- 2













