脚本宝典收集整理的这篇文章主要介绍了网络与安全-安全,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
为什么 HTTPS 安全F1a;
因为网络请求需要中间有很多的服务器路由器的转发。中间的节点都可能篡改信息,而如果使用 HTTPS,密钥 在 你 和 终点站 才有。https 之所以比 http 安全,是因为他利用 ssl/tls 协议传输。它包含 证书,卸载,流量转发,负载均衡,页面适配,浏览器适配,refer 传递等。保障了传输过程的安全性
Https 实现原理
HTTPS 在通讯过程中的原理,总共分为 8 步 :
- 1: 客户端发起 HTTPS 请求 2: 服务端的配置
- 3: 传送证书 4: 客户端解析证书
- 5: 传送加密信息 6: 服务端解密信息
- 7: 传输加密后的信息 8: 客户端解密信息
http2 和 https 的关系
原理:第三方网站通过iframe内嵌某一个网站,并且将iframe设置为透明不可见,将其覆盖在其他经过伪装的DOM上(使用定位的手段),伪装的可点击DOM(按钮等)与 实际内嵌网站的可点击DOM位置相同,当用户点击伪装的DOM时,实际上点击的是iframe中内嵌的网页的DOM从而触发请求操作
特点:用户自己做了点击操作;用户毫不知情;
最常见的是恶意网站:使用 <iframe> 标签(把我们自己含有重要的信息的网页:如交易页面)嵌入进去,然后把 iframe 设置透明,用定位的手段,引诱用户在恶意网站上点击,这样用户在不知不觉中就进行了某些不安全的操作
有两种方式可以防范:【 iframe会阻塞主页面的Onload事件 】
// 如果iframe 和 当前被嵌入的页面 不在同一域名下,则表示存在,非法网页嵌入的可能
if (top.location.hostname !== self.location.hostname) {
alert("您正在访问不安全的页面,即将跳转到安全页面!");
top.location.href = self.location.href;
}
1: 通过配置 nginx 发送 X-Frame-Options 响应头,这样浏览器就会阻止嵌入网页的渲染。
2: add_header X-Frame-Options SAMEORIGIN;
概念:CSRF 跨站点请求伪造 跟 XSS一样,存在巨大危害性,是一种对网站的恶意利用,尽管听起来像跨站脚本(XSS)。但是它与XSS非常不同【 XSS利用站点内的信任用户; CSRF通过伪装受信任用户的请求来利用受信任的网站】与XSS相比,CSRF 攻击不太流行(因此对其防范的资源也相对较少),和难以防范,所以认为比 XSS 更具危险。
简单理解: 你可以这样来理解:攻击者盗用了你的身份,以你的身份发送恶意请求(如:发邮件,发信息,盗取你的账号,添加系统管理员,购买商品,虚拟货币转账等),对服务器来说这个请求是合法的,但是却完成了攻击者想要的一个操作。如下:其中 Web A 为存在 CSRF漏洞的网站,Web B为攻击者恶意构建的网站,User C 为 Web A 网站的合法用户:
1: 用户 C 打开浏览器,访问受信任的 Web A 网站,输入用户名和密码请求登录网站 A
2: 在用户信息通过验证之后,网站 A 产生cookie信息 并返回给浏览器,此时用户成功登录网站 A, 可以正常向网站 A 发送请求
3: 用户未退出 网站 A 之前,在同一浏览器中,打开一个TAB页访问 网站 B
4: 网站 B 接收到用户请求后,返回一些攻击性代码,并发出一个请求要求访问第三方站点A
5: 浏览器在接收到这些攻击性代码后,根据网站B的请求,在用户不知情的情况下携带 cookie向站点A发送请求,站点A并不知道该请求是由网站B发起的,所有会根据用户C的 cookie信息 以C的权限处理该请求,导致来自网站B的恶意代码被执行
写一个自己的 网站A,网站里iframe嵌套一个别人的 网站B,完了以后我把我的 域名A-domain做 的很像 网站B的域名 B-domain,发给别人,别人误以为这是官方网站,进行 登陆 等一系列操作,我在页面中加上我自己的一些脚本就 可以通过他的cookie 执行很多操作!
<htML> <head> <script tyPE="text/javascript"> function steal() { iframe = document.frames["steal"]; iframe.document.SubmIT("transfer"); } </script> </head> <body onload="steal()"> <iframe name="steal" display="none"> <form method="POST" name="transfer" action="http://www.myBank.COM/Transfer.php"> <input type="hidden" name="toBankId" value="11"> <input type="hidden" name=";money" value="1000"> </form> </iframe> </body> </html>
参考链接:
https://www.cnblogs.com/hyddd/Archive/2009/04/09/1432744.html
1: 验证 HTTP Referer 字段
2: 请求地址添加token,并校验
3: 在http请求头里面自定义属性,并校验
4: 通过验证码的方法 校验
特点
防御
概念:XSS是一种经常出现在 web应用中 的 计算机安全漏洞,攻击者往 web页面插入恶意html标签 或者 javaScript 代码
如:1:攻击者在论坛里放一个看似安全的链接,骗取用户点击后,窃取 cookie 中的用户私密信息;
2: 攻击者在论坛中加一个恶意表单,当用户提交表单时,却把信息传送到攻击者的服务器中,而不是用户原本以为的信任网站
3: 常见于前端的 input框 还有 console控制栏,我们将我们写好的脚本通过input标签注入,没有拦截过xss页面将会直接执行这些脚本。
真正的危险是: 当你的 脚本被 上传到服务端( 存在数据库 或 者缓存中,常见于 评论 等功能),当其他人请求此资源时,服务端就会将此脚本下发至客户端,客服端收到请求后,就会自动执行此脚本。
它允许 恶意web用户 将代码(如HTML代码,客户端脚本)植入到 提供给其他用户使用的页面 中,攻击者利用 XSS 漏洞旁路掉访问控制-----同源策略,这种类型的漏洞由于被黑客用来编写危害性更大的网络钓鱼(Phishing)攻击,而变得广为人知,对于跨站脚本攻击,黑客界共识是:跨站脚本攻击是新型的 “缓冲区溢出攻击” , 而JavaScript是新型的ShellCode
示例:
<script>alert(document.cookie)</script>
能注入恶意的 HTML/JavaScript 代码到用户浏览的网页上,从而达到 Cookie 资料窃取、会话劫持、钓鱼欺骗等攻击。 【 攻击代码不一定(非要)在 <script></script> 中】
解析:参考资料: https://www.cnbLOGs.com/phpstudy2015-6/p/6767032.html https://www.cnblogs.com/443855539-wind/p/6055816.html https://baike.baidu.com/item/XSS%E6%94%BB%E5%87%BB/954065?fr=aladdin
常见的攻击和预防汇总(内容非常精彩): https://www.cnblogs.com/zhiying/p/11018331.html
XSS : 是获取信息 (不需要提前知道其他用户页面的代码和数据包)
CSRF:是代替用户完成指定的动作(需要知道 其他用户页面的代码 和 数据包)
完成一次CSRF攻击,受害者必须完成2个步骤:
1: 登录 受信任的网站 A,并在本地生成 Cookie
2: 在不登出 A 的情况下,访问 危险网站 B
方法 1: 通过读取 http请求里的 header里面的referer信息 ,对refer做判断,看来源是不是自己的网站,不是就拒绝
HTTP请求中有一个referer的报文头,用来指明当前流量的来源参考页(访客是从什么渠道来到当前页面的。)
例如在www.sina.com.cn/sports/上点击一个链接到达cctv.com首页,
那么 referrer 就是 www.sina.com.cn/sports/了。
// 在Javascript中,
document.referrer来获取
方法 2: 通过session校验,如果不通过特定服务生成 cookie 和session 就不能请求 得到资源
内容拓展:
HTTP请求中的 referrer 报文: 可以告诉我们 不同渠道带来的流量的分布情况,还有用户搜索的关键词等,都是通过分析这个 referrer 信息来获取的。这个是非常重要的
以上是脚本宝典为你收集整理的网络与安全-安全全部内容,希望文章能够帮你解决网络与安全-安全所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。