logo资料库

Web安全实践复习V2.0.pdf

第1页 / 共13页
第2页 / 共13页
第3页 / 共13页
第4页 / 共13页
第5页 / 共13页
第6页 / 共13页
第7页 / 共13页
第8页 / 共13页
资料共13页,剩余部分请下载后查看
Word 书签
OLE_LINK1
OLE_LINK2
OLE_LINK3
OLE_LINK4
HTTPS 根据燕姐知乎以及面向csdn总结,仅供参考 选择(10*2‘) 问答(60) 填空(20) 请求消息格式: (404,200,) HTTP 1.请求行,用来说明请求类型,要访问的资源以及实用的 2.请求头部:说明服务器要使用的附附加信息 3.空行 4.请求数据:添加任意的其他数据。 例子: HTTP 版本 请求行:第一行 POST 请求,http 版本 1.1 请求头部:第二到第六行;HOST 将指出请求的目的地.User-Agent,服务器端和客户端脚本 都能访问它,它是浏览器类型检测逻辑的重要基础.该信息由你的浏览器来定义, 并且在每个请求中自动发送等等 空行:第七行 请求数据:第八行 URI(统一资源标识符):输数据和建立连接。URL 是一种特殊类型的 URI,包含了用于查找 某个资源的足够的信息 URL(统一资源定位符):互联网上用来标识某一处资源的地址 URL 各字段意义:举一个例子: http://standford.edu:81/class?name=cs155#homework 协议部分: “http” 域名部分:“standford.edu” 路径部分:/class 端口部分: “:80” 当不定义端口时,使用默认端口 锚点部分:#homework 用于定位到页面 id=homework 的地方 参数部分: ?name=css155 z 也叫搜索部分
明文传输的安全隐患:不对数据加密,数据只要在网络上是广播的,就不可避免地被嗅探。 HTTPS 与 HTTP 的区别: • https 协议需要到 ca 申请证书 • http 是超文本传输协议,信息是明文传输,https 则是具有安全性的 ssl 加密传输协 议。 • http 和 https 使用的是完全不同的连接方式,用的端口也不一样,前者是 80,后者是 443。 • http 的连接很简单,是无状态的;HTTPS 协议是由 SSL+HTTP 协议构建的可进行加 密传输、身份认证的网络协议,比 http 协议安全 SSL 协议: 1.SSL 记录协议:建立在 TCP 之上,为高层协议提供数据封装、压缩、加密等基本功 能的支持; 2.SSL 握手协议:建立在 SSL 记录协议上,用于实际的数据传输开始前,通讯双方进 行身份验证,协商加密算法、交换加密密钥等。 SSL/TLS 协议提供的服务: 1.认证:认证服务器和用户,确保数据发送到正确的客户机和服务器; 2.保密性:加密数据防止数据传输途中被窃取; 3.完整性:维护数据完整性,确保数据在传输过程中不被改变。 证书生成的过程:生成 CA 的公私密钥对,并生成自签根证书,根证书包含 CA 机构的信息 (CA 颁发机构名、签名哈希算法、有效期、公钥等)。 具体步骤:生成 CA 私钥(.key)-> 生成 CA 证书请求 (.csr)->自签名得到根证书(.crt)。 CA 签发证书以及浏览器和网站身份验证建立安全连接的具体流程: 1.CA 建立,生成 CA 机构的根证书; 2.CA 与浏览器厂商联系,如果浏览器厂商信任这个 CA,就会把这个 CA 证书加入到 自己开发的浏览器中。 3.一个想要获得 HTTPS 服务的网站,首先要将自己网站的验证信息(域名,网站信 息)和自己的公钥发送给 CA 机构,向 CA 申请自己的服务器证书,CA 在验证这个 网站的合法性后,会用自己的私钥对网站的验证信息和公钥打包进行签名,形成这 个网站的证书,并将这个签名的证书颁发给网站。 现在网站已经有自己的证书了, 于是它可以搭建自己的 https 服务。 4.用户使用浏览器链接到该网站。在加密连接建立之前,网站首先将自己的 CA 签名 的证书发给用户浏览器,浏览器结合自带的 CA 证书,对网站证书(被 CA 私钥签 名的)进行验证(用 CA 的公钥对网站证书进行解密,再核对网站域名等是否正确), 验证成功后,建立安全连接
5.SSL 握手:1.服务器向客户端发送被 CA 签名的证书和服务器的其他相关信息; 2.浏览器用 CA 的公钥对证书解签,比较证书里的信息是否和服务器传回的信 息一致; 3.客户端验证成功后,将自己所支持的加密方式以及自己的公钥发给服务器 4.服务器根据客户端发送的支持的加密方式,选择一种加密程度最高的方案, 用客户端公钥加密,发送给浏览器。 5.客户端通过自己的私钥解密后,选择一个会话密钥用服务器的公钥加密发送 给服务器 6.接下来的数据传输都使用该对称密钥进行加密。 https 的局限性:1.https 比 http 耗费更多的服务器资源;SSL 证书需要钱。。; 2. SSL 可以允许多种密钥交换算法,而有些算法,如 DH,没有证书的概念, 这样 A 便无法验证 B 的公钥和身份的真实性,从而 C 可以轻易的冒充,用自己的 密钥与双方通信,从而窃听到别人谈话的内容。 3. A 与 B 网站通信,B 有了证书以后,如果 C 用自己的证书替换掉原有的 证书之后,A 的浏览器会弹出一个警告框进行警告,但又有多少人会注意这个警告 呢? Web 相关(HTML,CSS,JS,PHP) html :
CSS 的优点:1.实现了内容与表现分离; 2.极大的提高了工作效率,通过仅仅编辑一个简单的 CSS 文档,外部样式表 使你有能力同时改变站点中所有页面的布局和外观。 3. 由于允许同时控制多重页面的样式和布局,能够为每个 HTML 元素定义样 式,并将之应用于你希望的任意多的页面中;如需进行全局的更新,只需简单地改 变样式,然后网站中的所有元素均会自动地更新。 CSS position 属性:1.static(静态定位):元素框正常生成。块级元素生成一个矩形框,作为 文档流的一部分,行内元素则会创建一个或多个行框,置于其父元 素中。 2.relative(相对定位):元素框偏移某个距离。元素仍保持其未定位前 3.absolute(绝对定位):元素框从文档流完全删除,并相对于其包含 的形状,它原本所占的空间仍保留。 块定位。 4.fixed(固定定位):相对于浏览器窗口来对元素进行定位。 CSS 框模型(Box Model) border(边框)、padding(内边距):上右下左、margin(外边距) 样式层叠次序优先级(从小到大): 浏览器缺省设置、外部样式表、内部样式表(位于 标签内部)、 内联样式(在 HTML 元素内部)
css 历史攻击:原理是利用了伪类,伪类向选择器添加特殊效果(比如链接访问果后会变成 紫色) JS 正则表达式:^表示字符串的开头,但它还有另外一个含义。当在一组方括号里使用^是, 它表示"非"或"排除"的意思,常常用来剔除某个字符。 例:^[a-z] [^a-z] [^\\\/\^\”\’] 匹配小写字母字符串 匹配除了小写字母以外的所有字符 “ “^ “、 、‘ JS DOM 对 的支持:见知乎 匹配除了“\“、 以外的所有字符。 https://zhuanlan.zhihu.com/p/51022879 “/”、 GET 和 POST 的区别: 方法的查询字符串实在 GET 如: GET 请求的 URL 中发送的 POST 方法的查询字符串是在 POST 请求的 HTTP 消息主题中发送的 如: 其他区别如下: PHP form 数据,数据库操作见知乎 https://zhuanlan.zhihu.com/p/51710475
攻击(CSRF、XSS、SQL 注入、点击劫持、DOS 攻击) 一、CSRF 1.Cookie 的作用:HTTP 是一个 Stateless,无状态协议;用户刷新一个页面对于服务器而言, 就是两次完全没有关系的访问。Cookie 的作用就是帮助服务器记忆。一般来说,在用户首 次登陆网站的时候,网站会给用户设置一个 Cookie,这个 cookie 保存在用户浏览器端,一 般记录下用户的用户名信息等,然后每次用户访问该网站的网页,浏览器会自动的将 cookie 带上。服务器接收到 cookie 后进行解析,判断是哪个用户。 2.CSRF 原理:利用浏览器每次访问网站都会主动的携带上自己保存的相应网站的 cookie; 只要用户当前浏览器中嗨保留着目标网站如 Zoobar.com 的 cookie,然后又浏览了恶意攻击 网站,而攻击网站又主动发出了对目标网站的请求,浏览器就会携带上目标网站的 cookie。 即盗用受害者身份,以受害者的名义向第三方网站发送恶意请求。 3.Referer 防御: referer 是 http 请求 header 中的一个字段,当浏览器向 web 服务器发送请 求的时候,一般会带上 referer,告诉服务器该请求是从哪个网站发出去的。Referer 防御的 原理就是通过检验 referer 是否匹配合法请求的网站。 又由于浏览器可以控制修改请求中是否带有 Referer 字段(about:config 中搜 referer 可对 referer 参数进行控制)。 但是 又有哪个用户去这样操作(禁止发送 referer 字段)呢? 4.验证码防御: 强制用户在执行重要操作之前必须进行交互,但是为了考虑用户体验友好, 不能给所有的操作都加上验证码。 5.Token 防御:
6.Session 和 Cookie 的区别: http 是一个无状态协议,一旦数据交换完毕,客户端和服务端的连接就会关闭,再次交 换数据就需要建立新的连接,意味着服务器无法从连接上 跟踪会话(会话指用户登陆网站 后一系列操作)。 常用的会话跟踪技术是 Cookie 和 Session; 区别: 具体见:https://www.cnblogs.com/8023-CHD/p/11067141.html 二、XSS 攻击 1.XSS 的原理: xss 是跨站脚本攻击;XSS 通过在用户端注入恶意的可运行脚本,若服务器 端对用户输入不进行处理,直接将用户输入输出到浏览器,则浏览器将会执行用户注入的脚 本,就发生了 XSS 攻击。 xss 存在的三个条件:网站应用程序必须接受用户的输入信息;用户的输入会被 网站用来创建动态内容;对用户的输入验证不充分。 2.XSS 的分类: 1.反射型 XSS:通过 GET 和 POST 方法,向服务器端输入数据。用户输入的数据 通常被放置在 URL 中,或者是 form 数据中。如果服务器端对输入的数据不进行过滤,验证 或编码,就直接将用户输入的信息直接呈现,则可能会造成反射型 XSS。 2.存储型 XSS:。通常是因为服务器端将用户输入的恶意脚本没有通过验证就直 接存储在数据库,并且每次通过调用数据库的方式,将数据呈现在浏览器上。则该 XSS 攻击 将一直存在。若其他用户访问该页面,则恶意脚本就会被触发。 3. XSS 的防御: 1.输入过滤:设置 disallowed 标签过滤非法字符(有缺陷,用编码绕过防御) 2.输出转义: 用 htmlspecialchars($profile) 对输入的 profile 转义。 3.httponly cookie:用来保护 cookie 的特殊措施
4. Ajax 的优点: 2)open 函数 5.Ajax 的属性:XMLHttpRequest 是 Ajax 的基础; 1)生成 XMLHttpRequest 对象: send(message);默认为空 4)responseText 属性 返回字符串形式的响应 5)readyState: 3)send 函数
SOP 同源策略: 同源是指域名、协议、端口相同。不同源的客户端将本在没有明确授权情 况下,不能读写对方的资源。 CORS Http 访问控制:可以设置 http 响应头 使得跨域成功。 三、点击劫持(依赖 iframe、z-index、opacity) 1.z-index 越大层数越靠近上层 2.三种不同方式的透明化: opacity:0 : 实际上是元素透明度为 0,元素仍然存在,不会改变页面布局, 绑定的事件依然可以触发; visibility:hidden :元素存在,不改变页面布局,但是绑定事件不可触发。 display:none : 元素彻底消失,脱离文档流,绑定的事件也无法触发。 3.点击劫持的防御 X-Frame-Options 可以控制页面能否被 iframe 例:header(“X-Frame-Options:DENY”)
收藏