10 WEB攻击与防护技术 徐震 杨亮 《PHP语⾔程序设计》WEB攻击与防护技术 徐 震 信息安全国家重点实验室 提纲 一、背景概述 二、典型攻击 三、攻防原理 四、防护产品体系 1.1.技术背景 n Web成为主流的网络和应用技术 q CNCERT/CC 网络安全监测系统对流量数据进行的抽样统计 显示,Web 应用流量占整个TCP 流量的81.1% q B/S居统治地位:网上银行、电子商务、电子政务、证劵、 手机上网 3 3 1.2.安全威胁 1.2.安全威胁 n SANS年发布的全球20大安全风险排行榜上,Web应 用安全漏洞名列前茅,攻击者利用最多的漏洞是SQL 注入及跨站脚本 n 根据国家计算机网络应急技术处理协调中心(简称 CNCERT/CC)上半年的工作报告显示,网站漏洞百出, 被篡改的大陆网站数量明显上升,总数达到28367个, 比去年全年增加近16% 1.3. 相关政策、法规(1) n 访问控制(对进出网络的信息进行过滤,并使对 HTTP等协议进行命令级控制) 入侵防范(木马、DDoS、缓冲区溢出) 安全审计 恶意代码防范 数据安全: 数据完整性(应能检测到重要业务数据的完整性 破坏,并采取必要的恢复措施) 第二级 网络安全: 入侵防范(木马、DDoS、缓冲区溢出) 安全审计 1.5.攻击案例 n 略 提纲 一、背景概述 二、典型攻击 三、攻防原理 四、防护产品体系 OWASP Top 100 码力 | 114 页 | 3.65 MB | 1 年前3
Yii 2.0 权威指南参数在输出之前被 譈 譔 譍 譌 謭 譥 譮 譣 譯 譤 譥 譤 方法处理过。 这很有必要,当参数来自于最终用户时,参数中可能隐含的恶意 轊 轡 轶 轡 轓 轣 轲 轩 轰 轴 代码会导致 跨站脚本(轘 轓 轓 )攻击2 9 。 当然了,你大概会在 s a y 视图里放入更多内容。内容可以由 轈 轔 轍 轌 标 签,纯文本, 甚至 轐 轈 轐 语句组成。实际上 s a y 视图就是一个由 譲 譥 譮 譤 譥 譲 謨 编辑器识别,也是生成视图文档的好方法。 安 安 安全 全 全 当创建生成轈 轔 轍 轌 页面的视图时,在显示之前将用户输入数据进行转码和 过滤非常重要, 否则,你的应用可能会被 跨站脚本1 3 攻击。 要显示纯文本,先调用 譹 譩 譩 譜 譨 譥 譬 議 譥 譲 譳 譜 譈 譴 譭 譬 謺 謺 譥 譮 譣 譯 譤 譥 謨 謩 进行转码, 例如 如下代码将用户名在显示前先转码: < ? p h 数( ( (卂 卩 卮 卤 卩 卮 卧 卐 卡 卲 卡 卭 卥 却 卥 卲 即 ) ) ) 当使用带参数的 轓 轑 轌 来创建数据库命令时, 你几乎总是应该使用绑定参数 的方法来防止 轓 轑 轌 注入攻击,例如: $ p o s t = Y i i : : $ a p p - > d b - > c r e a t e C o m m a n d ( ' S E L E C T * F R O M0 码力 | 537 页 | 4.66 MB | 1 年前3
PHP 语言程序设计 实验指导书(v1)杨亮 《PHP语⾔程序设计》实验目的:掌握如何书写可以防范 SQL 注入与 XSS 的代码。 实验要求:实验报告中粘贴网页代码和运行结果截图。 时间:100 分钟 实验内容: 1、 了解 SQL 攻击的基本方法并掌握如何编写代码防止 SQL 注入 2、 了解跨站脚本攻击的基本方法和如何编写能否防范 XSS 的代码 PHP 语言程序设计(1240513109)实验指导书(v1) 9 实验 8:Kohana0 码力 | 10 页 | 269.02 KB | 1 年前3
Laravel 5.1 中文文档il URL }); }); 本文档由 Laravel 学院(LaravelAcademy.org)提供 23 5、防止 CSRF 攻击 5.1 简介 Laravel 使得防止应用遭到跨站请求伪造攻击变得简单。跨站请求伪造是一种通过伪装授权 用户的请求来利用授信网站的恶意漏洞。 Laravel 自动为每一个被应用管理的有效用户 Session 生成一个 CSRF“令牌”,该令牌用于 csrf_token() }}"> 创建完这个 meta 标签后,就可以在 js 库如 jQuery 中添加该令牌到所有请求头,这为基于 AJAX 的应用提供了简单、方便的方式来避免 CSRF 攻击: $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('c The current UNIX timestamp is {{ time() }}. 注意:Blade 的{{}}语句已经经过 PHP 的 htmlentities 函数处理以避免 XSS 攻击。 Blade & JavaScript 框架 由于很多 JavaScript 框架也是用花括号来表示要显示在浏览器中的表达式,可以使用@符 号来告诉 Blade 渲染引擎该表达式应该保持原生格式不作改动。比如:0 码力 | 307 页 | 3.46 MB | 1 年前3
Laravel 6.0 中文文档18 * @var string */ protected $keyType = 'string'; 邮箱验证 重新发送验证路由 HTTP 方法 影响级别:中等 为了免除潜在的 CSRF 攻击,使用 Laravel 内置邮箱验证功能通过 路由器注册的 email/resend 路由请求方法已经由 GET 更新 为 POST。因此,你需要更新前端发送请求到该路由的请求类型。例 如,如 相关推荐:关于中间件底层原理可以看下 Laravel 中间件 底层源码剖析这篇教程。 CSRF 保护 简介 跨站请求伪造(CSRF)是一种通过伪装授权用户的请求来攻击授信 网站的恶意漏洞。 Laravel 通过自带的 CSRF 保护中间件让避免应用遭到跨站请求伪 造攻击变得简单:Laravel 会自动为每一个被应用管理的有效用户会 本文档由学院君提供 学院君致力于提供优质 Laravel 中文学习资源:https://xueyuanjun name="csrf-token" content="{{ csrf_token() }}"> 然后在 js 库(如 jQuery)中添加该令牌到所有请求头,这为基于 AJAX 的请求提供了简单、方便的方式来避免 CSRF 攻击: $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').a ttr('content') } });0 码力 | 1442 页 | 14.66 MB | 1 年前3
CmlPHP v2.x 开发手册
入口文 件所在目录 /*安全过滤*/ 'auth_key'=>'a5et3e41d', //Encry加密key 'check_csrf' => 1, //检查csrf跨站攻击 0、不检查,1、 只检查post数据提交方式,2、get/post都检查 默认只检查post 'form_token'=> 0, //表单令牌 0不开启,1开启 /*语言包设置*/ 'php_console_password' => 'cmlphp_php_console_pw123456', /** * 是否开启全局紧急模式--慎用。主要用于在系统mysql负载过 高(如遇到攻击)mysql压力过大。先将所有查询转移至缓存。消化压力 高峰 * * 开启时 mysql的查询缓存不会在数据变更时实时更新。 * 所以如果要开启请确定开启后不会对业务造成影响。如:扣积分 点击查看详细 csrf 框架默认开启对非本站域名post数据的检查,只要是非本站域post名过 来的数据都返回403,可在配置中修改过滤选项 'CHECK_CSRF' => 1, //检查csrf跨站攻击 0、不检查,1、只检查post数据提交方式,2、 get/post都检查 默认只检查post 当然这只是最基本过滤,最好是使用表单令牌或者验证码来防止csrf, 表单令牌的使用很简单 配置文件中设置0 码力 | 245 页 | 720.67 KB | 1 年前3
CmlPHP v2.x 开发手册
入口文件所在目录 /*安全过滤*/ 'auth_key'=>'a5et3e41d', //Encry加密key 'check_csrf' => 1, //检查csrf跨站攻击 0、不检查,1、只检查post数据提交方式,2、get/post 21 都检查 默认只检查post 'form_token'=> 0, //表单令牌 0不开启,1开启 /*语言包设置*/ 'php_console_password' => 'cmlphp_php_console_pw123456', /** 22 * 是否开启全局紧急模式--慎用。主要用于在系统mysql负载过高(如遇到攻击)mysql压力过大。先将所 有查询转移至缓存。消化压力高峰 * * 开启时 mysql的查询缓存不会在数据变更时实时更新。 * 所以如果要开启请确定开启后不会 134 csrf 框架默认开启对非本站域名post数据的检查,只要是非本站域post名过来的数据都返回403,可在配置 中修改过滤选项 'CHECK_CSRF' => 1, //检查csrf跨站攻击 0、不检查,1、只检查post数据提交方式,2、get/post都检查 默认只检查post 当然这只是最基本过滤,最好是使用表单令牌或者验证码来防止csrf,表单令牌的使用很简单 配置文件 中设置0 码力 | 143 页 | 1.54 MB | 1 年前3
CmlPHP v2.x 开发手册
入口文件所在目录 /*安全过滤*/ 'auth_key'=>'a5et3e41d', //Encry加密key 'check_csrf' => 1, //检查csrf跨站攻击 0、不检查,1、只检查post数据提交方式,2、get/post 都检查 默认只检查post 'form_token'=> 0, //表单令牌 0不开启,1开启 /*语言包设置*/ 'php_console_password' => 'cmlphp_php_console_pw123456', /** * 是否开启全局紧急模式--慎用。主要用于在系统mysql负载过高(如遇到攻击)mysql压力过大。先将所有 查询转移至缓存。消化压力高峰 * * 开启时 mysql的查询缓存不会在数据变更时实时更新。 * 所以如果要开启请确定开启后不会对业务 点击查看详细 csrf 框架默认开启对非本站域名post数据的检查,只要是非本站域post名过来的数据都返回 403,可在配置中修改过滤选项 'CHECK_CSRF' => 1, //检查csrf跨站攻击 0、不检查,1、只检查post数据提交方式,2、get/post都检查 默认只检查post 当然这只是最基本过滤,最好是使用表单令牌或者验证码来防止csrf,表单令牌的使用很 简单 配置文件中设置0 码力 | 251 页 | 973.37 KB | 1 年前3
Laravel 5.2 中文文档// 匹配 accounts/{account_id}/detail URL }); }); 5、CSRF 攻击 简介 跨站请求伪造是一种通过伪装授权用户的请求来利用授信网站的恶意漏洞。Laravel 使得 防止应用遭到跨站请求伪造攻击变得简单。 Laravel 自动为每一个被应用管理的有效用户会话生成一个 CSRF “令牌”,该令牌用于验 证授权用户和发起请求者是否是同一个人。想要生成包含 name="csrf-token" content="{{ csrf_token() }}"> 然后在 js 库(如 jQuery)中添加该令牌到所有请求头,这为基于 AJAX 的应用提供了 简单、方便的方式来避免 CSRF 攻击: $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') The current UNIX timestamp is {{ time() }}. 注:Blade 的 {{}} 语句已经经过 PHP 的 htmlentities 函数处理以避免 XSS 攻击。 Blade & JavaScript 框架 由于很多 JavaScript 框架也是用花括号来表示要显示在浏览器中的表达式,可以使 用 @ 符号来告诉 Blade 渲染引擎该表达式应该保持原生格式不作改动。比如:0 码力 | 377 页 | 4.56 MB | 1 年前3
Laravel 5.6 中文文档服务容器我们就会在后面讲到,暂时不深 入展开了。 CSRF 保护 简介 跨站请求伪造(CSRF)是一种通过伪装授权用户的请求来攻击授信网站的恶意漏洞。 Laravel 通过自带的 CSRF 保护中间件让避免应用遭到跨站请求伪造攻击变得简单:Laravel 会自动为每一个被应用管理的有效用户会话生成一个 CSRF “令牌”,然后将该令牌存放在 Session 中,该令牌用于 中文学习资源:http://laravelacademy.org 61 然后在 js 库(如 jQuery)中添加该令牌到所有请求头,这为基于 AJAX 的请求提供了简单、方便的方式来避免 CSRF 攻击: $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') The current UNIX timestamp is {{ time() }}. 注:Blade 的 {{}} 语句已经经过 PHP 的 htmlentities 函数处理以避免 XSS 攻击。 输出存在的数据 有时候你想要输出一个变量,但是不确定该变量是否被设置,我们可以通过如下 PHP 代码: { isset($name) ? $name : 'Default' }} 除了使用三元运算符,Blade0 码力 | 377 页 | 14.56 MB | 1 年前3
共 11 条
- 1
- 2













