当前位置: 首页 > news >正文

python创建网站山东装饰公司网站建设公司

python创建网站,山东装饰公司网站建设公司,网站维护建设,学信网网站建设怎么搞Web 应用防火墙#xff08;Web Application Firewall#xff0c; WAF#xff09;通过对 HTTP(S) 请求进行检测#xff0c;识别并阻断 SQL 注入、跨站脚本攻击、跨站请求伪造等攻击#xff0c;保护 Web 服务安全稳定。 Web 安全是所有互联网应用必须具备的功能#xff0c…Web 应用防火墙Web Application Firewall WAF通过对 HTTP(S) 请求进行检测识别并阻断 SQL 注入、跨站脚本攻击、跨站请求伪造等攻击保护 Web 服务安全稳定。 Web 安全是所有互联网应用必须具备的功能没有安全防护的应用犹如怀揣珠宝的儿童独自行走在盗贼环伺的黑夜里。我们准备开发一个 Web 应用防火墙该防火墙可作为 Web 插件部署在 Web 应用或者微服务网关等 HTTP 服务的入口拦截恶意请求保护系统安全。我们准备开发的 Web 应用防火墙名称为“SkyNet 天网”。 需求分析 HTTP 请求发送到 Web 服务器时请求首先到达 SkyNet 防火墙防火墙判断请求中是否包含恶意攻击信息。如果包含防火墙根据配置策略可选择拒绝请求返回 418 状态码也可以将请求中的恶意数据进行消毒处理也就是对恶意数据进行替换或者插入某些字符从而使请求数据不再具有攻击性然后再调用应用程序处理。如下图 SkyNet需要处理的攻击和安全漏洞列表 概要设计 SkyNet能够发现恶意攻击请求的主要手段是对 HTTP 请求内容进行正则表达式匹配将各种攻击类型可能包含的恶意内容构造成正则表达式然后对 HTTP 请求头和请求体进行匹配。如果匹配成功那么就触发相关的处理逻辑直接拒绝请求或者将请求中的恶意内容进行消毒即进行字符替换使攻击无法生效。 其中恶意内容正则表达式是通过远程配置来获取的。如果发现了新的攻击漏洞远程配置的漏洞攻击正则表达式就会进行更新并在所有运行了 SkyNet防火墙的服务器上生效拦截新的攻击。组件图如下 HTTP 请求先到达请求过滤器请求过滤器提取 HTTP 请求头和 HTTP 请求体中的数据这个过滤器其实就是 Java 中的 Filter。过滤器调用漏洞策略处理器进行处理而漏洞策略处理器需要调用漏洞定义文件加载模块获得漏洞定义规则漏洞定义文件加载模块缓存了各种漏洞定义规则文件如果缓存超时就从远程配置中心重新加载漏洞定义规则。 漏洞定义规则文件是 SkyNet的核心该文件定义了攻击的正则表达式过滤器正是通过使用这些正则表达式匹配 HTTP 请求头和 HTTP 请求体的方式识别出 HTTP 请求中是否存在攻击内容。同时漏洞定义规则文件中还定义了发现攻击内容后的处理方式是拒绝请求跳转到出错页面还是采用消毒的方式将攻击内容字符进行替换。 漏洞规则定义文件采用 XML 格式示例如下 ?xml version1.0?recipeattacktypeSqlpath^/protectfolder/.*$descriptionSql injection attacksruleSetstage requestcondition oractionnameforwardargerror.html/ruleoperator regexarg paramNames[*]value select|update|delete|count|*|sum|master|script||declare|or|execute|alter|statement|executeQuery|count|executeUpdate//ruleSetruleSetstage responsecondition oractionname replacearg /ruleoperator regexarg responseBody value (//.\n)|(/\*\*.\*/)|(!--.*--)//ruleSet/recipe recipe 是漏洞定义文件的根标签属性 attacktype 表示处理的攻击类型有以下几种。 SQL SQL 注入攻击 XSS 跨站点脚本攻击 CSC 注释与异常信息泄露 CSRF 跨站点请求伪造 FB 路径遍历与强制浏览 path 表示要处理的请求路径可以为空表示处理所有请求路径。 ruleSet 是漏洞处理规则集合一个漏洞文件可以包含多个 ruleSet。stage 标签表示处理的阶段请求阶段request响应阶段response。condition 表示和其他规则的逻辑关系“or”表示“或”关系即该规则处理完成后其他规则不需要再处理“and”表示“与”关系该规则处理完成后其他规则还需要再处理。 action 表示发现攻击后的处理动作。“forward”表示表示跳转到出错页面后面的“arg”表示要跳转的路径“replace”表示对攻击内容进行替换即所谓的消毒使其不再具有攻击性后面的“arg”表示要替换的内容。 rule 表示漏洞规则触发漏洞规则就会引起 action 处理动作。operator 表示如何匹配内容中的攻击内容“regex”表示正则表达式匹配“urlmatch”表示 URL 路径匹配。“arg”表示要匹配的目标可以是 HTTP 请求参数名、请求参数值、请求头、响应体、ULR 路径。“value”就是匹配攻击内容的正则表达式。 详细设计 SkyNet 可以处理的攻击类型有哪些它们的原理是什么SkyNet 对应的处理方法又是什么详细设计将解决这些问题。 XSS 跨站点脚本攻击 XSS 攻击即跨站点脚本攻击 (Cross Site Script)指黑客通过篡改网页注入恶意 JavaScript 脚本在用户浏览网页时控制用户浏览器进行恶意操作的一种攻击方式。 常见的 XSS 攻击类型有两种一种是反射型攻击者诱使用户点击一个嵌入恶意脚本的链接达到攻击的目的。如图 攻击者发布的微博中有一个含有恶意脚本的 URL在实际应用中该脚本在攻击者自己的服务器 www.2kt.cn 上URL 中包含脚本的链接用户点击该 URL会自动关注攻击者的新浪微博 ID发布含有恶意脚本 URL 的微博攻击就被扩散了。 另外一种 XSS 攻击是持久型 XSS 攻击黑客提交含有恶意脚本的请求保存在被攻击的 Web 站点的数据库中用户浏览网页时恶意脚本被包含在正常页面中达到攻击的目的。如图 此种攻击经常使用在论坛、博客等 Web 应用中。 SkyNet 采用正则表达式匹配含有 XSS 攻击内容的请求正则表达式如下 (?:\b(?:on(?:(?:mo(?:use(?:o(?:ver|ut)|down|move|up)|ve)|key(?:press|down|up)|c(?:hange|lick)|s(?:elec|ubmi)t|(?:un)?load|dragdrop|resize|focus|blur)\b\W*?|abort\b)|(?:l(?:owsrc\b\W*?\b(?:(?:java|vb)script|shell)|ivescript)|(?:href|url)\b\W*?\b(?:(?:java|vb)script|shell)|background-image|mocha):|type\b\W*?\b(?:text\b(?:\W*?\b(?:j(?:ava)?|ecma)script\b|[vbscript])|application\b\W*?\bx-(?:java|vb)script\b)|s(?:(?:tyle\b\W*.*\bexpression\b\W*|ettimeout\b\W*?)\(|rc\b\W*?\b(?:(?:java|vb)script|shell|http):)|(?:c(?:opyparentfolder|reatetextrange)|get(?:special|parent)folder)\b|a(?:ctivexobject\b|lert\b\W*?\())|(?:(?:body\b.*?\b(?:backgroun|onloa)d|input\b.*?\\btype\b\W*?\bimage)\b|!\[CDATA\[|script|meta)|(?:\.(?:(?:execscrip|addimpor)t|(?:fromcharcod|cooki)e|innerhtml)|\import)\b) 匹配成功后根据漏洞定义文件可以选择 forward 到错误页面也可以采用 replace 方式进行消毒replace 消毒表如下 在 XSS 攻击字符前后加上“nbsp;”字符串使得攻击脚本无法运行同时在浏览器显示的时候不会影响显示内容。 SQL 注入攻击 SQL 注入攻击的原理如下 攻击者在 HTTP 请求中注入恶意 SQL 命令 (drop table users;)服务器用请求参数构造数据库 SQL 命令时恶意 SQL 被一起构造并在数据库中执行。 如果在 Web 页面中有个输入框要求用户输入姓名普通用户输入一个普通的姓名 Frank那么最后提交的 HTTP 请求如下 http://www.a.com?usernameFrank 服务器在处理计算后向数据库提交的 SQL 查询命令如下 Select id from users where usernameFrank; 但是恶意攻击者可能会提交这样的 HTTP 请求 http://www.a.com?usernameFrank;drop table users;-- 即输入的 uername 是 Frank;drop table users;-- 这样服务器在处理后最后生成的 SQL 是这样的 Select id from users where usernameFrank;drop table users;--; 事实上这是两条 SQL一条 select 查询 SQL一条 drop table 删除表 SQL。数据库在执行完查询后就将 users 表删除了系统崩溃了。 处理 SQL 注入攻击的 rule 正则表达式如下。 (?:\b(?:(?:s(?:elect\b(?:.{1,100}?\b(?:(?:length|count|top)\b.{1,100}?\bfrom|from\b.{1,100}?\bwhere)|.*?\b(?:d(?:ump\b.*\bfrom|ata_type)|(?:to_(?:numbe|cha)|inst)r))|p_(?:(?:addextendedpro|sqlexe)c|(?:oacreat|prepar)e|execute(?:sql)?|makewebtask)|ql_(?:longvarchar|variant))|xp_(?:reg(?:re(?:movemultistring|ad)|delete(?:value|key)|enum(?:value|key)s|addmultistring|write)|e(?:xecresultset|numdsn)|(?:terminat|dirtre)e|availablemedia|loginconfig|cmdshell|filelist|makecab|ntsec)|u(?:nion\b.{1,100}?\bselect|tl_(?:file|http))|group\b.*\bby\b.{1,100}?\bhaving|load\b\W*?\bdata\b.*\binfile|(?:n?varcha|tbcreato)r|autonomous_transaction|open(?:rowset|query)|dbms_java)\b|i(?:n(?:to\b\W*?\b(?:dump|out)file|sert\b\W*?\binto|ner\b\W*?\bjoin)\b|(?:f(?:\b\W*?\(\W*?\bbenchmark|null\b)|snull\b)\W*?\()|(?:having|or|and)\b\s?(?:\d{1,10}|[^]{1,10})\s*?[]|(?:print\]\b\W*?\|root)\|c(?:ast\b\W*?\(|oalesce\b))|(?:;\W*?\b(?:shutdown|drop)|\\version)\b|(?:s(?:qloledb|a)|msdasql|dbo)) 从请求中匹配到 SQL 注入攻击内容后可以设置跳转错误页面也可以选择消毒 replacereplace 表如下 CSRF 跨站点请求伪造攻击 CSRF(Cross Site Request Forgery跨站点请求伪造)攻击者通过跨站请求以合法用户的身份进行非法操作如转账交易、发表评论等如图 CSRF 的主要手法是利用跨站请求在用户不知情的情况下以用户的身份伪造请求。其核心是利用了浏览器 Cookie 或服务器 Session 策略盗取用户身份。 SkyNet的防攻击策略是过滤器自动在所有响应页面的表单 form 中添加一个隐藏字段合法用户在提交请求的时候会将这个隐藏字段发送到服务器防火墙检查隐藏字段值是否正确来确定是否为 CSRF 攻击。恶意用户的请求是自己伪造的无法构造这个隐藏字段就会被防火墙拦截。 注释与异常信息泄露 为调试程序方便或其他不恰当的原因有时程序开发人员会在前端页面程序中使用 HTML 注释语法进行程序注释这些 HTML 注释就会显示在客户端浏览器给黑客造成攻击便利。 此外许多 Web 服务器默认是打开异常信息输出的即服务器端未处理的异常堆栈信息会直接输出到客户端浏览器这种方式虽然对程序调试和错误报告有好处但同时也给黑客造成可乘之机。黑客通过故意制造非法输入使系统运行时出错获得异常信息从而寻找系统漏洞进行攻击。 匹配 HTML 注释的正则表达式如下 “lt;!--(.|#x000A;|#x000D;)*--gt;” 如果匹配到 HTML 注释就用空字符串 replace 该注释。 对于异常信息泄露SkyNet会检查响应状态码。如果响应状态码为 500 系列错误则会进一步匹配响应体内容检查是否存在错误堆栈信息。
http://wiki.neutronadmin.com/news/320909/

相关文章:

  • 网站的主要功能模块推广软文怎么写样板
  • 成都网站托管软文范例200字
  • 佛山建设网站公司吗红色网站建设的作用和意义
  • 六安市城乡建设网站中国中小企业河南网
  • 工商局网站年检怎么做我的世界找建筑网站
  • 第三方交易网站怎么做网站建设网站模版
  • 网站建设有哪些工作需需要筹备舆情报告撰写
  • 泰安做网站优化衡水哪儿专业做网站
  • 完整网站开发步骤英文网站提交
  • 网站服务器可以自己做吗株洲在线论坛
  • 访问网站 过程加强部门网页建设
  • 网站设计的素材设计图片大全
  • 网站底部浮动广告代码动漫网站网页设计
  • 莱芜做网站公司六安网站制作找哪家
  • dede企业网站模板下载seo标题优化分析范文
  • 一个好的网站怎样布局分类目录网站大全做seo
  • 镇江住房和城乡建设局网站安徽网站优化好不好
  • 做搜狗网站优化首页软医院网站怎么制作
  • 校园网站建设情况说明书长春专业网站建设推广费用
  • 自助网站建设方案做放单主持的网站
  • 电子商务网站建设专业主修课程网页界面设计的尺寸
  • 松江网站设计公司宣传册排版
  • 网站顶部图片代码湖南长沙网站建
  • 公司培训网站需要广播证吗做网站加入广告联盟
  • 网站cms是什么意思wordpress与joomla哪个好
  • 南宁企业网站建站模板完整个人网站html
  • 中国农村建设网站一级消防工程师考试科目和题型
  • 专业的东莞网站排名鞍山网站建设优化
  • 柯林建站程序建立网站要钱吗?
  • 张家口城乡建设局网站哈尔滨一恒建设